1.9 本仕様の構成
本仕様は以下の主要なセクションに分かれています:
- イントロダクション
- HTML 標準の状況を説明した、標準仕様ではない資料です。
- 共通基盤
- 本仕様の適合クラス、アルゴリズム、定義、共通となる土台についての説明です。
- HTML ドキュメントのセマンティクス、構造、および API
- ドキュメントは要素の集まりで構成されます。 これらの要素は DOM を使用してツリーを構成します。 この節では、この DOM の機能を定義し、全ての要素に共通の特徴と、要素の定義に使用される概念を紹介します。
- HTML の要素
- 各要素はあらかじめ定義された意味を持っており、この節ではその意味を説明します。 要素の使用方法に関する Web 制作者のためのルールや、各要素の扱いに関するユーザーエージェントの要件も記述します。 ここには、ビデオ再生とサブタイトル、フォーム制御とフォーム送信、HTML canvas として知られる 2D グラフィックス API など、HTML の大変特徴的な機能を含みます。
- Microdata
- 本仕様では、ツールがドキュメントから名前と値のペアのツリーを抽出できるようにするために、ドキュメントに対して機械処理できる形での注釈を追加するメカニズムを導入します。 この節では、このメカニズムと HTML ドキュメントを他の形式に変換するのに使えるいくつかのアルゴリズムについて説明します。 この節ではまた、連絡先情報、カレンダーのイベント、著作権の生じる作品用の Microdata の用語例を定義します。
- Web ページの読み込み
- HTML ドキュメントは真空に存在するわけではありません − この節では、Web ブラウザ、Web アプリケーションのオフラインキャッシングなど、複数のページを扱う環境に影響する多くの機能を定義します。
- Web アプリケーション API
- この節では、HTMLでのアプリケーションのスクリプティングのための基本的な機能を紹介します。
- ユーザインタラクション
- HTML ドキュメントは、ユーザがコンテンツを操作したり変更したりする多くの仕組みを提供することができます。 この節では、フォーカスやドラッグ&ドロップがどのように機能するかといったことがを説明します。
- Web ワーカー
- この節では、JavaScript でバックグラウンド・スレッドを扱うための API を定義します。
- 通信 API
- この節では、HTMLで記述されたアプリケーションが、同一クライアント上で動作する他のドメインのアプリケーションと通信するために使用できるいくつかの仕組みについて説明します。またこの節では、Server Sent Event または EventSource として知られるサーバー・プッシュ型のイベントストリームの仕組みと、Web Sockets として知られる双方向の全二重通信のソケット・プロトコルも紹介します。
- ウェブストレージ
- この節では、ネーム・バリュー・ペア方式のクライアント・サイド・ストレージの仕組みを定義しています。
- HTML の文法
- XHTML の文法
- これら全ての機能は、シリアライズされた形で表現され他の人々に配信されなければ意味がありません。そこでこの節では HTML と XHTML、およびそれらの文法を使ったコンテンツの解析方法のルールを定義します。
- レンダリング
- この節では、Web ブラウザのためのデフォルトのレンダリングルールを定義します。
廃止された機能や IANA に関する考慮のリストや、目次などの付録もあります。
1.9.1 本仕様の読み方
本仕様は、他の全ての仕様と同じように読んでください。まず始めに、本仕様を始めから終わりまで何度も読んでください。それから、少なくとも1度は逆順に読んでください。そして、目次からランダムに節を選び、全てのクロスレファレンスを辿って読んでください。
下の適合性要件の節で述べられているように、本仕様は様々な適合性種別のための適合性基準について説明しています。特に、コンテンツ制作者と制作者によって作成されるドキュメントなどのプロデューサーに適用される適合性要件、Web ブラウザなどのコンシューマーに適用される適合性要件があります。それらは、それらが何を要求しているかによって区別できます。プロデューサーに対する要件は、何が許可されているかを述べており、コンシューマーに対する要件は、ソフトウエアがどのように動作するべきかについて述べています。
例えば、「foo
属性の値は有効な整数でなければならない」という要件は、許可される値を割り付けるものなので、プロデューサーに対する要件です。それに対して、「foo
属性の値は整数を解析するための規則に従って解析されなくてはならない」という要件は、コンテンツの処理方法を説明しているので、コンシューマーに対する要件です。
プロデューサーに対する要件は、コンシューマーには全く関係ありません。
上記の例に続いて、ある属性の値が有効な整数に限られる、と説明している要件は、コンシューマーに対する要件については何ら含意しません。コンシューマーは、実際には、値が要件を満たしているかどうかは別として、属性をはっきりしない文字列として扱わなくてはいけないかもしれません。前の例のように、コンシューマーは不正な(この場合は数値でない)値がどのように処理されるかを定義した特定のルールに従って値を分析しなくてはならないかもしれません。
1.9.2 表記規定
これは定義、要件、あるいは説明です。
これはメモです。
これは例です。
これは未解決の問題です。
これは警告です。
interface Example { // これは IDL の定義です };
- 変数 = オブジェクト .
メソッド
( [ オプションの引数 ] ) - これは、スクリプト制作者に対してインターフェースの使用方法を説明するメモです。
/* これは CSS の断片です */
用語の定義例はこのようにマークアップされます。 その用語の使用例はこのように、あるいはこのようにマークアップされます。
要素、属性、API の定義例はこの
ようにマークアップされます。 その要素、属性、API への参照はこの
ようにマークアップされます。
その他のコードの断片は この
ようにマークアップされます。
変数はこのようにマークアップされます。
これは実装に関する要件です。
アルゴリズムにおいては、同期セクションは ⌛ の印が付けられます。