TITLE 要素がない HTML がある!
HTML の TITLE 要素のないファイルを時々見かけますが、HTML では TITLE は
省略してはならないことになっています。TITLE 要素のない HTML は主に
フレームに多いようです。これは使用した HTML エディタに問題があるのか?
P や FONT 要素にブロック要素がある!
P や FONT 要素に TABLE や CENTER といったブロックレベルの要素が
含まれている HTML をよく見かけます。これはやってはいけないことです。
ちなみに、HTML の仕様では P 要素にブロックレベルの要素である TABLE
は記述できないことになっていますが、いろいろ調べた結果、
Netscape では記述できるようになっているようですね。実験した HTML はこんな
感じです。
あ <P> い <TABLE><TR><TD>う</TD></TR></TABLE> え <P> お </P> か
HTMLの仕様では、P 要素には TABLE 要素は記述できなく、さらに P
要素の終了タグは省略可能になっています。ということは
「い」の直後に </P> が省略されていると解釈します。ところが、この
HTML を Netscape で見ると、「い」「う」「え」の部分が同一パラグラフに
入っているように表示されます。どうも P 要素に TABLE
要素が含まれて解釈されているようです。
こういった結果から、Netscape
では </P> の省略を正しく解釈できないようです。古い形式の HTML に
こだわって </P> を省略する人が多いようです。ところが、
これを省略すると正しく HTML を解釈できなくなる不都合があるため、
できるだけ省略しないように推奨します。
アンカーの無い <A NAME=""></A>
この様な空のアンカーを見かけますが、こういった空のアンカーは、
ユーザエージェントによっては無視されてしまい、
<A HREF="#empty-anchor">empty-anchor</A>
が機能しなくなる可能性があります。何か文字が含まれていないと
問題を生じます。ところが一部の HTML エディタでは空のアンカーを
平気で生成してしまうようです。
最近、誤った charset を記述した HTML が多くなってきました。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
と、HTML のヘッダ部分に記述してありながら、中身が SJIS だったりするヒドイ
ページが増えてきてます。UNIX 上の Netscape だと、このようなページは
文字化けして読めないです。
ヘアライン?
たまに <HR> をヘアライン(Hair Line)と呼ぶ人がいるのですが、
これ、間違いですよ。水平線(Horizontal Rule)ですよ。
いったい誰がヘアラインと言い出したのか? Hair Line なんて言葉は
W3C 勧告の HTML 仕様書には一切記述されていません。誰かが勝手に
誤ったことを言い始め、それが誤ったまま本なんかに思いっきりかかれていたり
します。それを読んだ人もまた誤って覚えてしまうんですね。
ええい!ヘアライン特集だぁ。
タグと要素は同じではない!
要素とは文章の構成を明示するものであり、H1 や P などがあります。
一方タグとはテキスト中の要素を記述するためのマーカーのことで、
要素の名前を「<」と「>」とで囲んで記述します。
H1 や P は要素であり、タグとは言いません。
なお、タグには開始タグと終了タグがあり、
開始タグは <要素名 属性>、終了タグは </要素名>
という形式をしています。要素によっては
終了タグが省略できたり、あるいは終了タグを記述してはならない
ものがあります。終了タグを持たない要素は「空要素」と言います。
タグ名、空タグ、エンプティタグ、といった言葉は誤りです。また、 P タグ、TITLE タグといった言い方も誤りです。 そんな言葉は現在の W3C HTML 仕様書には記述されていません。 (古い仕様書にはそう記述されていた部分がありましたが、現在では そういった言葉は誤りであるとされています。)