Web関連技術の標準化団体World Wide Web Consortium(W3C)は米国時間2009年7月2日,マークアップ言語HTMLをXMLで再定義した言語「XHTML 2」について,策定担当ワーキング・グループ(WG)の憲章(行動指針)「XHTML 2 Working Group charter」の適用を2009年末で打ち切ると発表した。
2011年5月に正式な勧告としてリリース予定。
Webアーキテクチャーへの影響
* 言語定義の基礎としてのDOMの利用
* コンテキストのブラウズのコンセプト
* ユーザーエージェント要件とコンテンツ制作者要件との区別
* 実装で要件をブラックボックスにして、抽象的な定義というよりむしろ必須の定義の利用
* 新しいコンテンツモデルの概念(HTML4のブロックとインラインの概念を置き換える)
* アドオン(alt 属性など)の代わりに、新機能(irrelevant 属性, progress 要素など)のビルトイン概念としてアクセシビリティに集中する。
* 詳細にセマンティクスを定義することに集中する(アウトラインアルゴリズムや、HTML4の曖昧なセマンティクスの置き換え)。
* サーバ送信イベント機能(event-source 要素)。
* datagrid 要素
* menu と command 要素
* origin という概念
* オフライン Web アプリケーションのキャッシュ
* コンテキストのブラウジングの"navigation"アルゴリズムの定義、および、関連セッション履歴追跡アルゴリズム
* content-typeと文字エンコードの検知
* パーサーの明示的な定義
* 2つの構造的ストレージ機能
* contentEditable 機能、および、UndoManager 機能
* ドラッグ、ドロップ、コピー、ペーストのアーキテクチャー
* クロス・ドキュメント・メッセージング機能(postMessage API)
* iframeの新たなサンドボックス機能
追加された要素
section は、一般的な文書、または、アプリケーションセクションを表します。文書構造を表すために h1-h6 と一緒に使います。.
article は、ブログエントリや新聞記事のような、文書のコンテンツの独立した部分を表します。
aside は、そのページに少ししか関連しないコンテンツの部分を表します。
header は、セクションのヘッダを表します。
footer は、セクションのフッタを表し、コンテンツ製作者、コピーライト情報などの情報を入れることができます。
nav は、その文書のナビゲーション用のセクションを表します。
dialog は、会話をマークアップするのに使うことができます。
figure は、グラフィックやビデオのような、組み込みコンテンツにキャプションを関連付けるために使います。
audio と video はマルチメディアコンテンツ用です。いずれも、アプリケーションコンテンツ製作者が自身のユーザインタフェースをスクリプトできるようAPIを提供します。しかし、ユーザエージェントによって提供されるユーザインタフェースを起動する方法もあります。異なるタイプのストリームが複数利用可能であれば、これらの要素と一緒にsource 要素を使います。
embed はプラグインコンテンツに使います。
mark はマークされたテキストを表します。
meter は、ディスク使用率のような計測結果を表します。
time は日時を表します。
canvas は、グラフやゲームなどのような、その場で動的なビットマップグラフィックを描くために使います。
command は、ユーザが呼び出すことができるコマンドを表します。
datagrid は、ツリーリストや表データの対話式表現を表します。
details は、ユーザが要求に応じて得られる追加情報やコントロールを表します。
datatemplate、rule、nest 要素はHTMLのテンプレートメカニズムを提供します。
event-source は、サーバが送信したイベントを"キャッチ"するために使います。
output は、スクリプティングを通してなされた計算結果のように、いくつかの出力を表します。
progress は、ダウンロード中や、連続した高価なオペレーションを実行するときのように、タスクの完成度を表します。
ruby、rt、rb 要素は、ルビ注釈をマークアップすることができます。
input 要素の type 属性には、次の値が加わりました。
* datetime
* datetime-local
* date
* month
* week
* time
* number
* range
* email
* url
これらの新しいtype属性は、例えば、カレンダーから日付を選択したり、アドレスブックを統合したりして、サーバに所定のフォーマットで送信できるようなユーザインタフェースを提供することを想定したものです。ユーザの入力をサーバからのフィードバックを待たずにチェックすることができますので、ユーザにとってより便利になります。