現在の HTML
は、WWW
に関する技術の標準化を行っている団体である W3C により、4.01バージョンが勧告されています。HTML
の仕様は過去何度かバージョンの改定がなされていますが、バージョン4以降から大きく変わった点としては、文書構造に関する情報とそのスタイルに関する情報を分離する、ということが挙げられます。
もともと HTML
が文書の構造を明示的に定義するためのものであったことを重視して、Webの爆発的な普及に伴う各ブラウザの独自タグの拡張によって肥大してしまった部分を整理して、純粋に本来の 「文書構造のマークアップ」 を行う仕様に戻した形になっています。
DTD (Document Type Definition)
の宣言HTML
文書には、常に DTD(Document Type Definition
文書型定義) の使用しているバージョンを明記しなければなりません。ここではバージョンの明示の仕方を説明します。HTML4.01
には3つのバージョンがあり、将来的に1つに統合されていく予定です。廃止予定とは将来的なもので、W3Cは期間を言明はしておりません。また、非推奨となっている 要素、属性は廃止予定の項目です。
DTD
が宣言されていない HTML
文書は、HTML2.0
仕様書によると「ブラウザは HTML2.0
として扱え」となっていますが、HTML4.01
ではこの考え方では現状に対応できないとの見解を示しております。つまり、それなりのバージョンとして扱った方がいいとのことでしょう。
全要素、属性に対して、誤った記述をブラウザ側で正常に表示するように求めており、この DOCTYPE
の明示如何に関わらず、正常に表示されるはずです。ただし、誤った記述に依存した HTML
設計は良くないとのことも明言していますので、HTML
を書く場合、 常に文法に気を使わなければなりません。
あらゆる HTML
文書の行頭にバージョンを明示する文を加えなければなりません。この文は、HTML
要素の外で構いません。 (通常はHTML
文書の1行目) また、大文字小文字の区別があるので、下記のように記述します。
DTD
(文書型定義) は大きく以下の3つに分けて考えることができます。
HTML4.01 Strict DTD 厳格仕様 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
廃止予定の要素や属性とフレーム関連を除く、すべての要素と属性が定義されています。将来、このDTD
に統合されていく予定です。つまり、かなり厳格な文法で記述することが 求められているものです。
HTML4.01 Transitional DTD 過渡期仕様 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
フレーム関連を除く、廃止予定の要素や属性を含むすべての要素と属性が定義されています。 将来、廃止予定ですが、ブラウザはこれらをサポートする必要があります。現在の Webサイト上にあるページの多くがこれを採用しています。実際には、DTD
を記述していないページはまだ多く存在しているのも現実です。
HTML4.01 Frameset DTD フレーム仕様 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
フレーム関連と廃止予定の要素や属性を含むすべての要素と属性が定義されています。将来、廃止予定ですが、ブラウザはこれらをサポートする必要があります。
なお、ここに掲げた文書型定義は、「互換型」と呼ばれる記述です。