見た目ではなく意味でタグを選ぶ(button・nav・main・見出しの階層)。支援技術や検索エンジンが正しく理解できる。
セマンティックな HTML とは、見た目ではなく意味に合ったタグを使うことです。<button> はボタン、<nav> はナビゲーション、<h1>〜<h6> は見出しの階層を表します。スクリーンリーダーや検索エンジンは、タグからページの構造を理解します。
div だらけの問題
<!-- よくない -->
<div class="btn" onclick="save()">保存</div>
<!-- よい -->
<button type="button" onclick="save()">保存</button>div で作ったボタンは、Tab キーで移動できず、Enter や Space で押せず、スクリーンリーダーにも「ボタン」と読まれません。それを補うには tabindex・role・キー操作の処理を自分で足す必要があります。button を使えば最初から全部できます。ページの移動は <a href>、操作は <button> と使い分けます。header・main・footer で領域を示すと、スクリーンリーダーの利用者は目的の場所に飛べます。
面接ではこう答える
セマンティックな HTML とは、見た目ではなく意味に合ったタグを使うことです。ボタンは button、ページの移動は a、見出しは h1 から順に使います。div にクリックを付けたボタンは、Tab で移動できず、Enter で押せず、読み上げでもボタンと分かりません。正しいタグを使えば、キーボード操作や読み上げ、検索エンジンの理解が最初からそろいます。
Webとの関わりアクセシビリティの土台で、画面の実装とコードレビューで毎日使います。