在来HTMLの現行規格であるHTML 4.01について解説します。
HTML 3.2は策定当時(西暦1997年 1月)の状況からすると仕方の無いものでしたが、本来のHTMLのあるべき姿からは離れているものでした。
こういった問題点を解決するため、西暦1997年12月18日に新たに策定されたのがHTML 4.0でした。
その後、HTML 4.0の改訂版としてHTML 4.01が新たに策定されました。
当初W3Cとしては、在来HTMLとしては4.01を以って更新を終了し、XHTMLへの転換を進める予定でしたが、XHTMLが殆ど支持されていない現状からXHTMLへの転換を断念し、結局在来HTMLの後継仕様としてHTML 5の策定が進められております。
HTML 4.01は殆どそのままXHTML 1.0に反映されました。
しかしながら、HTML 4.01は破棄された訳ではありません。
現在でも在来HTMLの最新仕様として立派に通用する仕様です。
また、XHTML 1.0などの仕様はHTML 4.01に準じているため、大半がHTML 4.01の仕様を参照する事とされております。
HTML 4.01ではHTML 3.2の問題点が改善されております。
すなわち、
等と言った改善が行われております。
また、マークアップにおいても、表示方法に関しては原則としてスタイルシート言語にて行うようにし、HTMLでは文書構造に則った記述を行う事が求められるようになりました。
しかしながら、勧告当時はまだスタイルシート言語への対応も進んでおらず、このため正式版(ストリクト文書型)と併せて移行期間向けの緩い仕様(トランジッショナル文書型)勧告されました。
トランジッショナル文書型は破棄されるべきと言う意見もありますが、CSSに対応していない旧式の環境でもどうしても表示をある程度整えたいと言う人向けに現在も残されております(規格を策定・勧告する事は出来ても、それを強制・強要する事は出来ないのでしょう)。
また、フレームを策定した仕様が無かったため、フレームセット文書型も併せて勧告されました。
HTML 4.01の正式版(HTML 4.01 ストリクト)の文書型宣言は以下のようになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
しばしばシステム記述子(URI部分)が省略され、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
と宣言される事もありますが、仕様書にはそのような記述を認めている旨の記述はありません。
HTML 4.01 トランジッショナルの文書型宣言は以下のようになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
これもしばしばシステム記述子(URI部分)が省略され、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
と宣言される事もありますが、ユーザエージェントに依ってはCSSの処理を変えてしまうものがあります。
そもそも、仕様書にはシステム識別子の省略を認めている旨の記述はありません。
HTML 4.01 フレームセットの文書型宣言は以下のようになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
これもしばしばシステム記述子(URI部分)が省略され、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
と宣言される事もありますが、仕様書にはやはりそのような記述を認めている旨の記述はありません。