【HTML】aria属性の基本とアクセシビリティ向上の実例

HTML/CSS

Webアクセシビリティを高めるために利用されるのがARIA(Accessible Rich Internet Applications)属性です。aria属性を正しく使うことで、スクリーンリーダーなどの支援技術にコンテンツの意味や状態を伝えることができ、より多くのユーザーにとって利用しやすいWebサイトになります。ここではaria属性の基本と実用的な使い方を紹介します。

ARIA属性の基本

ARIAは「役割(role)」「状態(state)」「プロパティ(property)」を補足的に指定する仕組みです。HTML5で提供されるセマンティック要素を優先し、どうしても不足する部分をARIAで補うのが基本方針です。

よく使われる属性の例

<!-- ボタンの状態を伝える -->
<button aria-pressed="false">お気に入り</button>

<!-- モーダルダイアログ -->
<div role="dialog" aria-modal="true" aria-labelledby="dialog-title">
  <h2 id="dialog-title">確認</h2>
  <p>本当に削除しますか?</p>
</div>

<!-- 補足説明を関連付ける -->
<input type="text" aria-describedby="note">
<small id="note">8文字以上で入力してください</small>

aria-labelとaria-labelledby

要素にラベルを付与する場合、aria-labelは直接テキストを指定し、aria-labelledbyは既存の要素を参照してラベルを関連付けます。

<!-- aria-label -->
<button aria-label="閉じる">×</button>

<!-- aria-labelledby -->
<h2 id="section-title">お知らせ</h2>
<section aria-labelledby="section-title">
  <p>最新情報をお届けします。</p>
</section>

aria-hiddenで非表示扱いにする

aria-hidden=”true”を指定すると、要素はスクリーンリーダーに無視されます。装飾目的のアイコンなど意味を持たない要素に適用します。

<span class="icon" aria-hidden="true">★</span> 人気商品

実用例:ナビゲーションメニュー

aria-currentを使えば、現在地をスクリーンリーダーに伝えられます。

<nav aria-label="グローバルナビゲーション">
  <ul>
    <li><a href="/" aria-current="page">ホーム</a></li>
    <li><a href="/about">会社概要</a></li>
    <li><a href="/contact">お問い合わせ</a></li>
  </ul>
</nav>

実用例:アコーディオン

アコーディオンUIではaria-expandedやaria-controlsを使って開閉状態を伝えます。

<button aria-expanded="false" aria-controls="faq1">質問1</button>
<div id="faq1" hidden>回答1の内容</div>

まとめ

aria属性は本来のHTML要素で表現できない情報を補完し、支援技術に正しく伝えるための仕組みです。使いすぎは逆に混乱を招くため、まずはセマンティックHTMLを優先し、不足部分にaria属性を適切に組み合わせるのが理想です。aria-labelやaria-labelledby、aria-hiddenなど基本的な属性から取り入れ、ナビゲーションやフォーム、UIコンポーネントのアクセシビリティを向上させましょう。