HTML 4.01標準を読んでいるのは間違っていますか、それともGoogleですか?HTML 4.01では、次のように記述します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html> <head> <body>plain <em>+em <strong>+strong </em>-em
GoogleChromeでのレンダリングは次のとおりです。
プレーン+ em +ストロング-em
これは、基礎となるSGMLルールを次のように要約するHTML 4.01標準と矛盾しているようです。「終了タグが閉じて、一致する開始タグに戻り、すべての閉じられていない介在する開始タグと省略された終了タグ」。¹
つまり、</em>
終了タグは<em>
開始タグだけでなく、閉じられていない介在する<strong>
開始タグも閉じる必要があり、レンダリングは次のようになります。
プレーン+ em +ストロング-em
コメント提供者は、タグを開いたままにしておくのは悪い習慣であると指摘しましたが、これは学術的な例にすぎません。同様に良い例は次のとおり<em> +em <strong> +strong </em> -em </strong>
です。HTML 4.01標準から、要素が重複しているためにこのコードフラグメントが意図したとおりに機能しないことがわかりました。つまり、</em>
終了タグは暗黙的にを閉じる必要があり<strong>
ます。それが意図したとおりに機能したという事実は驚くべきことであり、これが私の質問につながったものです。
そして、私は質問で誤った二分法を提案したことがわかりました。Googleも私もHTML4.01標準を間違って読んでいませんでした。w3.orgの私的な特派員は、 MartinBryanによって説明されたWebSGMLとHTML4.0を指摘しました。これは、次のように説明しています。より高いレベルの要素の終了タグに遭遇します。(ただし、終了タグを省略できない埋め込み要素がまだ開いている場合、プログラムはコーディングでエラーを報告します。)” <a href="http://www.is-thought.co.uk/book/sgml-9.htm#Omitting" rel="nofollow">²(強調を追加)ブライアンによるSGML標準の要約は正しく、HTML4.01の要約は間違っています。