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 (適合クラス)

この仕様は実装者に対するユーザーエージェントの適合基準と、著者とオーサリングツール実装者向けの文書の適合基準を記述している

以下、見出しを列挙

  1. Web browsers and other interactive user agents (ウェブブラウザーおよびその他対話型ユーザーエージェント)
  2. Non-interactive presentation user agents (非対話型プレゼンテーションユーザーエージェント)
  3. Visual user agents that support the suggested default rendering (推奨されるデフォルトレンダリングをサポートする視覚向けユーザーエージェント)
  4. User agents with no scripting support (スクリプトをサポートしていないユーザーエージェント)
  5. Conformance checkers (適合チェッカー)
  6. Data mining tools (データマイニングツール)
  7. Authoring tools and markup generators (オーサリングツールとマークアップ生成機)

他に、ユーザーエージェントはHTMLかXHTMLの少なくとも片方をサポートする必要があり (must)、両方サポートすることが推奨される、など (殆どないだろうが仕様上XHTML5.2専用 (HTML構文を処理できない) ユーザーエージェントの存在があり得る)


(ユーザーエージェントやオーサリングツールの実装ではない) HTML5.x文書の著者も、どのような種類のユーザーエージェントが想定されているか把握しておいた方がよい

また、チェッカーを使う人はConformance checkersにできることとできないこと (免責されている内容) などが書かれているので目を通しておくとよい

2.2.2. Dependencies (依存関係)

全てを把握するまで読んでいるといつまでもこの先に進めないため、この項は他の項より更に雑に読み飛ばした


この仕様は、他のいくつかの基本仕様に依存している

以下、見出しを列挙

  1. Unicode and Encoding
  2. XML and related specifications
  3. URLs
  4. HTTP and related specifications
  5. Fetch
  6. Web IDL
  7. JavaScript
  8. DOM
  9. File API
  10. Indexed Database API
  11. Media Source Extensions
  12. Media Capture and Streams
  13. XMLHttpRequest
  14. Server-Sent Events
  15. Media Queries
  16. CSS modules
  17. SVG
  18. WebGL
  19. WebVTT
  20. The WebSocket protocol
  21. ARIA
  22. Content Security Policy
  23. Service Workers
  24. Secure Contexts
  25. Payment Request API
  26. MathML
  27. SVG
  28. Filter Effects

上記リストにSVGが2回登場するが、片方はCSS Fontの文脈のSVG fontsやSVGMatrixの話、後者は所謂SVGの話


特定のファイル転送プロトコルスタイルシートスクリプト言語のサポートを必要とはしていないが、仕様上はHTTPやCSSJavaScriptに偏っているし、実際使われていると想定している

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の仕様違反の動きになるが意図的である


ユーザーエージェントやXPathXSLTの処理を実装者には重要だが、それらの利用者側としてXPathXSLTを使う場合はあまり影響を受けないであろう

そもそもXPathXSLTを使わない、或いはXHTMLを「単なるXML文書」として処理する場合は元よりは影響ない