第10章
HTMLアクセシビリティ入門 — 読み上げやキーボード操作に強い構造
約4分
アクセシビリティは、障害の有無や利用環境にかかわらず、情報や機能にアクセスしやすくする考え方です。HTMLを正しく書くことは、アクセシビリティの出発点です。
アクセシビリティ対応は、あとから特別な属性を足す作業ではありません。まず正しいHTML要素を選ぶことから始まります。アクセシビリティ観点のチートシート
| 対象 | 良い書き方 | 避けたい書き方 |
|---|---|---|
| 見出し | h1〜h6 を階層で使う | 見た目だけ大きい 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で見た目を同じにできるなら、a と button はどちらでもよくないですか?
先生見た目は同じでも、キーボード操作や読み上げでの意味が変わります。移動か操作かでHTMLを選びます。
aria-label は補助として使う
アイコンだけのボタンなど、見えるテキストがない場合は aria-label で名前を付けます。
<button type="button" aria-label="メニューを開く">
☰
</button>html
構文: aria-label="支援技術に伝える名前"
| 属性 | 説明 |
|---|---|
aria-label | 画面上のテキストでは不足する名前を補う |
戻り値: HTML属性なので戻り値はありません。アクセシブルネームとして支援技術に利用されます。
参考リンク
次章では、HTMLが正しい構文になっているかを確認するバリデーションを学びます。
HTMLクイズに挑戦するalt、label、button、aria-labelの基本をクイズで確認しよう
