CSS 条件規則モジュール レベル 4

W3C 候補勧告草案,

この文書の詳細情報
このバージョン:
https://www.w3.org/TR/2025/CRD-css-conditional-4-20250904/
最新公開バージョン:
https://www.w3.org/TR/css-conditional-4/
編集者草案:
https://drafts.csswg.org/css-conditional-4/
以前のバージョン:
履歴:
https://www.w3.org/standards/history/css-conditional-4/
実装レポート:
https://wpt.fyi/results/css/css-conditional
テストスイート:
https://wpt.fyi/results/css/css-conditional
https://wpt.fyi/results/css/css-conditional/
フィードバック:
CSSWG Issues リポジトリ
仕様内でインライン
編集者:
L. David Baron (Google)
Elika J. Etemad / fantasai (Apple)
Chris Lilley (W3C)
この仕様に編集を提案:
GitHub 編集者
デルタ仕様:
はい

概要

このモジュールは、スタイルシートの一部を、プロセッサやスタイルシートが適用される環境の機能に基づいて条件付きで処理するためのCSSの機能を含みます。 これはCSS Conditional 3 [css-conditional-3]の機能を含み、拡張しており、 特定のセレクターのサポートをクエリする機能 [SELECTORS-4] を追加しています。 これは新しい selector() 記法による supports queries で利用できます。

CSS は、構造化文書(HTMLやXMLなど)のレンダリングを、 画面上や紙上などで記述するための言語です。

この文書のステータス

このセクションは、公開時点でのこの文書のステータスを説明しています。 現在のW3C出版物の一覧およびこの技術レポートの最新改訂は、W3C標準と草案のインデックスで確認できます。

この文書は CSSワーキンググループ によって 候補勧告草案として 勧告トラック を用いて公開されました。 候補勧告としての公開は、W3Cおよびそのメンバーによる支持を意味するものではありません。 候補勧告草案は、ワーキンググループが次の候補勧告スナップショットに含めることを意図した、 前回の候補勧告からの変更を統合したものです。

この文書はドラフトであり、 随時更新、置換、または他の文書によって廃止される可能性があります。 この文書を進行中の作業以外として引用することは適切ではありません。

ご意見はGitHubで課題を提出(推奨) してお送りください。タイトルに仕様コード “css-conditional” を含めてください(例: “[css-conditional] …コメントの概要…”)。 すべての課題やコメントはアーカイブされます。 または、(アーカイブ) 公開メーリングリスト www-style@w3.org に送ることもできます。

この文書は2025年8月18日 W3Cプロセス文書に従って管理されています。

この文書はW3C特許ポリシーの下で運営されているグループによって作成されました。 W3Cは、グループの成果物に関連して提出された特許開示の公開リストを管理しています。 そのページには特許開示の方法も記載されています。 個人が、「必須クレーム」を含むと考えられる特許を実際に知っている場合は、 W3C特許ポリシー第6節に従って情報を開示する必要があります。

1. はじめに

レベル3の機能は、まだ [css-conditional-3] で定義されており、ここにはまだコピーされていません。

このレベルでは、@supports 規則への拡張が追加され、 サポートされているセレクターをテストできるようになりました。

2. @supports 規則への拡張

この仕様のレベルでは、<supports-feature> 構文を以下のように拡張します:

<supports-feature> = <supports-selector-fn> | <supports-decl>
<supports-selector-fn> = selector( <complex-selector> )
<supports-selector-fn>

関数の引数として与えられたセレクターをUAがサポートする場合、結果は true になります。

テスト
この例では、カラム結合子 (||) がセレクターでサポートされているかをテストし、 サポートされている場合は、テーブル内の特定のセルをスタイルします。
@supports selector(col || td) {
  col.selected || td {
    background: tan;
  }
}

条件付きグループ規則で使用される名前空間プレフィックスは宣言されていなければならず、 そうでない場合は無効です [css-conditional-3]。 これは selector 関数内の名前空間プレフィックスも含みます。

テスト
この例では、CSS修飾名付きの属性セレクターがサポートされているかをチェックしようとしていますが、 名前空間プレフィックスが宣言されていないため、無効です。
@supports selector(a[xlink|href]) {
  // 何かをする, しかし失敗する
}
この例では、CSS修飾名付きの属性セレクターがサポートされているかを確認します。
@namespace x url(http://www.w3.org/1999/xlink);
@supports selector(a[x|href]) {
  // 何かをする
}

2.1. サポート定義への拡張

CSSプロセッサは、すべての側面(再帰的に)を受理し(構文のいずれかが未知または無効と見なされるのではなく)、 かつセレクターが未知の -webkit- 疑似要素を含まない場合、 そのCSSセレクターをサポートすると見なされます。

注: 一部の機能的セレクターは寛容にパースされます。つまり、一部の引数が未知/無効であっても、 セレクター自体は無効化されません。 それでもサポートされていません。

セキュリティに関する考慮事項

この文書に関してセキュリティの問題は報告されていません。

プライバシーに関する考慮事項

selector() 関数は、ユーザーのソフトウェアのバージョンや、 特定の機能を有効または無効にする非デフォルト設定で動作しているかどうかなどの情報を提供する可能性があります。

この情報は他のAPI経由でも取得できます。 しかし、本仕様の機能はウェブ上でその情報が公開される手段のひとつです。

この情報は集計すると、ユーザーのフィンガープリント精度を向上させることにも利用され得ます。

謝辞

編集者は、このモジュールの前のレベルに貢献したすべての方々に感謝します。

変更点

2022年2月17日候補勧告スナップショット以降の変更点

2020年3月3日初公開ワーキングドラフト以降の変更点

レベル3以降の追加点

適合性

文書の慣例

適合性要件は、記述的な断言とRFC 2119の用語の組み合わせで表現されます。重要な語句「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」は、本書の規範部分においてRFC 2119で説明されている通りに解釈されます。 ただし、可読性のため、これらの語は本仕様ではすべて大文字では表示されていません。

この仕様のテキストは、非規範的と明示的に記載されたセクション、例、および注記を除き、すべて規範的です。 [RFC2119]

この仕様の例は「for example」という語で導入されるか、class="example"により規範テキストから区別されます。 次のようになります:

これは情報提供的な例の一例です。

情報提供的な注記は「Note」で始まり、class="note"で規範テキストから区別されます。次のようになります:

注: これは情報提供的な注記です。

助言は、特別な注意を促すために規範セクションとしてスタイルされ、他の規範テキストから<strong class="advisement">で区別されます。 例:UAはアクセシブルな代替手段を提供しなければなりません。

テスト

この仕様の内容に関連するテストは、このような「テスト」ブロックに記載される場合があります。 このようなブロックは非規範的です。


適合性クラス

本仕様への適合は、以下の3つの適合性クラスに定義されます:

スタイルシート
CSSスタイルシート
レンダラー
UA(ユーザーエージェント)。スタイルシートのセマンティクスを解釈し、それらを利用する文書を描画するもの。
オーサリングツール
UA。スタイルシートを書き出すもの。

スタイルシートが本仕様に適合しているとは、そのスタイルシート内で本モジュールで定義された構文を用いたすべての文が、 汎用的なCSS文法および本モジュール内で定義された各機能の個別文法に従い有効である場合です。

レンダラーが本仕様に適合しているとは、スタイルシートを該当する仕様に従って解釈するだけでなく、 本仕様で定義されたすべての機能を正しくパースし、文書を適切にレンダリングすることです。ただし、デバイスの制約によりUAが文書を正しく描画できない場合でも、非適合とはなりません(例:UAがモノクロモニターで色をレンダリングする必要はありません)。

オーサリングツールが本仕様に適合しているとは、汎用CSS文法および本モジュール内の各機能の個別文法に従って構文的に正しいスタイルシートを書き出し、 かつ本モジュールに記載されたスタイルシートの他の適合性要件も満たしている場合です。

部分的な実装

著者が将来互換性のあるパース規則を活用してフォールバック値を指定できるように、 CSSレンダラーは、利用可能なレベルのサポートがないatルール・プロパティ・プロパティ値・キーワードその他の構文要素を無効として(必要に応じて無視)扱わなければなりません。 特に、ユーザーエージェントは、サポートされていない構成値のみを選択的に無視し、 単一の複数値プロパティ宣言でサポートされている値だけを尊重してはなりません。 いずれかの値が無効(サポートされていない値は必ずそうなる)と見なされる場合、 CSSは宣言全体を無視することを要求します。

不安定および独自機能の実装

将来の安定したCSS機能との衝突を避けるため、 CSSWGはベストプラクティスに従って、 不安定な機能独自拡張の実装を行うことを推奨します。

非実験的な実装

仕様が候補勧告段階に達すると、非実験的な実装が可能となり、 実装者は仕様通り正しく実装できるCRレベルの機能のプレフィックスなしの実装を公開するべきです。

CSSの実装間で相互運用性を確立・維持するため、 CSSワーキンググループは、非実験的なCSSレンダラーがCSS機能のプレフィックスなし実装を公開する前に、 実装報告書(および必要であればそのために用いたテストケース)をW3Cに提出するよう要請します。 W3Cに提出されたテストケースは、CSSワーキンググループによるレビューと修正の対象となります。

テストケースおよび実装報告書の提出方法など詳細は、CSSワーキンググループのウェブサイトhttps://www.w3.org/Style/CSS/Test/で確認できます。 質問はpublic-css-testsuite@w3.orgメーリングリストへ。

CR終了基準

この仕様を提案勧告へ進めるためには、各機能について少なくとも2つの独立した相互運用可能な実装が必要です。 各機能は異なる製品によって実装されてもよく、すべての機能が単一製品で実装される必要はありません。 この基準のため、以下の用語を定義します:

独立
各実装は異なる当事者によって開発され、他の適格な実装で使用されたコードを共有・再利用・派生してはなりません。 本仕様の実装に無関係なコード部分はこの要件から除外されます。
相互運用可能
公式CSSテストスイートの該当テストケースに合格すること、またはWebブラウザでない場合は同等のテストに合格すること。 そのようなUA(ユーザーエージェント)で相互運用性を主張する場合は、テストスイートの各該当テストに同等のテストを作成する必要があり、 さらにそのようなUA以外にも同様にその同等テストに合格できるUAが必要です。 同等テストはピアレビューのために公開されなければなりません。
実装
以下を満たすユーザーエージェント:
  1. 仕様を実装していること。
  2. 一般公開されていること。実装は製品版、ベータ版、プレビューリリース、ナイトリービルドなどいずれでもよい。 非製品版の場合は、安定性を示すため少なくとも1ヶ月間その機能が実装されている必要があります。
  3. 実験的でないこと(テストスイートに合格するためだけに設計されたバージョンで、今後通常利用される予定がないものは除く)。

仕様は最低6ヶ月間、候補勧告として維持されます。

索引

この仕様で定義されている用語

参照で定義された用語

参考文献

標準参照文献

[CSS-CONDITIONAL-3]
Chris Lilley; David Baron; Elika Etemad. CSS Conditional Rules Module Level 3. 2024年8月15日. CRD. URL: https://www.w3.org/TR/css-conditional-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 2024年3月12日. WD. URL: https://www.w3.org/TR/css-values-4/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997年3月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr.. Selectors Level 4. 2022年11月11日. WD. URL: https://www.w3.org/TR/selectors-4/

参考参照文献

[CSS-NAMESPACES-3]
Elika Etemad. CSS Namespaces Module Level 3. 2014年3月20日. REC. URL: https://www.w3.org/TR/css-namespaces-3/

課題一覧

レベル3の機能はまだ [css-conditional-3] で定義されており、ここにはまだコピーされていません。