ARIAロールとプロパティ アクセシビリティ監査
WCAG 2.1基準4.1.2と4.1.3のためのARIAロール、状態、プロパティの監査ガイド。カスタムウィジェット、ライブリージョン、ランドマーク、よくあるARIAの間違いをカバー。
Component Audits
詳細な説明
ARIAロールとプロパティの監査
ARIA(Accessible Rich Internet Applications)属性は、カスタムUIコンポーネントと支援技術の間のギャップを埋めます。WCAG基準4.1.2(名前、役割、値)と4.1.3(ステータスメッセージ)は正しいARIA使用に直接依存しています。
ARIAを使用するタイミング
ARIAの第一のルールは:ネイティブHTMLで同じ結果を達成できる場合はARIAを使用しない。ネイティブの <button>、<input>、<select>、<nav> 要素にはビルトインのアクセシビリティがあります。
ARIAが必要な場合:
- カスタムウィジェットの構築(タブ、アコーディオン、コンボボックス)
- 動的コンテンツ更新の作成(ライブリージョン)
- 追加コンテキストの提供(説明、ラベル)
- HTML5セマンティクスを超えたページランドマークの定義
監査すべき主なARIA属性
ロール: カスタムウィジェットが正しいロールを使用していることを確認:
- タブインターフェースに
role="tablist"、role="tab"、role="tabpanel" - モーダルダイアログに
role="dialog" - アプリケーションメニューに
role="menu"、role="menuitem" - 重要な時間的に敏感なメッセージに
role="alert"
状態: 動的状態が更新されていることを確認:
- 折りたたみセクションに
aria-expanded="true/false" - タブとリスト項目に
aria-selected="true/false" - カスタムチェックボックスに
aria-checked="true/false" - 無効なコントロールに
aria-disabled="true/false"
プロパティ: 関係が定義されていることを確認:
- アクセシブル名に
aria-labelまたはaria-labelledby - 追加説明に
aria-describedby - トリガー要素と制御領域を接続する
aria-controls - 動的コンテンツ更新に
aria-live="polite/assertive"
よくあるARIAの間違い
- ネイティブHTMLの代わりにARIAを使用 —
<button>の代わりに<div role="button"> - 不正確なロール階層 —
role="tablist"内にないrole="tab" - 必要な子要素の欠落 —
role="listitem"子要素のないrole="list" - 古いARIA状態 — トグル時に更新されない
aria-expanded - 競合するロール — 暗黙のロールを持つ要素にARIAロールを適用
ユースケース
ARIA監査は、カスタムウィジェット、シングルページアーキテクチャ、動的コンテンツ更新を使用するウェブアプリケーションに不可欠です。React、Vue、AngularアプリケーションはカスタムコンポーネントにARIA属性が頻繁に必要です。フロントエンド開発者はコードレビュー中にARIAを確認すべきです。
試してみる — Accessibility Audit Checklist
Perceivable
0%(0/20 tested)
0 pass0 fail
Operable
0%(0/17 tested)
0 pass0 fail
Understandable
0%(0/10 tested)
0 pass0 fail
Robust
0%(0/3 tested)
0 pass0 fail
Level A:0/30 pass
Level AA:0/19 pass
Level AAA:0/1 pass
50 criteria shown · Click the status badge to cycle through Pass / Fail / N/A / Untested