HTML4徹底解説:歴史・仕様・移行・実務で押さえるポイント
HTML4とは
HTML4は、1997年から1999年にかけてW3C(World Wide Web Consortium)によって勧告されたマークアップ言語の仕様群で、正式にはHTML 4.01(1999年)としてまとめられました。HTML4はそれ以前のHTML 3.2の不足点を補い、文書構造の厳密化、国際化、フォームやスクリプトの拡張、アクセシビリティやスタイルの分離(CSSの活用)などを推進した規格です。ウェブ開発の歴史においては、HTMLからXHTMLへの橋渡しとして重要な位置を占め、現在のHTML5が登場するまでの事実上の基準となりました。
歴史的背景と目的
1990年代後半はブラウザ間の実装差や表現手段の乱用(テーブルレイアウトやフォントタグの常用)によって、ウェブの標準化とアクセシビリティが大きな課題となっていました。HTML4はこうした問題に対応するため、文書の意味構造(セマンティクス)を強化し、プレゼンテーション(表示)はCSSに委ねるという考え方を明確化しました。また、国際化(文字エンコーディング)、フォーム機能の拡張、フレームの正式化などが盛り込まれました。
バリエーション(DOCTYPEと文書型)
HTML4には主に3つの文書型が規定され、用途に応じて使い分けられました。
- HTML 4.01 Strict:プレゼンテーションに関する要素(FONT、CENTER等)や属性を廃止し、構造とセマンティクスを重視する文書向け。
- HTML 4.01 Transitional:既存の(当時の)レガシーなプレゼンテーション要素を許容。移行期に広く使われた。
- HTML 4.01 Frameset:フレームを使う文書のための文書型。フレームは現在では推奨されない設計だが当時は複数ドキュメントの同時表示に使われた。
具体的なDOCTYPEの例(HTML4.01 Strict):<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">。HTML4では正しいDOCTYPE宣言がバリデーションやブラウザのレンダリングモード(標準モード vs クイックスモード)に影響しました。
主要な仕様ポイント
- セマンティック要素の整理:HTML4はH1〜H6、P、UL/OL、DL、DIV、SPANなどの基礎的な構造要素を整備し、文書の意味を明確にする方向を示しました(ただし現在のHTML5に比べるとセマンティック要素は限定的)。
- フォームの拡張:input要素やtextarea、selectなどが規定され、name属性やmethod、enctypeなどのフォーム送信に関する制御が明示されました。現在のHTML5にある新タイプ(email、date等)はHTML4には含まれていません。
- スクリプトとオブジェクト:script、noscript、object、embed(非標準からの導入)などで外部リソースやプラグインを扱う仕様が示されました。またDOMの利用が一般化し、JavaScriptによる動的な操作が広がりました(ただしDOM仕様は別規格として整備)。
- 国際化:キャラクタセット指定(meta charsetやHTTPヘッダ)や言語指定(lang属性)など、マルチバイト文字や多言語化をサポートするための要素や属性が明記されました。
- スタイルの分離:プレゼンテーション層をCSSに任せるため、スタイル属性・タグの使用を減らす方向が推奨されました。HTML4はCSS1/CSS2との連携を想定しています。
- フレームのサポート:frameset、frame、noframesなどの要素が規定されましたが、アクセシビリティやリンクの共有性に問題があったため、後の時代では非推奨とされます。
廃止・非推奨になった要素と属性
HTML4のStrictでは、プレゼンテーションに関わる多くの要素や属性が非推奨、または廃止対象になりました。具体例としてはFONT、CENTER、BIG、SMALL、BASEFONT、そして多くの表レイアウトに依存した属性(alignやbgcolorのインライン使用など)です。これによりデザインはCSSへ移行する流れが強まりました。
アクセシビリティとセマンティクス
HTML4は障害を持つユーザーのためのアクセシビリティ(特にWAI—Web Accessibility Initiativeとの連携)を重視しました。alt属性(img)、label(フォーム要素)などの使用が推奨され、文書の意味を明示することがユーザビリティ向上につながるという考え方が広まりました。ただし、HTML4自体はARIAのような詳細な支援技術属性を含んでおらず、これらは後の仕様や補助技術が補完しています。
DOMとスクリプトの関係
HTML4はドキュメントの構造を定義しましたが、DOM(Document Object Model)は別規格として整理され、スクリプトと連携して動的操作を行うための基盤を提供しました。HTML4時代にはブラウザごとのDOM実装差が大きく、クロスブラウザ対応のための回避策(ブラウザ判定やライブラリの利用)が一般的でした。現在のような統一的なDOM Level 2/3のサポートはこの後の標準化で改善されました。
セキュリティと制約
HTML4自体はコンテンツと意味構造を規定する仕様であり、セキュリティ対策(XSSやCSRFなど)は実装側の問題です。ただし、HTML4で導入されたフォームやスクリプトの自由度は、検証やエスケープが適切でない場合に脆弱性を生む要因ともなりました。サーバー側の入力検証、出力時の適切なエンコーディング、Content Security Policy(CSP:HTML4には存在しないが後に導入)の活用が推奨されます。
HTML4からの移行:XHTMLとHTML5
2000年代前半には、より厳格な構文を要求するXHTML 1.0が普及しました。XHTMLはXMLのルールに従うため、要素の閉じ忘れなどが許されず、パースの一貫性が向上しました。HTML5はさらに進み、モダンなウェブアプリケーションに必要な機能(新しいセマンティクル要素、マルチメディア要素、API群)を標準化しました。HTML4はこれらへの過渡的な仕様と見なされますが、歴史的・互換性の観点から理解しておくことは重要です。
実務で押さえるべきポイント
- 既存の古いサイトをメンテナンスする際、DOCTYPEの確認とバリデーションが最初のステップ。DOCTYPEによりブラウザのレンダリングモードが決まるため、表示崩れの原因調査に役立ちます。
- レガシーなプレゼンテーション要素(FONTやCENTERなど)を見つけたら、CSSに置き換えることで保守性とアクセシビリティが向上します。
- フォームの実装はHTML4の仕様を踏まえつつ、サーバー側での入力検証と出力時の正しいエスケープを必ず行うこと。
- もし可能なら、段階的にHTML5準拠へ移行することを検討する。HTML5は後方互換性を意識して設計されていますが、完全移行時にはマークアップやスクリプトの修正・テストが必要です。
サンプルテンプレート(HTML4.01 Strict)
基本的なHTML4.01 Strict文書の最小構成は以下のようになります(HTMLタグはエスケープ表記で示します)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>タイトル</title>
</head>
<body>
<h1>見出し</h1>
<p>本文。</p>
</body>
互換性と現代への影響
現代のブラウザはHTML4文書を問題なく表示できますが、HTML5で導入された便利な要素やAPI(video/audio、canvas、localStorageなど)はHTML4には存在しません。レガシーシステムの維持管理ではHTML4の知識が役立ちますが、新規開発ではHTML5を基本にするのが実務的です。とはいえ、HTML4の思想(セマンティクス重視、プレゼンテーションの分離、アクセシビリティ配慮)は現代でも重要な設計原則です。
まとめと推奨事項
HTML4はウェブ標準化の過程で重要なステップでした。セマンティックな文書構造やCSSとの分離、フォームの拡張などはその後の仕様にも大きな影響を与えています。現在ではHTML5が主流ですが、HTML4文書の理解はレガシー対応や歴史的背景の把握に不可欠です。実務では、可能であれば段階的にHTML5へ移行しつつ、既存のHTML4コードはバリデーション、アクセシビリティ、セキュリティを踏まえて改善していくことを推奨します。
参考文献
- W3C: HTML 4.01 Specification
- MDN Web Docs: HTML 入門
- W3C Internationalization (i18n)
- WAI: Web Accessibility Initiative
- WHATWG / HTML Living Standard(参考として現代の仕様)


