ホームページ目次1997年前の話次の話

私のHTMLファイルはバグだらけ

1997年1月16日

13日の「国産メモリは不良品だった」で 紹介したDOS/Vマシンの調整が進んで、こんどはそちらのマシンにWWWサー バを置くということで、昨日は、とりあえず今の私のホームページをどーんと 移して動くかどうかテストをしていた。

結論から言うと、Javaの中で、new URL()のところで、まったく阿呆な ことに、ハードコーディングしていた部分があったので、DocumentBaseを指定 してちゃんと移植性を高くした。まあ、それだけが引っかかっただけであり、 すんなりといってしまった。

なお、まだテスト中なので、みなさんが今すぐ使える訳ではない。とりあえ ずテストしてみたのは Apache である。まだ CERN のときのままなんで、新し い機能のテストなどはしていない。まあ、運用しながら、おいおいやって行こ うと思っている。

と思っていたら、「Jigsaw も動かしているから、こっちでもテストやって みる?」なんてことを言って挑発するのがいる。もう、困った連中である。

でも、まあ、秘密極小非公開プロバイダ(もしかして秘密結社か)であるネッ トワークセンターも、2月頃には回線の太さが倍になるらしい。未確認の部分 もあるのだが、今やっている作業は、そのための準備でもあるらしいんだ。こ れで、オープンしてから2度目の回線UPという着実にアクセスが延びている優 良プロバイダなんである。でも、下位サイト数とかは増えていないなあ。まあ、 私の息子がWWWを楽しむようになって混むようになったのかも知れない。

さて、タイトルにも書いてあったように、私のHTMLファイルはバグだらけで ぜんぜん読めないとのメールをいただいた。で、指摘された個所を調べたら、 ちゃんとバグっていた。それも、コメントの入れ方のバグである。コメントす ら入れられなくなったのであるから、もうそろそろ引退した方がいいかも知れ ない。

私のページを見て、View / Source とかしてくれれば、大抵のブラウザでは HTMLファイルそのものが見える筈である。そこには、かなりの量のコメント (とおぼしきもの)が入っているのである。ファイルにより入れ方はかなり異 なるが、どんな入れ方をしたかすら覚えていない。

英語に弱いから、最初は適当な本を手に入れて読んだ。それによると、大抵 の本が

<!-- この間にコメントを書くんだよ -->
となっていた。でも、先日本屋で立ち読みして調べたら、若干の本で、

<!- この間にコメントを書くんだよ ->

となっていた。いかん、これでは分からない。そもそも、本などを頼りにする ようでは失格である。インターネットで使われているHTMLの仕様を調べる のに、本に頼るとは私も呆れた行動をしたものだ。

というわけで、当然のごとくインターネットで正規のサイト W3C へ行って調べなければならない。これが正道である。他は邪道である。

それで、そこへ行って、一部コピーして来たのが以下の部分である。

Comments

To include comments in an HTML document, use a comment declaration. A comment declaration consists of `<!' followed by zero or more comments followed by `>'. Each comment starts with `--' and includes all text up to and including the next occurrence of `--'. In a comment declaration, white space is allowed after each comment, but not before the first comment. The entire comment declaration is ignored. (10)

For example:

<!DOCTYPE HTML PUBLIC "-//IETF// HTML 2.0//EN">
<HEAD>
<TITLE>HTML Comment Example</TITLE>
<!-- Id: html-sgml.sgm,v 1.5 1995/05/26 21:29:50 connolly Exp  -->
<!-- another -- -- comment -->
<!>
</HEAD>
<BODY>
<p> <!- not a comment, just regular old data characters ->

私の乏しい英語力によっても、<!-- と --> で囲むのではないこと は分かる。<! と > の間に「コメント」なるものを入れることができ るらしい。そして、その「コメント」は、前後を -- で囲むらしい。しかし、 <! と 最初の -- との間にはスペースを入れてはならない。

だから、

<!-- --------------------------------------- -->
<!--------------------------------------------->
なんて書いている私のHTMLファイルは無茶苦茶な解釈がされ、画面が破壊、コ ンピュータが破壊しても仕方がないのである。すべて私の不徳の致すところで ある。

<!-- AAA -- BBB -- CCC -- DDD -- EEE --- FFF -->
と書くと、BBB, DDD, FFF はコメントにならない。 そして、最後の --はコメントの開始を示すことになるのであろうか。

さらに、最近は、JavaScript を HTMLファイルに入れるのも流行っている。 それをJavaScript非対応ブラウザのときにJavaScript部分をコメントと解釈し てもらうために、以下の形式で書くことが推奨されているようである。

<SCRIPT LANGUAGE='JavaScript'>
<!--
	ここに JavaScript を書く!
	でも --演算子 を使ったらどうなるんだろう
//-->
</SCRIPT>

さて、問題はこれからである。-- の起源はどこなんだろうか。大昔、FORTRAN なる言語は、先頭カラムに C と書いてコメントとしたようだったよな、確か。 それから、多くの言語が、ある特定の文字(列)以降行末までをコメントとした。

'   ;   #   !   //   --
その後、コメントの最初と最後を特定の文字(列)で囲むようにもなった。
  {   }        (*   *)       /*    */
その他にも色々あろうが、浅学ゆえよく分からない。ちなみに、--以降行末 までをコメントとするのは、あの鳴りもの入りで登場して来たAdaなる言語で あった。今でももちろん使っている人は使っているが、全く普及しなかった。

HTMLのコメントは、まずは <!と> で囲む。その中にコメントを入れる ことが出来る。ということは、コメント以外も入れられるのである。

<!-  このコメントは正しくない  ->
<! - このコメントは正しくない - >
<!-- このコメントは正しい -- >
<! -- このコメントは正しくない -- >

それにしても、問題は、こういう 誤解を生んだ原因である。バグだバグだと騒ぐの は馬鹿でもできる。なぜ、世界中で誤解が発生してしまったかである。バグの 源泉は上の英文である。これは間違いないだろう。この英文を皆が誤解し、ど んどん広まってしまったのであろう。これだけ広まってしまっては、バグの方 が正当になってしまったかも知れない。

現在出版されている殆どの出版物は、この仕様を正しく伝えていない。少な くとも、私が目にしたHTML本(含む翻訳)は、全部だめであった。

なお、
Behrouz H. Far先生@埼玉大学 HTML文法 コメント
矢野啓介さん@北海道大学 好ましいHTML文書を書くための方法と考え方コメント
を参照されることをお勧めします。

さて、なぜ、こう、誤解を生みやすい仕様になったのだろうか。そもそも、 HTMLはSGMLというのを祖先にもっている。それのコメントの仕様も同じであっ た。

仕様の決定、文章表現にあたっては、注意しないとこのようなことになって 収拾がつかなくなってしまう。これだけ誤りが広まるということは、その原因 を作った方に相当の問題がある。たとえば、薬品の説明書について考えてみよ う。誤解を生むような説明を書いておいて、医師が読み誤り患者が死亡したり するようなことが多発したらその責任はだれにあるのだろうか。


4月16日、一部訂正。
ホームページ目次1997年前の話次の話