scripting media query
scripting は CSS のメディア特性で、 (JavaScript などの) スクリプトが利用できるかどうかを調べるために使用することができます。
メモ: 検出は、ユーザーの設定に基づいてブラウザーによって行われます。一部のブラウザー拡張機能は、さまざまな手法を使用してスクリプトのブロックを実装しています。そのような場合、 scripting メディア機能は期待どおりに動作しない場合があります。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 120 | 120 | 113 | 17 | 120 | 17 | |
基本構文
CSS
/* Display fallback UI when JS is disabled */
@media (scripting: none) {
.js-only {
display: none;
}
.no-js-fallback {
display: block;
}
}
/* Display only when JavaScript is enabled */
@media (scripting: enabled) {
.interactive-widget {
display: block;
}
} ライブデモ
実務での使いどころ
-
JS無効時のフォールバック
JavaScriptが無効な環境でも最低限のUIを提供するプログレッシブエンハンスメントを実現する。
-
動的コンポーネントの出し分け
JSが利用できる場合のみインタラクティブなウィジェットを表示し、無効時は静的な代替を表示する。
注意点
- ブラウザ拡張によるJS無効化など、検出が意図通りに動作しないエッジケースがある。
アクセシビリティ
- JS無効環境でもコンテンツにアクセスできるフォールバックを提供することで、アクセシビリティが向上する。