HTML5.2の見出し毎の内容を雑にまとめる、2.2. Conformance requirements (適合要件)
2. Common infrastructure (共通基盤) の中の 2.2. Conformance requirements (適合要件) について
2.2.2. Dependencies (依存関係) はちゃんと読むのを断念して、眺めるだけで終わりにしました
内容についてはあくまで初学者の覚書ですので、正式な仕様はW3CのHTML5.2を確認してください
また、勉強のため、各仕様の邦訳文書、解説文書を読まずに自分で翻訳して覚書を書き終わってから答え合わせとして邦訳文書を参照するようにしています
このため、多くの訳語が一般的な訳と異なっていますのでご注意ください
- 2.2. Conformance requirements (適合要件)
-
"MUST" とか "SHOULD" とかのRFC2119で定められた厳密に意味を持つ言い回しについての説明
- 2.2.1. Conformance classes (適合クラス)
-
この仕様は実装者に対するユーザーエージェントの適合基準と、著者とオーサリングツール実装者向けの文書の適合基準を記述している
以下、見出しを列挙
- Web browsers and other interactive user agents (ウェブブラウザーおよびその他対話型ユーザーエージェント)
- Non-interactive presentation user agents (非対話型プレゼンテーションユーザーエージェント)
- Visual user agents that support the suggested default rendering (推奨されるデフォルトレンダリングをサポートする視覚向けユーザーエージェント)
- User agents with no scripting support (スクリプトをサポートしていないユーザーエージェント)
- Conformance checkers (適合チェッカー)
- Data mining tools (データマイニングツール)
- Authoring tools and markup generators (オーサリングツールとマークアップ生成機)
他に、ユーザーエージェントはHTMLかXHTMLの少なくとも片方をサポートする必要があり (must)、両方サポートすることが推奨される、など (殆どないだろうが仕様上XHTML5.2専用 (HTML構文を処理できない) ユーザーエージェントの存在があり得る)
(ユーザーエージェントやオーサリングツールの実装ではない) HTML5.x文書の著者も、どのような種類のユーザーエージェントが想定されているか把握しておいた方がよい
また、チェッカーを使う人はConformance checkersにできることとできないこと (免責されている内容) などが書かれているので目を通しておくとよい
- 2.2.2. Dependencies (依存関係)
-
全てを把握するまで読んでいるといつまでもこの先に進めないため、この項は他の項より更に雑に読み飛ばした
この仕様は、他のいくつかの基本仕様に依存している
以下、見出しを列挙
- Unicode and Encoding
- XML and related specifications
- URLs
- HTTP and related specifications
- Fetch
- Web IDL
- JavaScript
- DOM
- File API
- Indexed Database API
- Media Source Extensions
- Media Capture and Streams
- XMLHttpRequest
- Server-Sent Events
- Media Queries
- CSS modules
- SVG
- WebGL
- WebVTT
- The WebSocket protocol
- ARIA
- Content Security Policy
- Service Workers
- Secure Contexts
- Payment Request API
- MathML
- SVG
- Filter Effects
上記リストにSVGが2回登場するが、片方はCSS Fontの文脈のSVG fontsやSVGMatrixの話、後者は所謂SVGの話
特定のファイル転送プロトコルやスタイルシート、スクリプト言語のサポートを必要とはしていないが、仕様上はHTTPやCSSやJavaScriptに偏っているし、実際使われていると想定している
- 2.2.3. Extensibility (拡張性)
-
全体的にユーザーエージェントの実装者向け、あるいはHTMLそのものを拡張する、他の仕様と組み合わせる人向けのセクション
単なるHTMLの著者であれば
x-
で始まる属性はユーザーエージェントの独自拡張なのだと知っておけばよい程度か
この仕様へのベンダー固有のユーザーエージェントの拡張は強く非推奨
だが、実験的目的のために拡張する場合、XML構文なら名前空間を分け、HTML構文のなら "x-vendor-feature" という新しい属性に限定する
しかし、属性は複数ベンダの属性を共存させられるが要素の場合それができないので新しい実験的な要素は不可
"x-" の二文字から始まる属性名はユーザーエージェントの為に予約されており、HTMLに正式に追加されることはない
用語適用される仕様 (applicable specification) としてHTMLに別な仕様を適用 (そのような文書は HTML+XXXに準拠 (Conforming HTML+XXX document) と呼ぶことが推奨されている) した場合について言及がある
- 2.2.4. Interactions with XPath and XSLT (XPath及びXSLTとの相互の影響)
-
XPath 1.0についてはXPathの仕様を一部書き換えた形でユーザーエージェントは実装する必要がある
具体的にどこをどう書き換えるかは本文参照
XSLT 1.0は出力が (明示的にまたはデフォルトの結果) "html" の時に名前空間をHTMLの物で上書きし、名前空間以外の部分の要素名と要素名を小文字にする
これはXSLT 1.0の仕様違反の動きになるが意図的である
ユーザーエージェントやXPathやXSLTの処理を実装者には重要だが、それらの利用者側としてXPathやXSLTを使う場合はあまり影響を受けないであろう