ウェブエンジニア問題集
第11章

HTMLバリデーション — 正しい構文とよくあるエラー

3
この章の目次開く

HTMLは多少の間違いがあってもブラウザが補正して表示してくれることがあります。しかし、表示されるから正しいとは限りません。構文エラーは、CSSの効き方、JavaScriptのDOM操作、アクセシビリティに影響します。

よくあるHTMLエラー

エラー問題
入れ子が壊れている<p><strong>重要</p></strong>DOM構造が意図と変わる
閉じタグ忘れ<li>HTML<li>CSSブラウザ補正に依存する
属性値の引用符忘れ<a href=/about>値によって壊れやすい
id の重複同じ id="nav" が複数ページ内リンクやJSが壊れる
存在しない属性<img href="...">意図した動作にならない
非推奨タグfont, center見た目はCSSで扱う
HTMLは「ブラウザで表示された」だけで合格にせず、構文として正しいかも確認します。

正しい入れ子

HTML要素は、開始タグと終了タグの対応が崩れないように入れ子にします。

<!-- 良い例 -->
<p><strong>重要なお知らせ</strong>があります。</p>
html
<!-- 悪い例 -->
<p><strong>重要なお知らせ</p></strong>
html

idclass

id はページ内で一意、class は複数要素に使えます。

属性用途重複
id1つの要素を特定する同じページ内で重複させない
classスタイルや分類を共有する複数要素に使える
<section id="profile" class="section">
  <h2>プロフィール</h2>
</section>
 
<section id="skills" class="section">
  <h2>スキル</h2>
</section>
html

バリデーターを使う

HTMLの構文チェックには、W3CのMarkup Validation Serviceなどを使えます。

https://validator.w3.org/

学習中は、エラーが出たらすぐ直すより、まず「何を指摘されているか」を読みます。閉じタグ、要素の入れ子、属性名のミスは頻出です。

参考リンク

次章では、ここまでの知識を引ける形でまとめたHTMLチートシートを用意します。

HTMLクイズに挑戦するHTML構文、id、class、バリデーションの基本をクイズで確認しよう