[1] [[HTML]] の太古の[[要素型]]である [CODE(HTMLe)@en[[[xmp]]]] と [CODE(HTMLe)@en[[[listing]]]] は、[[開始タグ]]以後、 対応する[[終了タグ]] ([CODE(HTMLe)@en[[[xmp]]]] なら [CODE(HTML)@en[]]、 [CODE(HTMLe)@en[[[listing]]]] なら [CODE(HTML)@en[]]) 以外のすべての[[マーク]]を[[認知]]''しません''。 このような[[要素]]の[[内容]]の[[マーク]]の解釈に関する性質を [DFN@en[HTML-CDATA]] と (勝手に) 呼んでいます。 [2] [[SGML]] の[[要素]]の[[内容]]の[[マーク]]の解釈の方法としての [CODE(SGML)@en[[[CDATA]]]] も[[開始タグ]]以後ほとんどの[[マーク]]の[[認知]]を中止しますが、 [[開始タグ]]と同じ[[要素型名]]が入った[[終了タグ]]でなくても (例えば[[空タグ]] [CODE(SGML)@en[]] であっても) そこで終わりとみなされます。ですから、 [CODE(HTML)@en[... <em>aaa</em> ...]] は [[SGML]] 的には本来許されないのです。 [3] [[HTML]] の [[SGML]] 化にあたってこれが問題になり、 [CODE(HTMLe)@en[[[xmp]]]] と [CODE(HTMLe)@en[[[listing]]]] は使わないことになりました。同じような[[要素型]]として [CODE(HTMLe)@en[[[pre]]]] が追加されましたが、 こちらは [CODE@en[HTML-CDATA]] でも [[SGML]] の [CODE(SGML)@en[[[CDATA]]]] でもなく、普通の[[内容]]を持つものとして定義されました。 [4] ただし、 [CODE(HTMLe)@en[[[xmp]]]] と [CODE(HTMLe)@en[[[listing]]]] も[[後方互換性]]のために仕様から削除されずに残りました。 [[HTML 2.0]] ([[RFC 1866]] : [[IETF]] [[提案標準]] = 当時) では [CODE(HTMLe)@en[[[xmp]]]] と [CODE(HTMLe)@en[[[listing]]]] は正式には [[SGML]] の [CODE(SGML)@en[[[CDATA]]]] として規定されていましたが、以前からの [CODE@en[HTML-CDATA]] としての解釈も説明されていました。 [WEAK[([[HTML 2.0]] は [[SGML応用]]だったので、 [[SGML]] 違反を正式に規定するわけにはいきませんでした。)]] [CODE(HTMLe)@en[[[xmp]]]] と [CODE(HTMLe)@en[[[listing]]]] はその後 [[HTML 2.x]] ([[RFC 2070]] : [[IETF]] [[提案標準]] = 当時) と [[HTML 3.2]] ([[W3C]] [[勧告]]) にもそのまま残りましたが、 [[HTML 4.0]] ([[W3C]] [[勧告]]) で完全に削除されました。 [5] 仕様上は >>4 のような状況でしたが、 [[Webブラウザ]]の実装は元の [CODE@en[HTML-CDATA]] のままでした。 [CODE(HTMLe)@en[[[xmp]]]] や [CODE(HTMLe)@en[[[listing]]]] を使った[[文書]]は [CODE(HTMLe)@en[[[pre]]]] の登場以後皆無といってよいのですが、 それ以前の[[文書]]との互換性のために現在でも [[SGML]] に基づく [[HTML]] の仕様は無視されています。 メモ: そろそろ思い切って削除してしまってもよさそうなものですが、 主要な [[Webブラウザ]]で一度実装した[[要素型]]への対応を削除した例はほとんどありません。 [6] [CODE(HTMLe)@en[[[plaintext]]]] [[要素型]]も [[HTML-CDATA]] で実装されることがあります。この[[要素型]]の[[タグ]]は元々 [[HTML]] ではなく[[平文]]として以後解釈するべきことを示すもので、 当然[[終了タグ]]は存在しませんでした。 もちろん [[SGML]] としても微妙な存在です。 それがいつのまにか、他の[[要素型]]と同じように[[終了タグ]]を[[認知]]する [[Webブラウザ]]が登場しました。しかしすべての [[Webブラウザ]]がそれに追随したわけではありませんから、 [[終了タグ]]を[[認知]]する [[Webブラウザ]]としない [[Webブラウザ]]が混在しています。 [7] [CODE(HTMLe)@en[[[title]]]] [[要素型]]も微妙な存在です。 [CODE(HTMLe)@en[[[title]]]] [[要素型]]は [[HTML]] が [[SGML]] によって定義されるようになる前から存在していました。 祖の時は[[実体参照]]や[[文字参照]]もありませんでした。 そして [CODE(HTMLe)@en[[[title]]]] 内に[[マーク]]を入れることなど考えられなかったので、 [CODE(HTMLe)@en[[[title]]]] の[[開始タグ]]と[[終了タグ]]の間をそのまま題名として表示するように実装されていました。 [[SGML]] が意識されるようになって状況は徐々に変化していきました。 [[Webブラウザ]]によって[[文字参照]]や[[実体参照]]を解釈したり、 [[注釈宣言]]を解釈したりするようにもなりました。 [[空白]]の取扱いも他の[[要素型]]と同じようになっていきました。 [[開始タグ]]や[[終了タグ]]があっても (他の文脈と同じように、未知のものとして) 無視するブラウザも出てきました。しかし、 このような変化は一斉に起こったものではなく、現在も実装間で統一されていません。