現在のWeb開発において、HTML5(およびその後のHTML Living Standard)は空気や水のように当たり前の存在となっています。
しかし、2000年代初頭のWeb業界を振り返ると、現在の状況とは全く異なる「厳格なルールによるWebの再構築」が目指されていた時期がありました。
それがXHTMLの時代です。
かつて主流になると目されていたXHTMLがなぜ表舞台から消え、HTML5が圧倒的な覇権を握るに至ったのか。
その背景には、理想を追求する「厳格主義」と、現場の利便性を重視する「現実主義」の激しい衝突がありました。
この記事では、Webテクノロジーの進化の足跡を辿りながら、HTML規格が辿った激動の歴史と、実装の現実について詳しく掘り下げていきます。
XHTMLが目指した「理想」とその背景
1990年代後半から2000年代初頭にかけて、インターネットは急速な拡大を遂げていました。
当時の主流であったHTML 4.01は、ブラウザごとに解釈が異なることが多く、マークアップの自由度が高すぎるゆえに「構造化データとしての不完全さ」が課題視されていました。
XMLとの統合という壮大な計画
そこでW3C (World Wide Web Consortium) が打ち出したのが、HTMLをXML (Extensible Markup Language) の枠組みで再定義する「XHTML 1.0」でした。
XMLはデータの構造を厳密に定義するための言語であり、HTMLをXMLベースにすることで、コンピュータによる自動処理や他システムとのデータ連携を容易にしようとしたのです。
XHTMLが掲げた主なルールは、現在から見れば非常に厳しいものでした。
- すべてのタグは必ず閉じなければならない。
- タグ名や属性名はすべて小文字で記述しなければならない。
- 属性値は必ずダブルクォーテーションで囲まなければならない。
- 属性の省略 (例:
checked) は許されない。
これらのルールは、Webページを単なる「見た目を整える文書」から、「機械的に読み取り可能な高度なデータ」へと昇華させるためのステップと考えられていました。
セマンティックWebへの期待
当時の開発者や研究者の間では、Web上のあらゆる情報が意味付けされ、AIやエージェントが自律的に情報を収集・処理する「セマンティックWeb」という構想が熱狂的に支持されていました。
XHTMLはその基盤となるはずの技術であり、厳格な構文こそがWebの未来を切り拓く鍵だと信じられていたのです。
開発者を苦しめた「厳格主義」の壁
しかし、理想を掲げたXHTMLは、現実のWeb制作現場において大きな障壁にぶつかります。
その最たるものが「Draconian Error Handling (過酷なエラー処理)」と呼ばれる仕様でした。
わずかなミスも許されない世界
XMLの仕様では、構文にわずかでもエラー(タグの閉じ忘れなど)があると、ブラウザは描画を停止し、エラーを表示しなければならないと定められていました。
これを「致命的エラー」と呼びます。
従来のHTMLであれば、多少タグが抜けていてもブラウザが気を利かせて推測し、何とか表示してくれていました。
しかし、厳格主義を貫くXHTML (特にXHTML 1.1以降) では、1か所の書き損じがページ全体の「死」を意味しました。
これは、動的にコンテンツを生成するWebアプリケーションや、ユーザーが投稿を行うCGM (Consumer Generated Media) にとって、あまりにもリスクが高い仕様でした。
ブラウザ実装の乖離とContent-Type問題
さらに致命的だったのが、ブラウザ側の対応状況です。
XHTMLを正しく扱うためには、サーバーから application/xhtml+xml というMIMEタイプで配信する必要があります。
しかし、当時の圧倒的シェアを誇っていたInternet Explorer 6などは、このMIMEタイプを正しく認識できませんでした。
その結果、多くの開発者は「XHTMLの構文で書きながら、HTMLとして配信する (text/html)」という「偽装されたXHTML」を使用せざるを得ませんでした。
これではXMLとしての厳格なチェックは機能せず、XHTMLを採用する本来の意義が失われてしまったのです。
HTML5の誕生:現実主義への転換
XHTMLが理想を追い求めて行き詰まる中、現場のエンジニアたちは別の道を模索し始めました。
それが「HTML5」の萌芽となります。
WHATWGの結成とW3Cへの反旗
2004年、Apple、Mozilla、Operaのエンジニアたちは、W3Cが進めていたさらなる厳格化(XHTML 2.0)に反対し、新たな作業部会であるWHATWG (Web Hypertext Application Technology Working Group)を結成しました。
彼らが掲げたのは、理想よりも「現実」を直視することでした。
WHATWGの設計思想は明確でした。
- 後方互換性の維持: 過去に作られた膨大なWebサイトを壊さない。
- エラー耐性の標準化: 構文エラーがあった際、ブラウザがどのように解釈すべきかを厳密に定義する。
- 実用的な新機能: ビデオ再生、描画 (Canvas)、オフライン利用など、Webアプリに必要な機能を標準化する。
「牛道を舗装する (Pave the cowpaths)」
HTML5の進化を象徴する言葉に「Pave the cowpaths」があります。
これは「人々が実際に歩いてできた道 (慣習) を、そのまま舗装して正式な道 (規格) にする」という意味です。
XHTMLが「あるべき姿」を上から押し付けようとしたのに対し、HTML5は「現場で既に行われていること」や「本当に必要とされていること」を拾い上げ、仕様としてまとめていきました。
この現実主義的なアプローチこそが、開発者からの圧倒的な支持を得る要因となりました。
仕様の進化が生んだ具体的メリット
HTML5への移行は、単にルールが緩くなっただけではありません。
Webの表現力を飛躍的に向上させ、実装のコストを劇的に下げたのです。
シンプルなDOCTYPE宣言と構文
XHTML時代、DOCTYPE宣言は非常に長く、覚えにくいものでした。
<!-- XHTML 1.0 Strictの例 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
対してHTML5は、これ以上ないほどシンプルになりました。
<!-- HTML5の例 -->
<!DOCTYPE html>
これはtext/htmlで配信される限り、ブラウザを「標準モード」で動作させるために最低限必要な記述のみに絞り込まれた結果です。
意味論 (セマンティクス) の強化
HTML5は厳格主義を捨てましたが、構造化を諦めたわけではありません。
むしろ、人間にも機械にも理解しやすい新しいタグを導入しました。
| 新しいタグ | 用途 |
|---|---|
<article> | 独立した記事コンテンツ |
<section> | 文書内の一般的なセクション |
<nav> | ナビゲーションメニュー |
<aside> | 補足情報やサイドバー |
<header> / <footer> | 導入部や結びのセクション |
これらのタグにより、
マルチメディア機能の標準化
かつてブラウザで動画や音声を再生するには、FlashやSilverlightといったサードパーティ製のプラグインが必要でした。HTML5では <video> や <audio> タグが導入され、プラグインなしでブラウザがネイティブにメディアを再生できる環境が整いました。これにより、モバイルデバイスでのWeb体験が劇的に改善されました。
W3CとWHATWGの対立と統合
HTML規格の歴史において避けて通れないのが、W3CとWHATWGの二重標準問題です。一時期、Webには「W3C版HTML5」と「WHATWG版HTML5」の2つの仕様が並走する混乱期がありました。
W3Cは伝統的な「スナップショット (バージョン区切り)」を重視しましたが、WHATWGは常に進化し続ける「Living Standard (生きている標準)」を提唱しました。ブラウザベンダーは実質的にWHATWGの仕様に基づいて実装を進めたため、最終的に2019年、W3Cは自社独自のHTML仕様策定を断念しました。
現在はWHATWGがHTMLおよびDOMの仕様を一元管理し、W3Cがそれを認めるという形で決着しています。これにより、私たちが現在利用しているHTMLは、バージョン番号のない、常に最新の状態を反映する規格となりました。
実装の現実:なぜ「ゆるさ」が必要だったのか
Webテクノロジーの進化において、なぜXHTMLの厳格主義は受け入れられなかったのでしょうか。その理由は、Webというプラットフォームの特異性にあります。
Webは世界で最も「不完全なデータ」が集まる場所
プログラミング言語の世界では、コンパイルエラーは修正すべき悪です。しかし、Webは世界中の誰もが発信できる場所です。完璧なマークアップの知識がない初心者が書いたコードも、10年前に放置された古いサイトも、最新のブラウザで閲覧できなければなりません。
HTML5が成功したのは、「壊れたコードをどう扱うか」というルールを明確に定義したからです。ブラウザごとに異なっていたエラー補完の手順を統一したことで、開発者は「どのブラウザでも(多少コードが汚くても)同じように表示される」という安心感を得ることができました。
パフォーマンスと実装コストのバランス
厳格なXMLパースは、リソースの限られた初期のモバイルデバイスにとって負荷の高い処理でした。また、開発者にとっても、本質的ではない構文エラーの修正に時間を取られることは、生産性の低下を意味しました。HTML5の現実主義は、「表現の豊かさ」と「開発のしやすさ」のバランスを最適化したのです。
モダンWeb標準における「今の厳格さ」
XHTMLが廃れたからといって、現在のWeb開発が無秩序になったわけではありません。むしろ、別の形での「厳格さ」が求められるようになっています。
リンターと静的解析の普及
かつてXHTMLがブラウザによるエラーチェック(実行時の厳格さ)を目指したのに対し、現代の開発現場ではESLintやPrettier、HTMLHintといったツールを用いた「ビルド時の厳格さ」が一般的です。
不適切な構文はエディタ上で即座に指摘され、自動的に修正されます。ブラウザに負担をかけることなく、高品質なコードを維持する仕組みが、ツールチェーンによって解決されているのです。
TypeScriptとコンポーネント指向
2026年現在のフロントエンド開発においては、HTMLを直接書く機会よりも、ReactやVue.jsといったライブラリを通じて、コンポーネントとして記述することが主流です。TypeScriptを用いることで、属性(Props)の型チェックまで厳密に行われるようになりました。XHTMLが夢見た「データの整合性」は、HTMLの仕様そのものではなく、その上位レイヤーである開発言語やフレームワークによって実現されたと言えるでしょう。
まとめ
XHTMLの「厳格主義」からHTML5の「現実主義」への転換は、Webテクノロジーが「理想」という抽象的な美しさから、「ユーザー体験と開発効率」という具体的な価値へとシフトした歴史そのものです。
XHTMLが目指したXMLとの融合や厳密な構造化という理念は、決して間違いではありませんでした。しかし、Webという広大でカオスな世界においては、柔軟性と互換性を備えたHTML5の現実主義こそが、イノベーションを加速させるための正解だったのです。
私たちが今日、複雑なWebアプリケーションをストレスなく利用できているのは、かつての厳格主義の失敗を糧に、Webを「生きている標準」として育て続けてきた先人たちの決断があったからです。技術の進化を追うとき、その仕様が「なぜそうなったのか」という背景を知ることは、単なる知識以上の洞察を私たちに与えてくれます。
今後、Webはさらに進化し続けますが、その根底にある「現実を直視し、使いやすさを優先する」という哲学は、これからも変わることなく受け継がれていくことでしょう。
