第12章 HTML 仕様書は誰のためにあるのか
この章では、HTML 仕様書を「著者向けの正しい書き方集」とだけ見るのではなく、ブラウザ実装者、著者、標準化に関わる人たちがそれぞれ別の目的で読む文書だと整理します。ゴールは、HTML Living Standard が長く細かい理由を、「説明が下手だから」ではなく、「複数の読者に対して異なる役割を背負っているから」と説明できるようになることです。
前章では、属性値の省略にも条件つきの文法があることを見ました。この章では、そのような細かな規則がなぜ仕様書へ書き込まれているのかを扱います。次の第4部では、その仕様と現実が歴史の中でどう折り合ってきたのかへ進みます。
12.1 仕様書の中心読者はブラウザ実装者である
HTML 仕様書を初めて開くと、多くの人はまず長さに驚きます。要素一覧や属性一覧だけなら、あそこまで巨大になる必要はなさそうに見えるからです。実際、1 ページにまとめた版はブラウザで開くだけでも重く感じるほどの分量で、読みやすさのために章ごとに分割した複数ページ版がわざわざ別に用意されているほどです。
しかし仕様書の中心には、著者への助言だけでなく、ブラウザが同じ入力をどう処理するかをそろえるための規則があります。パーサーがどのトークンをどう読むか、壊れた入力をどう回復するか、どの DOM を組み立てるか。第2部で見てきた細かな挙動の多くは、まさにそのために書かれています。
たとえば、tbody をいつ立ち上げるのか、p をどこで暗黙に閉じるのか、コメントや属性値の境界をどこで切るのかは、どれも「雰囲気でだいたい同じ」にして済む話ではありません。1 文字ぶん解釈がずれるだけで、DOM も CSS も JavaScript もずれていきます。だから仕様書は、そうした細部を実装者どうしでそろえるために長くなります。
つまり HTML 仕様書は、「人間が HTML を学ぶための本」より先に、「実装がばらつかないようにするための規約書」です。長いのは、話が回りくどいからではなく、ブラウザ同士で結果をそろえるために細部まで決める必要があるからです。
12.2 著者にとっての仕様書は最終根拠である
では、著者にとって仕様書は不要なのでしょうか。そうではありません。ただし、使いどころが違います。
著者が日常的に読む入口としては、MDN のような整理された解説のほうが向いています。どの要素をいつ使うか、どういう属性があるか、まずはそちらのほうが読みやすいからです。仕様書は最初から学習教材として最適化されているわけではありません。
それでも仕様書が重要なのは、通説やブログ記事が食い違ったときに、最後の根拠へ戻れるからです。h1 は 1 個だけなのか、tbody はなぜ DOM に現れるのか、コメントや属性の省略はどこまで許されるのか。そうした問いに対して、「誰かがそう言っていた」ではなく、一次情報へ戻るための場所が仕様書です。
たとえば、要素の基本的な用途を知りたいだけなら MDN で十分なことが多い。MDN は、Web 技術を開発者向けに整理して解説している資料集だと思えば十分です。一方で、「この終了タグは本当に省略できるのか」「この入力でパーサーはどの DOM を作るのか」といった境界の話になると、最終的には仕様書の定義へ戻る必要があります。入口と根拠を分けて考えるほうが、仕様書との付き合い方として現実的です。
この意味で、著者にとっての仕様書は毎日通読する本ではなく、判断が割れたときに戻る基準点だと言えます。
12.3 標準化する側にとっての仕様書は合意の文書である
仕様書には、実装者向けの規則と著者向けの根拠だけでなく、標準化の合意を残す役割もあります。どの要素をどう定義するか、どこまで後方互換性を守るか、何を obsolete(仕様が「もう使わない」と定めた状態)と見なすか。そうした判断は、単なる豆知識ではなく、Web 全体の振る舞いを左右します。
ここで仕様書は、「理想的な文法を書く紙」では終わりません。すでに広く使われている実装や既存ページとの整合も背負います。だから仕様書は、美しい理論だけでなく、現実の Web を壊さないための条件まで書き込んでいきます。HTML 仕様書が大きくなりがちなのは、そのためでもあります。
この視点を持つと、第2部で見たエラー回復や、第3部で見てきた細かな文法が、単なる技術仕様ではなく「実装と互換性の合意」でもあると分かります。仕様書は、ブラウザと著者と既存の Web のあいだで、どこまでを守るかを書いた文書でもあるのです。
12.4 「読みにくい仕様書」には役割の違いが混ざっている
HTML 仕様書が読みにくく感じられるのは自然です。1 つの文書に、実装規則、著者向けの定義、標準化の判断材料が同居しているからです。読み手が自分の目的を決めずに開くと、必要な部分より先に大量の細則へぶつかります。
だから実務では、最初から仕様書だけで学ぼうとしないほうがよい。日常の理解には整理された解説を使い、判断が割れたら仕様書へ戻る。仕様書を読むときは、「自分はいま著者として確認したいのか、実装の根拠を知りたいのか」を意識する。そのほうが、仕様書の長さに飲まれにくくなります。
ここまでで、HTML 仕様書は誰か 1 種類の読者だけのためにあるのではなく、複数の立場を同時に相手にする文書だと分かりました。次の第4部では、その仕様が理想だけでは進めず、既存の Web とどう折り合ってきたのかを、消えたタグや XHTML の挫折から見ていきます。