[12] [DFN[HTML 4]] は、 [[HTML 3.2]] の次に [[W3C]]
が[[標準化]]した一連の [[HTML]] 規格群です。
90年代末から00年代中頃まで使われていました。 [[WHATWG]] により [[HTML5]]
(現在の [[HTML Standard]]) が出版されるまで、[[HTML]] の標準仕様として用いられていました。

[26] [[HTML4]] には [DFN[[[HTML 4.0]]]] と [DFN[[[HTML 4.01]]]] の2つの版がありました。
[[HTML 4.0]] は1997年と1998年に計2回、[[HTML 4.01]] は1999年に1回 [[W3C勧告]]となりました。

[57] 00年代半ばに [[HTML5]] (現在の [[HTML Standard]]) が出版されたことで、
[[HTML4]] は標準仕様としての実効性を失って久しいですが、なぜか [[W3C勧告]]としては[[廃止]]されず、
現行版の1つという扱いになっています (>>56)。 

;; [[W3C]] ではよくあることなので、深く気にしてはいけなそうです。

* 呼称

[82] [[HTML 4.0]] と [[HTML 4.01]] の総称で [[HTML4]] と呼ぶことが多いです。

[27] [[HTML 4.01]] はしばしば「[[HTML 4.1]]」とも表記されますが、'''誤り'''です。

* 仕様書

[13] W3C の正式な[[勧告]]としての HTML 4 は、3種類ありました。

[FIG(list)[
= [14] 1997年12月18日版 HTML 4.0 <http://www.w3.org/TR/REC-html40-971218>
= [15] 1998年4月24日版 HTML 4.0 <http://www.w3.org/TR/1998/REC-html40-19980424>
= [16] 1999年12月24日版 HTML 4.01 <http://www.w3.org/TR/1999/REC-html401-19991224>
]FIG]

[54] >>15 は >>14 の改訂版ですが、編集上の修正のみを含んでいます。
(最近の W3C 仕様なら [CODE[Second Edition]] と呼ばれるでしょう。)

HTML 4.01 は HTML 4.0 の改訂版ですが、技術的な変更も含まれています。
[WEAK[厳密には 4.0 と 4.01 は互換でないのです。]]
HTML 4.0 は HTML 4.01 により廃止されています。

[17] HTML 4.01 仕様書にも幾つかの誤りが見つかっています。
- <http://www.w3.org/MarkUp/html4-updates/errata>


* HTML4 世代の仕様一覧

[46] [[HTML4]] 世代の仕様には次のものがあります。
[FIG(short list)[
- [[HTML 4.0]]
- [[HTML 4.01]]
- [[HTML 4.02]]
- [[HTML 4.0 Guidelines for Mobile Access]]
- [[CHTML]]
- [[ISO-HTML]]
- [[HTML+RDFa]]
- [[Web Applications 1.0]] (初期)
- [[Web Forms 2.0]]
- [[Web Controls 1.0]]
]FIG]

;; [[XHTML1]] 系の仕様は [[XHTML1]] を参照。

[18] [[ISO-HTML]] は、最終的には HTML 4.01 の部分集合となっています。
広義には HTML 4 の一種とみることもできますが、
少々毛色が異なるところがありましてねぇ。

[19] W3C [[Note]] として HTML 4.0 Guidelines for Mobile
Access <http://www.w3.org/TR/NOTE-html40-mobile>
があります。

** XHTML1

[59] [[XHTML1]] は、 HTML 4 の語彙をほぼそのまま [[XML]] にしたものですから、
これもより広義には HTML 4 の一種と言えますが、それもちょっとなんとなく。

[41] [[HTML4]] は [[SGML]] に基づく[[マーク付け言語]]ですが、
これを [[XML]] に移植したものが [[XHTML1]] ([[XHTML 1.0]] や [[XHTML m12n]])
でした。

;; [[XHTML1]] を参照。

[42] なお [[XHTML1]] は [[XML]] に基づく構文や[[モジュール]]の構成のみ規定する[[差分仕様書]]で、
[[要素]]や[[属性]]の意味は [[HTML4]] を (曖昧に) 参照する不完全なものでした。

;; [58] [[HTML WG]] (当時) は [[XHTML2]] を [[HTML4]] の[[意味]] (を改めたもの) と [[XML]]
ベースの構文の両方を規定した後継仕様とするつもりだったようです。

* HTML 4 DTD

[1] 仕様書の本文中の [[DTD]] 片は [[Strict]] DTD の属性しか載ってないから要注意。

[10] >>1 Transitional (loose) DTD と Frameset DTD はおまけですからね。[WEAK[ちなみに Transitional と Frameset が別々なのは、技術的に ([[DTD]] の能力的に) 統一することができなかったからです。だから、 Strict Frameset DTD 的なものはありません。]]

[[#comment]]


** REC-html4

[2] HTML4 の文書型定義 ([[DTD]]) の [[URI]] を間違って示しているサイトが大量にあります。

- × http://www.w3.org/TR/REC-html4/loose.dtd
- × http://www.w3.org/TR/REC-html4/strict.dtd
- × http://www.w3.org/TR/REC-html4/frameset.dtd
- ○ <http://www.w3.org/TR/html4/loose.dtd>
- ○ <http://www.w3.org/TR/html4/strict.dtd>
- ○ <http://www.w3.org/TR/html4/frameset.dtd>

間違った方の URI には DTD は存在しません。
検索で探した限りでは、 [[W3C]] 文書で間違った方の URI
は登場せず、間違いが蔓延した理由は不明です。

[3] >>2 HTML 4.0 の DTD <http://www.w3.org/TR/REC-html40/loose.dtd>
から類推した可能性があります。

[4] >>2-3 W3C の ML の記録を見ると、1998年・1999年には
<http://www.w3.org/TR/REC-html4/> 以下が存在していたらしいです。
(現在は Not Found で、 Internet Archive にもないので、実在していたかは分からないんですが、複数の
W3C の list の記録に登場するので、あったのかも。)

[5] ''Strict-HTML スレッド10'' <http://pc2.2ch.net/test/read.cgi/hp/1045493217/75-86>

[20]
HTML 4.0 仕様書に、一箇所誤って [Q[/TR/REC-html4/]] と書いている場所があります。 DTD の URI ではありませんが・・・。
もしかすると、当時は本当にあったのかもしれません。でもその間違った部分の直前は正しい URI になってるしなー。

参考: <IW:HTML4:"intro/intro.html#h-2.1.1">
<IW:HTML4:"appendix/changes.html#h-A.1.3">

* 構文

[61] [[HTML4]] は [[SGML応用]]とされていました。すなわち[[構文]]は
[[SGML]] により規定されるものとされ、 [[HTML]] 仕様側には (解説はありますが)
規定がありませんでした。現実の大多数の[[文書]]は [[SGML]]
に適合していませんでしたが、それらをどう処理するべきかは [[HTML4]]
でも [[SGML]] でもまったく規定がありませんでした。それどころか、
現実の[[文書]]やそれを処理する [[Webブラウザー]]の[[構文解析器]]の動作は、
[[SGML]] とは矛盾していました。

[62] [[HTML4]] は、[[参考]]としてそうした違いが生じる構文をいくつか例示し、
[[著者]]にそれらを避けるように求めていました。 (本来なら禁止するべきでしょうが、
禁止すること自体を [[SGML]] が禁止していました。)

[63] こうした矛盾は [[HTML4]] 時代には解決されないどころか[[裸の王様]]のように無視されていました。

* HTML5 との差異

[47] [[HTML5]] は [[WHATWG]] により全面改訂されており、仕様書としては [[HTML4]]
とまったく異なります。

[48] 技術的には、 [[HTML4]] は [[SGML]] に基づく空想上の仕様だったのに対し、
[[HTML5]] は独自の仕様となっており、互換性はありません。

[49] [[HTML4]] は[[マーク付け言語]]に限定された仕様であるのに対し、
[[HTML5]] は [[API]] も含んでおり、範囲が遥かに広がっています。
更に [[HTML5]] には [[XHTML]] の仕様も含まれています。

[50] [[WHATWG]] は [[HTML5]] やそれ以降の仕様の [[HTML4]] からの変更点をまとめています
[SRC[>>51]]。

[REFS[
- [51] [CITE@en-US[Differences from HTML4]] ([TIME[2015-04-13 18:02:45 +09:00]] 版) <https://html-differences.whatwg.org/>
]REFS]

* HTML4 のバグ

[32] まあ枚挙に暇がないけど。

[68] [[HTML 4.0]] 第2版や [[HTML 4.01]] で多くの不具合が修正されていますが、
それでもなお未修正のまま残っている問題が多く存在します。

[60] [[正誤表]]もありますが、いつからかメンテナンスされなくなりました。
そもそも [[www-html]] などで報告されていた不具合のほとんどは、
修正されずに放置されていました。 (当時の [[HTML WG]] は本当にひどかった。)

;; [69] なお、明確な不具合だけでもいくつかありますが、
曖昧な点はそれ以上にたくさんあります。

** 適合性

[65] [[HTML4]] の[[適合性]]に関する規定は破綻していることが、
かなり早い時期から指摘されていましたが、
ずっと放置されていました。

[24]
[CITE@en[HTML4 Implementation Requirements from Ian Hickson on 1999-02-05 (www-html@w3.org from February 1999)]] ([[Ian Hickson (py8ieh@bath.ac.uk)]] 著, [TIME[2007-10-05 17:42:17 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-html/1999Feb/0010.html>

[66] [[Webブラウザー事業者]]達からは、
「[RUBYB[机]@en[table]]に[[引用符]]を描けば、[[HTML]] に適合した実装となる」
と呆れられていました。


[21]
[CITE[IRC Log for #whatwg on irc.freenode.net, collected by WhatBot]] ([CODE[2007-01-27 01:58:34 +09:00]] 版) <http://whatbot.charlvn.za.net/index.php?date=2007-01-25>

たしかにこれ: <http://www.w3.org/TR/html4/conform.html#conformance>
は面白いなw

> A [DFN@en[conforming user agent]] for HTML 4 is one that ''observes the mandatory conditions ("must")'' set forth in this specification, ''including the following points'':
- A user agent ''should'' avoid [VAR[...]]
- A user agent ''must'' ensure [VAR[...]]
- For reasons of backwards compatibility, we ''recommend'' [VAR[...]]

-*-*-

[70] [[HTML4]] [[仕様書]]の第1章から第3章の位置付けは謎です。

[72] 第1章には、第2章と第3章が紹介であり、第4章以降が定義であるとの説明があります
[SRC[>>71]]。 また第4章冒頭には、
「In this section, we begin the specification of HTML 4」 [SRC[>>73]]
とあり、第3章までは「specification」ではないとの説明があります。
しかし第1章から第3章が[[規定]]の一部ではないとする明確な記述がありません。

[74] 第2章と第3章の本文中には、「should」が使われた文が含まれています。
これらが[[規定]]の一部であるなら、第4章の規定に従い [[RFC 2119]]
の [SHOULD[SHOULD]] と解釈され、[[適合性]]の規定を構成することになります。

[76] その場合、第3章で [[SGML]] の色々な機能が「should be avoided」
とされている [SRC[>>75]] ことから、 [[HTML文書]]で当該機能を利用することが原則として
[[HTML4]] に適合しないと解釈されることになります。
ところが、第4章で [[HTML]] は[[適合SGML応用]]である [SRC[>>77]]
とされています。
[[SGML]] によれば、[[SGML応用]]が [[SGML]] の[[マーク付け]]の機能の利用を
[WEAK[([[SGML]] で認められた範囲を超えて)]] 制限することは禁止されています [SRC[>>77]]。

[78] これは[[仕様書]]の細かな表現上の矛盾や理論上の整合性の問題というわけではなく、
現実に悪影響を与えています。例えば [[SGML]] の[[注釈宣言]]構文において
[CODE[--]] は[[注釈]]の開始や終了と解釈されるため、
[CODE[--]] を含めるべきではない (should) との記述があります [SRC[>>75]]。
[[HTML 2.0]] では、 [[SGML]] で[[注釈宣言]]中に複数の[[注釈]]を書けることを明確に示していました
[SRC[>>79]]。そのため [[HTML4]] では[[注釈]]に [CODE[-]] を書けなくなったというような解説がなされたり、
[CODE[<!---------------------------->]] のような広く (問題なく) 用いられていたソースコード上の区切り線としての用法が不適切であると言われるようになったりしました。
しかしそのような主張が正しいのか、誤りなのか、断言できるほど [[HTML4]]
は厳密に記述されていません。

[REFS[
- [71] [CITE@en[About the HTML 4 Specification]] ([TIME[1999-12-25 08:25:36 +09:00]] 版) <https://www.w3.org/TR/REC-html40/about.html>
- [75] [CITE@en[On SGML and HTML]] ([TIME[1999-12-25 08:25:38 +09:00]] 版) <https://www.w3.org/TR/REC-html40/intro/sgmltut.html>
- [73] [CITE@en[Conformance: requirements and recommendations]] ([TIME[1999-12-25 08:25:38 +09:00]] 版) <https://www.w3.org/TR/REC-html40/conform.html>
- [77] [CITE@ja[SGMLsec14_0.html, Latest updated 1998.02.09]] ([TIME[2015-07-19 18:04:42 +09:00]] 版) <http://www1.u-netsurf.ne.jp/~7l1rll/SGMLsec14_0.html#2>
- [79] [CITE@en[RFC 1866 - The 'text/html' Media Type]] ([TIME[2017-05-14 17:25:45 +09:00]] 版) <https://tools.ietf.org/html/rfc1866#section-3.2.5>
]REFS]

* [CODE[rel=alternate]]

[67] 異なる[[言語]]の版への[[リンク]]について、
[CODE(HTMLa)@en[lang]] [[属性]]を使うとの説明と
[CODE(HTMLa)@en[hreflang]] [[属性]]を使うとの説明が混在していました。


[33] 
<http://www.w3.org/TR/html4/types.html#type-links>
>
:Alternate:    Designates substitute versions for the document in which the link occurs. When used together with the lang attribute, it implies a translated version of the document. When used together with the media attribute, it implies a version designed for a different medium (or media).

[34] 
<http://www.w3.org/TR/html4/struct/links.html#search>
>In the following example, we use the hreflang attribute to tell search engines where to find Dutch, Portuguese, and Arabic versions of a document. Note the use of the charset attribute for the Arabic manual. Note also the use of the lang attribute to indicate that the value of the title attribute for the LINK element designating the French manual is in French.

** その他

[23]
[[HTML 4]] の要素索引、属性索引で [CODE(HTMLe)@en[[[iframe]]]]
は[[フレーム集合DTD]]にだけ存在するかのように書かれていますが、
実際には[[移行用DTD]]にも存在します。

* 最小の HTML4 文書

[REFS[
- [52] [CITE[最小のHTML文書とは何か - Qiita]] ([TIME[2015-08-07 01:46:45 +09:00]] 版) <http://qiita.com/wakaba@github/items/ec36c9d67707d8fb4395#%E9%81%8E%E5%8E%BB>
- [25] [CITE@ja[冬様もすなる☆日記というもの (2009年1月)]] ([[わかば]] 著, [TIME[2009-01-27 11:35:11 +09:00]] 版) <http://suika.suikawiki.org/~wakaba/d/d200901#d27>
]REFS]

* 処理

[22] [[Webブラウザー]]には、「[[HTML4]] モード」や「[[HTML5]] モード」
のようなものはありません。 [[HTML4]] で書かれた[[文書]]も、
現在の [[HTML Standard]] に従って書かれた[[文書]]も、
等しく [[HTML Standard]] に従って処理されます。

;; [64] この意味で、現在も (そして今後もずっと) [[HTML4]] の[[文書]]は数多く残っていますが、
[[HTML4]] [[仕様書]]には歴史的価値以外は残っていません。

* 歴史

** Cougar

[28] [[HTML4]] は当初 [[Cougar]] という[[コード名]]で開発されていました。

** HTML4

[53] HTML 4 は、 [[HTML+]], [[HTML3.0]] の流れと
[[HTML3.2]] を併合し、更に洗練した [[SGML]] base の HTML
の集大成ともいわれていました。

[88] 
[CITE[HTML 4.0 Working Draft Release]], [TIME[2017-10-02T10:48:08.000Z]], [TIME[2024-09-28T09:05:33.858Z]] <https://www.w3.org/TR/WD-html40-970708/>

[89] >>88 [CITE[HTML 4.0]] となった最初の公開版。

[87] 
[CITE@en[World Wide Web Consortium publishes Public Draft of HTML 4.0 | 1997 | Press releases | W3C]], [TIME[2024-09-24T14:52:37.000Z]] <https://www.w3.org/press-releases/1997/html40-draft/>


[90] [CITE@en[HTML 4.0 Specification]], [TIME[2017-10-02T10:48:08.000Z]], [TIME[2024-09-28T09:09:22.861Z]] <https://www.w3.org/TR/WD-html40-970917/>

[91] >>90 2回目の [[WD]]。ここから [[DTD]] が複数化。

[92] [CITE@en[HTML 4.0 Specification]], [TIME[2017-10-02T10:48:07.000Z]], [TIME[2024-09-28T09:11:28.413Z]] <https://www.w3.org/TR/PR-html40-971107/>

[93] >>92 3回目の公開版が [[PR]]。当時はまだ [[LCWD]] も [[CR]] もないし、
前の [[WD]] と技術的に違うものがいきなり [[PR]] になれた。

[94] [CITE@en[HTML 4.0 Specification]], [TIME[2017-10-02T10:48:07.000Z]], [TIME[2024-09-28T09:15:30.423Z]] <https://www.w3.org/TR/REC-html40-971218/>

[95] >>94 4回目の公開版が [[REC]]。これも [[PR]] と技術的に違う。

** 00年代

[43] [[HTML4]]/[[XHTML1]] は90年代後半から00年代中頃まで長く使われていましたが、
これは [[HTML4]] の完成度が高かったからというよりは、 [[W3C]] が [[HTML]]
の開発を放棄して [[XHTML2]] や [[XForms]] など [[XML]] ベースの言語に注力していたことや、
[[IE]] が市場を占有し [[Netscape]] が力を失ったことで [[Webブラウザー]]の進化が停滞したことに原因があります。

[44] この時代にも [[HTML4]]/[[XHTML1]] の仕様の不備やそれに対する [[W3C]] [[HTML WG]]
の無関心さ、あるいは [[HTML]] と互換性のない [[XHTML2]] の是非、
仕様と現実の乖離など様々な議論がありました。その中から、当時の仕様の枠内で、
あるいは当時の仕様への素直な拡張によって不足する機能を追加したり曖昧な規定を明確化したり、
乖離を解消しようと試みたりする動きが次のようにいくつも現れました。

[FIG(short list)[
- [[WaSP]]
- [[Acid Tests]]
- [[DOCTYPEスイッチ]]
- [[XMDP]]
- [[XFN]]
- [[マイクロフォーマット]]
- [[Sending XHTML as text/html Considered Harmful]]
- [[Web Forms 2.0]]
- [[Web Applications 1.0]]
- [CODE(HTMLe)@en[[[canvas]]]]
]FIG]

[45] こうした動きの中から [[WHATWG]] が設立され、 [[HTML5]] へとつながります。

;; [[WHATWG]]、[[Web Applications 1.0]]、[[HTML5]] を参照。

[56] [[WHATWG]] [[HTML Standard]] により [[HTML4]] は標準仕様としての実効性を失い、
更に [[W3C]] [[HTML 5.0]] [[W3C勧告]]により [[W3C]] の立場でも既に旧仕様となって久しいですが、
なぜか手続き上は現行[[勧告]]のまま [SRC[>>55]] 残されているようです。
(更に古い [[HTML 3.2]] も現行[[勧告]]のまま[[廃止]]されていないようです。)
[TIME[2015-10-09T11:43:41.600Z]]

[REFS[
- [55] [CITE@en[All Standards and Drafts - W3C]] ([TIME[2015-10-09 08:38:59 +09:00]] 版) <http://www.w3.org/TR/#tr_HTML>
]REFS]

* 関連

[29] [[ISO-HTML]] は [[HTML4]] の[[部分集合]]となっています。

[30] [[XHTML 1.0]] は元々 [[HTML4]] の [[XML]] 移植版という位置付けで作られました。

[31] [[HTML4]] に対してはいくつもの拡張が提案されました。 [[Web Forms 2.0]]
や [[Web Applications 1.0]] もそうで、後に [[HTML5]] となりました。

* メモ

- [6] 質問: HTML 4 は [[HTML3.2]] から [[XHTML]] への移行のために作られたって本当ですか?
- [7] >>6 嘘です。どこをどう見たらそういう話になるのやら。
- [8] HTML 4 までの流れを超簡単に説明すると、ほぼ当時の慣習を記述した [[HTML2.0]] の標準化にはなんとか成功した [[ietf-html]] [[WG]] は、大幅な機能拡張を含む [[HTML3.0]] の標準化を目指すも失敗。 (結果的にそのまま ietf-html は閉鎖されます。) [[W3C]] は HTML 3.0 を一旦捨てて、再びその当時の慣習 ([[NN]]/[[IE]] 3 世代) を記述した [[HTML3.2]] をまとめます。その後、 HTML 3.0 の多くの部分と新しい慣習 ([[NC]]/IE 4 世代) を纏め上げた HTML 4 が完成したのです。
- [9] HTML 4 が完成した頃に、ようやく [[XML]] が完成しまして、 XML で薔薇色の未来が見えました。そこで HTML と XML を融和させるのが新たな課題となったのです。 [CODE(HTML)[[[xml]]]] 要素型を使って XML を HTML に埋め込む短期的解法と XML base に HTML を移行することの2つがありましたが、前者は結局は実現しませんでした。後者が [[XHTML1]] となります。

[11] HTML 3.0 と HTML 4.0 をつなぐ規格案 (DTD) は [[Cougar]] と呼ばれていました。もっとも、 Cougar の時点では、まだ HTML 3.3 になるのか 3.5 になるのか 4.0 になるのか (そもそも規格化されるのかすら) 未定でした。

[84] [CITE[HTML4 Test Suite]] ([TIME[2003-01-23 17:00:49 +09:00]]) <https://www.w3.org/MarkUp/Test/HTML401/current/>

[35] [CITE[IRC logs: freenode / #whatwg / 20090909]]
([TIME[2009-10-18 18:18:41 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090909#l-362>

[36] [CITE[IRC logs: freenode / #whatwg / 20090909]]
([TIME[2009-10-18 18:18:41 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090909#l-406>

[37] [CITE[HTML4 Testable Assertions: Prologue]]
([TIME[2003-01-23 17:00:50 +09:00]] 版)
<http://www.w3.org/MarkUp/Test/HTML401/current/assertions/prologue.html>

[38] [CITE[IRC logs: freenode / #whatwg / 20110722]]
( ([TIME[2011-08-06 16:16:23 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110722>

[39] [CITE@en[Fwd: note: HTML 4.01 analysis for conformance]]
( ([[Karl Dubost]] 著, [TIME[2014-01-21 19:26:43 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-archive/2014Jan/0007.html>

[40] [CITE[IRC logs: freenode / #whatwg / 20140627]]
( ([TIME[2014-06-30 17:18:29 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140627#l-893>

[80] [CITE[HTML4/CSS2 Accessibility Recommendations]]
([TIME[2017-05-23 00:43:09 +09:00]])
<https://www.w3.org/WAI/PF/report.html>

[81] [CITE@en[CFC: Make previous versions of HTML and XHTML obsoleteCFC: Make previous versions of HTML and XHTML obsolete · Issue #86 · w3c/WebPlatformWG]]
([TIME[2017-07-12 16:56:02 +09:00]])
<https://github.com/w3c/WebPlatformWG/issues/86>

[83] [CITE@en[Proposal to Republish Previous Versions of HTML and XHTML as Obsolete  Recommendations (Wide Review until 2017-09-07)]]
([[Xueyuan]]著, [TIME[2017-08-11 13:45:36 +09:00]])
<https://lists.w3.org/Archives/Public/public-review-announce/2017Aug/0004.html>


[85] [CITE@ru[Спецификация HTML 4.01 - Основная страница]], [TIME[2024-08-18T03:42:21.000Z]] <https://pyramidin.narod.ru/html401/index.htm>


[86] 
>>85 ロシア語訳。注釈も翻訳されている。



[FIG(data)[ [216] [[HTML要素概説]]

:出典:
[REFS[

- 
[96] 
[DFN[HTML4-19971218]]:
[CITE@en[HTML 4.0 Specification]], 
[DATA(.status)[[DATA(.author)[W3C]] Recommendation]] [TIME(.published)[18-Dec-1997][1997-12-18]],
[TIME[2017-10-02T10:48:07.000Z]], [TIME[2024-11-02T08:28:41.767Z]] <https://www.w3.org/TR/REC-html40-971218/>
-
[97] 
[DFN[HTML4-19980424]]:
[CITE@en[HTML 4.0 Specification]], 
[DATA(.status)[[DATA(.author)[W3C]] Recommendation]], revised on [TIME(.published)[24-Apr-1998][1998-04-24]],
[TIME[2017-10-02T10:21:55.000Z]], [TIME[2024-11-02T08:29:49.700Z]] <https://www.w3.org/TR/1998/REC-html40-19980424/>
-
[98] 
[DFN[HTML4-19991224]]:
[CITE@en[HTML 4.01 Specification]], 
[DATA(.status)[[DATA(.author)[W3C]] Recommendation]] [TIME(.published)[24 December 1999][1999-12-24]],
[TIME[2017-10-02T10:22:04.000Z]], [TIME[2024-11-02T08:30:36.392Z]] <https://www.w3.org/TR/1999/REC-html401-19991224/>

]REFS]
:注釈:
-
[99] 
[DFN[HTML4]]
[[Cougar]],
[CITE[HTML 4.0]],
[CITE[HTML 4.01]]
の総称。
[CITE[HTML 4.0]] は2度、
[CITE[HTML 4.01]] は1度[[W3C勧告]]となった。
[SRC[>>96]]
[SRC[>>97]]
[SRC[>>98]]
その他にいくつか原案等が公表された。
版による細かな違いの区別の必要がないときに単に [[HTML4]]
といわれることが多い。[[要素]]の有無については3つの [[W3C勧告]]で違いがない。
[[平成時代]]中期頃、長く標準の [[HTML]] 仕様として世界中で利用された。
[[HTML4]]
の3つの[[W3C勧告]]には
Strict (厳密),
Transitional (移行用),
Frameset (フレーム集合)
の3種類の [[DTD]] があり、本書ではそのいずれに含まれるかも示した。

]FIG]




[100] 
[CITE[Apple - Software]], [TIME[2025-11-25T15:39:03.000Z]], [TIME[2001-04-10T21:58:48.183Z]] <https://web.archive.org/web/20010410215753/http://www.apple.com/software/>

>
[PRE[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
]PRE]