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

HTMLアクセシビリティ入門 — 読み上げやキーボード操作に強い構造

4
この章の目次開く

アクセシビリティは、障害の有無や利用環境にかかわらず、情報や機能にアクセスしやすくする考え方です。HTMLを正しく書くことは、アクセシビリティの出発点です。

アクセシビリティ対応は、あとから特別な属性を足す作業ではありません。まず正しいHTML要素を選ぶことから始まります。

アクセシビリティ観点のチートシート

対象良い書き方避けたい書き方
見出しh1h6 を階層で使う見た目だけ大きい div
ボタンbutton を使うdiv にクリックイベントだけ付ける
リンクリンク先が分かる文言「こちら」だけ
画像意味に応じた altすべて空、または長すぎる説明
フォームlabel と入力欄を対応placeholderだけ
ナビゲーションnav aria-label="..."複数navの区別がない

buttonとaを使い分ける

やりたいこと使う要素
別ページへ移動するa
同じページ内で操作するbutton
フォームを送信するbutton type="submit"
<a href="/books">教科書一覧へ</a>
<button type="button">メニューを開く</button>
html

見た目がボタンでも、移動なら a、操作なら button です。

学習者学習者

CSSで見た目を同じにできるなら、abutton はどちらでもよくないですか?

先生先生

見た目は同じでも、キーボード操作や読み上げでの意味が変わります。移動か操作かでHTMLを選びます。

aria-label は補助として使う

アイコンだけのボタンなど、見えるテキストがない場合は aria-label で名前を付けます。

<button type="button" aria-label="メニューを開く">

</button>
html

構文: aria-label="支援技術に伝える名前"

属性説明
aria-label画面上のテキストでは不足する名前を補う

戻り値: HTML属性なので戻り値はありません。アクセシブルネームとして支援技術に利用されます。

参考リンク

次章では、HTMLが正しい構文になっているかを確認するバリデーションを学びます。

HTMLクイズに挑戦するalt、label、button、aria-labelの基本をクイズで確認しよう