0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ウェブアクセシビリティとは?

Posted at

この記事は生成AIによって書かれています

ウェブアクセシビリティとは何か?

ウェブアクセシビリティとは、すべてのユーザーがウェブコンテンツにアクセスし、利用できるようにすることを意味します。これには、視覚、聴覚、運動、認知などに障害を持つユーザーも含まれます。

アクセシビリティの高いウェブサイトは、単に倫理的な配慮だけでなく、より多くのユーザーにリーチし、SEOにも好影響を与えるため、ビジネス上の利点もあります。


なぜアクセシビリティが重要なのか?

  • 世界には10億人以上の障害を持つ人々がいるとされており、その多くがウェブにアクセスする際に困難を抱えています。
  • アクセシビリティの高いサイトは、スクリーンリーダーや音声入力、キーボード操作などの支援技術と連携しやすくなります。
  • 法律や規制(例:WCAG、ADA、障害者差別解消法)への準拠も重要です。

アクセシビリティの4原則(POUR)

  1. 知覚可能 (Perceivable)

    • 情報はユーザーに認識されなければならない
    • 例:画像にalt属性、映像に字幕、構造化された見出し
  2. 操作可能 (Operable)

    • UIやナビゲーションがあらゆる手段で操作可能であること
    • 例:マウスなしでも操作できる、タイムアウトへの配慮
  3. 理解可能 (Understandable)

    • コンテンツや操作が分かりやすく予測可能であること
    • 例:明確なラベル、フォームエラーの説明
  4. 堅牢 (Robust)

    • コンテンツが将来の支援技術やブラウザでも対応できること
    • 例:正確なHTML、ARIAの適切な使用

よくある改善ポイント

  • 画像にはalt属性を付ける
  • セマンティックなHTML要素(<nav>, <main>, <section>など)を活用
  • 見出しタグ(<h1><h6>)で文書構造を明確に
  • 十分な色のコントラスト(推奨: 最低4.5:1)
  • フォーム要素には必ず<label>を関連付け
  • リンクやボタンは役割が明確にわかる文言にする
  • JavaScriptによる動的変更には通知やフォーカス制御を加える

ARIA(Accessible Rich Internet Applications)とは?

ARIAは、通常のHTMLでは意味を伝えにくい動的なUI要素に役割や状態を追加するための属性群です。

  • role:要素の役割を伝える(例:role="dialog"
  • aria-label:ラベルを追加
  • aria-hidden:スクリーンリーダーから非表示にする
  • aria-expanded:折りたたみ要素などの展開状態を示す

注意:まずはHTMLのセマンティック要素を使い、ARIAは補助的に使用しましょう。


スクリーンリーダーとは?

スクリーンリーダーは、画面の内容を音声や点字で出力する支援技術です。以下は有名なスクリーンリーダーの例です:

  • NVDA(Windows、無料)
  • JAWS(Windows、有料)
  • VoiceOver(macOS/iOS)
  • TalkBack(Android)

テストのポイント

  • フォーカスが適切に移動するか
  • 読み上げられる順序が視覚と一致しているか
  • 各UIコンポーネントの役割やラベルが伝わっているか

フォームのアクセシビリティ

  • <input>には明確な<label>を設ける
  • エラー時には明確なメッセージを表示し、視覚・非視覚の両方で通知
  • 入力例をplaceholderではなく、説明文やARIAで伝える
  • <fieldset><legend>でグループ化するとより分かりやすくなる
<fieldset>
  <legend>お支払い方法</legend>
  <label><input type="radio" name="pay" value="credit"> クレジットカード</label>
  <label><input type="radio" name="pay" value="paypal"> PayPal</label>
</fieldset>

キーボード操作への配慮

  • すべての操作がTabキーとEnter/Spaceキーで完結できること
  • フォーカスインジケーター(アウトライン)を消さない
  • tabindex, aria-keyshortcutsなどでナビゲーションを補助
:focus {
  outline: 2px solid #007ACC;
}

動的コンテンツとアクセシビリティ

JavaScriptで動的に変更される内容は、視覚的には変化してもスクリーンリーダーに伝わらない場合があります。

対策:

  • aria-live属性でスクリーンリーダーに通知
<div aria-live="polite">更新された内容</div>
  • モーダルやドロワーは、role="dialog"、aria-modal="true"を使用し、フォーカスを閉じ込める
  • DOMの変更時にfocus()メソッドで適切な場所にフォーカスを移動する

アクセシビリティチェックに使えるツール

  • WAVE
  • Lighthouse(Chrome DevTools)
  • axe DevTools
  • スクリーンリーダー(NVDA, VoiceOver など)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?