Selly
[E-Mail]
1999/04/12(月) 01:32:33
HTMLがSGMLアプリケーションである以上、DTD宣言は必須です。
DTD宣言を解釈して表示を変更するブラウザが現存するかは不明ですが。
#RFCにはDTD宣言を省略した場合はHTML/2.0として解釈すべきと書いてあるらしいです(未確認)
まゆ
1999/04/12(月) 01:54:45
「ちゃんとした答え」にはならないと思いますが...。(^-^;
ご参考までに。。。
私が文法チェックで使用している「Another HTML-lint gateway」
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
によると、
「DOCTYPE宣言は、文書がHTMLであり、さらにどの仕様のHTMLで書かれているのかを明示するものです。」とあり、
「文法的にもHTMLとしても正しいが、WAIやRFCで推奨されていないもの。」とあります。
で、みむおさんのおっしゃる通り、MSIEとMozillaなどには対応するDOCTYPEがありません。(自分の都合のいいようにHTMLを表示してくれる)
このサイトで文法チェックを実際にしてみるとおわかりになると思いますが、HTML3.2の宣言では、例えば<td>にbgcolorを使用すると減点されてしまうであるとか、「えっ」という結果になると思います。要は、3.2では使用してはいけない、だけどブラウザ上ではきちんとたいてい表示される...。
うーん。なんだかよくわからなくなってきましたが...。
注意点として、上げられることといえば、
エディターを使用する場合、勝手にエディターがDOCTYPE宣言を生成してくれるわけなのですが、
<!DOCTYPE HTML PUBLIC "HTML 3.0">
<!DOCTYPE HTML PUBLIC "HTML 3.2">
<!DOCTYPE HTML PUBLIC "-//IBM//DTD HPB HTML//EN">
この3つは、IBM HomePage Builderが、そして
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
これは、Internet Explorer 4.0が生成するらしい、ということです。
どれも間違った文なので、後から実際にHTMLソースを見てチェックする必要があるようですね。