文法チェッカを使おう!

ブラウザのエラー復旧処理

HTMLのマークアップが間違っていたとき、ブラウザがそれをどう扱うかについては特に定められていません。たとえば、TABLE 要素を使って表のマーク付けをしたのに、終了タグを書き忘れてしまったとします。TABLE 要素の終了タグは省略できないことになっていますから、これは不正なマーク付けです。

そんなマーク付けに出会ったとき、Netscape Navigator では表そのものが全く表示されません。しかし、Microsoft Internet Explorer では、ちゃんと表として表示されます。これは IE が適当な場所に </TABLE> タグを補って解釈しているためで、IE の方が NN よりもエラー復旧能力に優れていると言えます。

ところが、世の中には、</TABLE> を補ってしまうなんてけしからん、エラー復旧能力は劣っていた方が良い、と言う人がいるのです。話を聞いてみると、HTML文書の確認は NN でやるべきだ、といいます。IE で動作確認すると </TABLE> の書き忘れに気付かない。それでは多くの人が迷惑する。よって IE はけしからん、と言うのです。

そんな馬鹿な話はありません。そもそも、NN や IE で 動作確認すれば良いという発想自体が間違っているのです。

NN にせよ IE にせよ、WWW ブラウザは少なからぬエラー処理能力を持っています。TABLE の例では NN にエラー復旧能力が欠けていたわけですが、CENTER 要素、Hn 要素、ADDRESS 要素、その他多くの要素については、IE, NN 両ブラウザとも適当に終了タグを補って解釈してくれるはずです。しかし、たまたま二大ブラウザで表示できるとは言え、そのマーク付けが誤りであることには変わりありません。

ブラウザは、HTML文書を表示するための道具です。多少のエラーがあっても表示できるように努力するのは当然で、実際、多くのブラウザがその努力をしています。そもそも、ブラウザは HTML にエラーがないことを確認するための道具ではないのです。IE より NN で確認した方がよい、などという発想は根本的に間違っています。

では HTML の文法が正しいか否か、どうやって確認するのが望ましいでしょうか。

HTML4.0の仕様書には、この問題についての項目がちゃんと設けられています。長くなるので引用はしませんが、興味のある方はHTML4.0仕様書 19.1を見てください(ちなみに邦訳もあります)。

その中では SGMLパーサーの使用などについて言及されていますが、やはり HTML 専用の文法チェッカを使うことが望ましいでしょう。

文法チェッカにもいろいろありますが、私が特にお勧めするのは k16 さんの Another HTML-lint です。

Another HTML-lint

Another HTML-lint は HTML の文法を検証し、採点するツールです。基本的な使い方は、ブラウザでゲイトウェイのページにアクセスし、チェックしたい HTML 文書の URL を指定してボタンを押すだけです。しばらく待つと、採点結果が表示されます。

私がこのチェッカを推す理由はいくつかありますが、

といった理由が大きいところです。無料ですから誰でも気軽に利用できますし、結果の解説は非常にためになります。何度もこのチェッカを利用して少しずつ文法上の不備を直していけば、いつの間にか HTML の知識が身に付いているという寸法です。ぜひ、このツールを積極的に利用して HTML の誤りを正してください。

なお、個人的には

という驚くべき経験があります。凄いです。

ローカルで Another HTML-lint を使う

Another HTML-lint は基本的に WWW 上のリソースをチェックするものです。しかし、ローカルにある HTML をアップロードする前にチェックしたいこともあるでしょう。公開してから恥をかかないように、公開前に誤りをチェックしておきたいところですね。

大丈夫です。Another HTML-lint はローカルで動作させることもできます。ダウンロードページ からダウンロードして利用してください。

但し、これ単独では動作しません。別途、Perl やそのライブラリなども必要となります。詳細はダウンロードページに書かれていますので、それを参考にして Another HTML-lint を導入してみてください。役に立つこと請け合いです。


HTMLむだ話

HTML鳩丸倶楽部

水無月ばけら, MINAZUKI Bakera
E-mail: bakera@star.email.ne.jp