HTMLは開発者たちのために

昔からよく「HTMLの正しさ」というような表現を見る。少し前はHTMLの構造的な完全さや文法的な正確さなどにウェブページの表示やCSS、そしてJavaScriptが依存していたので、そういった点を強く意識する必要があった。Firefoxが親切に教えてくださっていたXMLパースエラーのことを思い出すとわかりやすい。僕も良くそれに類する表現を使っていた。

今はブラウザーとウェブ標準技術が共に進化したので、そういった形式的な正しさはさほど重要ではない。かろうじてハイパーリンクだけがまともな壊れたHTMLでもなんとか修復して解釈してくれる。命名規則ベースのCSSならばHTMLがどうあれうまくスタイルが当たってくれるだろう。足りない機能はDOMツリーの状況をほとんど無視できるShadow DOMでどうにでもできるというわけだ。

HTMLにCSSとJavaScriptを生やしてウェブページが出来ていた時代はとっくに終わっている。HTMLとCSSとJavaScriptを組み合わせてウェブサイト(ウェブページではない)が出来上がる時代になっていることは強く意識しなければならない。

そう考えると今のウェブ制作の技術的な面において、HTMLの構造や文法というものはほとんど意味がないと言える。せいぜいa要素の閉じ忘れやフォーム要素の取り扱いに気を付けるくらいで、あとはChromeやFirefoxたちがなんとかしてくれる。ユーザー補助機能の提供しやすさを根拠に反論することも可能だが、それもaria-*属性でどうにでもなる話であって良いはずだ。

しかしこれはユーザー(やユーザー・エージェント)にとっての話だ。


仕様に沿った少し冗長でちゃんとしたHTMLコード(HTML文書ではない)は開発者の役に立つ。仕様という共有できる(そこそこ)安定した知識に従ってHTMLコードを読み書きすることができるからだ。ここで正しさに類する表現をしてしまうと、ややこしいことになるのではないか。「ちゃんとした」や「悪くない」などが本質的に近く、流行り言葉で言うなら「エフォートレス」などが近そうだ。

壊れたHTMLを吐き出す多くのウェブサイトが成功を収めていることを考えると、仕様での規定などを根拠に漫然と「HTMLの正しさ」を主張するのは悪手と言わざるをえない。開発上のメリットを主軸に展開すると説得力を持たせられるだろう。


ここにどのように啓蒙していくかの具体的なアプローチが列挙されると良い文書になる。提起までで力尽きてしまった。