HTML5という新しい仕様がでてきましたが,既存のHTMLやXHTMLとはどのような関係があるのでしょうか。簡単にHTMLとXHTMLの歴史を振りかえりながら,両者が抱えた問題や,HTML5の目的について説明しようと思います。
HTML ― 拡張のなかで進化していった言語
HTMLはWeb上での情報交換フォーマットとして,Tim Berners-Leeにより生み出されました。「シンプルなハイパーテキストを記述する」という目的があったため,定義されている要素は見出しやリスト,リンクなど,文書構造や文章の意味を記すものに限られていました。
ところが,Webが普及するにつれ,視覚表現をコントロールする要素(いわゆる「タグ」)がブラウザーベンダーにより追加されていき,語彙が膨れ上がってしまいました。さらには,要素の意図とは異なった使われ方をされる例(blockquoteやtableなど)が増えていきました。
こうした問題に対処するため,HTMLの標準化が幾度かにわたり行われました。文書の構造や文章の意味を表す要素を中心に,広く使われている要素を取り込むといった形で,現実との乖離を抑えるように設計されました。
とはいえ,装飾的な要素や,要素の誤用は避けなければいけません。このため,fontやuなど装飾的な要素については「利用を推奨しない」としたうえで,スタイルシートの利用を促すようにしました。
HTMLの最終版は,1999年に勧告されたHTML 4.01になります。これ以降,W3CはXHTMLの策定へ注力していきました。
XHTML ― XMLとしての価値を追求するフォーマット
XHTMLは,HTMLをXMLの構文に則って定義したものです。XMLベースになることにより,XMLの拡張性や,他のXML技術を利用できるといった利点があります。また,XMLは構文の制約が強いため,実装の非互換を生み出しにくいといった性質もあります。
HTMLはSGMLという言語をベースに標準化が行われました。しかし,SGMLの実装はとても複雑であったことと,初期のHTMLがSGMLベースではなかったことなどから,ブラウザーのHTML解釈がSGMLの仕様に沿わない独自のものになってしまった経緯があります。
HTMLと同じように,XHTMLにもいくつかバージョンが存在します。ひとつが,HTML 4.01をXMLで書き直したXHTML 1.0です。HTMLからXHTMLへの移行を促すべく作られたフォーマットで,新しい要素の追加などはありません。
ですが,XMLの特徴である拡張性は,XHTML 1.0では充分に発揮できません。この拡張性をXHTMLにも取り入れるべく策定されたもうひとつのXHTMLが,XHTML 1.1です。
XHTML 1.1は,HTMLの語彙を機能ごとに分割し定義した「モジュール」から構成されています。ニーズに合わせ,他のXML語彙を取り入れることが可能であり,ベクター画像のSVGや,数式のMathMLと組み合わせたプロファイルも作成されています。
XHTMLの普及と,新たに生じた問題
XHTMLは,2002年頃からの「ブログ」ブームや,「Web標準」な制作手法の広がりとともに普及しました。現在,新しくWebサイトを作るときに最も利用されるのは,XHTML 1.0になっているようです。
しかしながら,XHTML 1.1やその先の「XMLを利用したWeb」については,未だ広まっていないというのが現状です。その理由のひとつに,XHTMLやSVG, MathMLなどのXML関連技術を,全てのブラウザーが同じ水準でサポートしていないことが挙げられます。XMLの機能は,HTMLの処理系であるtext/htmlでは基本的に動作しませんから,新しい機能を使おうにもできない状態が続いたのです。
もう一つは,現在公開されているXHTMLを採用した文書や,ブラウザーとの互換性です。XHTML 1.0が主流のフォーマットになっている今ですが,先述した理由もあり,ほとんどすべてがtext/htmlで公開されています。しかし,text/htmlはXMLが求める,厳しいエラー処理を備えていません。また,ユーザー体験を低下させることの無いよう,HTML仕様的にエラーであるものについても柔軟に処理しています。
この結果,XHTMLを採用していながら,XML文書として処理できないものがWeb上にはびこる状態になってしまいました。
- Note:
- Opera Softwareが2008年に行った調査によると,調査対象のうちXHTML 1.0を利用しているもののなかで,W3CのValidatorを通ったものは13%ほどしかありませんでした。
「仕様に沿っていない文書が公開されているのは制作者が悪い」ということも言えるでしょう。しかし,XMLとして処理できない文書が蔓延する現状で,このまま「XMLなWeb」を推進し続けることは,現実的ではありません。

