1990年にCERNのTim Berners-LeeがWWWを発表したときには、 HTMLは厳密なSGMLアプリケイションではなく、多少ルーズなものだったが、 その後の混乱期を経てW3Cが設立され、W3Cの働きによりHTML 2.0以降は、 HTMLは明確にSGMLアプリケイションになった。
HTML 3.0は「存在しない」。 HTML 4.0が公布されても、HTML 3.2やHTML 2.0が存在しつづけているのとは事情が違い、 HTML 3.0は破棄されて、現在は存在していない。
HTML 3.2までは、Internet ExplorerやNetscapeなどが勝手に拡張して流行らせたエレメントを しぶしぶ追認してとりいれるという、 規格が現実の実装を追いかける形になっていたが、 HTML 4.0はようやく追いつき、規格のほうが実装より先にあるという、あたりまえの姿になった。
HTML 4.0では、HTMLの規約を3種類に分け、 従来のものも使える折衷案のような「Transitional」と、 将来あるべき形を示してプレッシャーを与えるための「Strict」を別々に定義した。 移行期はTransitionalを使うのが合理的だろうが、 4.0以降の今後を見据えるためにはStrictに合わせて書いておくべきだろう。 Strictでは物理的な見栄えを定義するエレメントがすべて廃止になっているため、 ペイジの見栄えを指定するのにスタイルシートの使用が必須である。