HTML にどのようなエラーがあっても、Web ブラウザーは Web ページをレンダリングしますか?
HTML シリアライゼーションでは、最新のブラウザは、マークアップ エラーを許容するように設計された解析アルゴリズムに従っており、完全な入力ストリームから生成されたものは何でもレンダリングします。
XHTML シリアライゼーションでは、解析は XML 解析規則に従う必要があります。これは、整形式エラーが発生した場合、入力ストリームの解析を停止する必要があることを意味します。ブラウザーはエラーを報告する必要はなく(Firefox は報告しますが、IE9 は報告しません)、解析を停止しなければならなかった時点で構築した DOM を単純にレンダリングし、HTML5 に準拠したままにすることを選択できます。
Web ブラウザが HTML のエラーを報告するのはどのような場合ですか?
XHTML シリアライゼーションを使用する場合の XML 整形式エラーを除いて、ブラウザーは実際にはエラーを報告しません。もしそうなら、彼らはページが書かれたときに作者が間違いを犯したかどうかに少しも興味を持っていないユーザーに伝えています. ユーザーが望むのは、コンテンツへのアクセスだけです。
さらに、このエラー報告なしは HTML5 仕様で必要ですか?
いいえ、そうではありません。ブラウザは、そのようなエラーを報告したい場合に資格があります。HTML シリアライゼーション解析アルゴリズムは、いつエラーが発生するかについて非常に明確です。マークアップの場合、関連するルールは次のように述べています。
タグ名が「address」、「article」、「aside」、「blockquote」、「button」、「center」、「details」、「dialog」、「dir」、「div」のいずれかである終了タグ"dl"、"fieldset"、"figcaption"、"figure"、"footer"、"header"、"hgroup"、"listing"、"menu"、"nav"、"ol"、"pre"、"section "、"概要"、"ul"
開いている要素のスタックに、トークンのタグ名と同じタグ名を持つ要素がスコープ内にない場合、これは解析エラーです。トークンを無視します。
...
次に、解析エラーを処理するためのルールでは、ブラウザーがエラーを報告する必要も、報告しない必要もありません。バリデーターは、そのような解析エラーを少なくとも 1 つ報告する必要があります。