WAI-ARIA Authoring Practices Guide
アクセシビリティを
とにかくわかりやすく。
W3C の APG(ARIA Authoring Practices Guide)の各パターンを、日本語で・動くデモつきで・Good / Bad の対比つきで解説します。「なぜそう書くのか」が腑に落ちることを目指しています。
HTML/CSS/JavaScript を書く実装者と、UI をレビューする人のためのサイトです。
動くデモで体感
キーボードやスクリーンリーダーで実際に触れて、挙動の違いを体で理解できます。
Good / Bad の対比
「やりがちな悪い実装」と「推奨実装」を並べ、何が・なぜダメかを明確にします。
実装チェックリスト
各パターンに、そのまま使えるレビュー用チェックリストを用意しています。
最近の仕様変更
W3C APG の最新変更を追跡しています。
G183: コントラスト比のみを扱う内容に全面改訂
達成基準 1.4.1(色の用途)の十分な達成方法 G183 が全面的に書き直され、周囲のテキストとの 3:1 以上のコントラスト比のみを扱う内容になりました。従来含まれていたホバー時の追加の視覚的手がかりに関する記述は取り除かれ、タイトルも変更されています。本サイトの達成方法データに新しいタイトルを反映しました。
PR #5186(新しいタブで開きます)2.5.1・2.5.7: 互いの代替手段にはならないことを明確化
達成基準 2.5.1(ポインタジェスチャ)と 2.5.7(ドラッグ動作)の Understanding に、パスベースのジェスチャの代替手段をドラッグ動作にすることはできず、その逆もできないという注記が追加されました。本サイトのデータに変更はありません。
PR #5212(新しいタブで開きます)G200 を 3.2.5 の参考達成方法として復活
一度削除された達成方法 G200(必要な場合にのみリンクから新しいウィンドウやタブを開く)が、不正確だった記述を削った上で達成基準 3.2.5(要求による変化)の参考達成方法として復活しました。本サイトの達成方法データにも G200 を再収録しています(一次ソースの現状に合わせて 3.2.1 の参考達成方法としても関連付け)。
PR #5187(新しいタブで開きます)
パターン一覧
気になるパターンから読んでみてください。「準備中」は順次公開します。
開閉・展開
通知・ダイアログ
ナビゲーション
パンくずリスト
解説ありBreadcrumb
サイト内の現在位置を示すナビ。nav とリスト、現在地の aria-current が肝。
メニュー / メニューバー
解説ありMenu and Menubar
アプリ的なメニュー。矢印キー操作と role="menu" 系のロールで構成します。
メニューボタン
解説ありMenu Button
押すとメニューを開くボタン。aria-haspopup と aria-expanded で関係を伝えます。
リンク
解説ありLink
基本にして奥深いリンク。div の onclick ではなく a 要素を使う理由を解説。
ランドマーク
解説ありLandmarks
header / nav / main / footer などでページを領域分けし、素早い移動を可能に。
フォーム・入力
ボタン
解説ありButton
すべての基本。button 要素を使えば得られるアクセシビリティと、自作の落とし穴。
チェックボックス
解説ありCheckbox
オン/オフの選択。中間状態(mixed)を含むチェックボックスの扱いも。
ラジオグループ
解説ありRadio Group
複数から1つを選ぶ。矢印キー移動と roving tabindex の代表例。
スイッチ
解説ありSwitch
オン/オフのトグル。チェックボックスとの違いと role="switch" の使い方。
コンボボックス
解説ありCombobox
入力+候補リスト(オートコンプリート)。APG でも最難関の1つ。
リストボックス
解説ありListbox
選択肢のリストから選ぶ。単一/複数選択と矢印キー操作。
スライダー
解説ありSlider
値を範囲から選ぶ。aria-valuenow/min/max とキーボード操作。
スライダー(複数つまみ)
解説ありSlider (Multi-Thumb)
価格帯などの範囲選択。つまみ同士の干渉とラベリングが論点。
スピンボタン
解説ありSpinbutton
数値の増減入力。上下キーとボタンでの増減、範囲の通知。
メーター
解説ありMeter
既知の範囲内の量(ディスク使用率など)を示す表示専用の指標。