本文へ移動
easeweb
ご相談
トピックを検索

候補を読み上げず、キーボードで選べないオートコンプリート

入力欄の下に出る候補が、クリック処理やCSSの強調表示だけの普通のリストのため、キーボードで選べず、スクリーンリーダーは候補が出たことも伝えません。

WCAG 2.2
SC 2.1.1ASC 4.1.2ASC 4.1.3AA· 2.1 で追加
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり li.classList.toggle('active', i === active)
アクセシビリティの問題を示した図: 画面では強調。でも読み上げられない。
01

問題

キーボード利用者は候補を選べず、スクリーンリーダーの利用者は、候補が出たことも、どれが強調されているかも、一致しなかったことも分かりません。

02

試してみる

「行き先」に「por」と入力し、下矢印キーを押してから、Enterを押してください。

マウスを使わずにPortlandを選べますか?入力や移動のたびのスクリーンリーダーの読み上げが下の欄に出ます。何も一致しない「pxq」も試してください。

問題あり 修正できますか?

スクリーンリーダーの読み上げ:

(Tabで「行き先」へ移動)

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

入力欄をコンボボックスにし、矢印キーでoptionとして伝わる候補を移動できるようにして、リストが示す内容を読み上げます。

  1. 1フォーカスは入力欄に残し、矢印キーで支援技術にも分かる強調を動かす。
  2. 2リストが開いているかを伝え、件数や一致なしの行を読み上げる。
  3. 3Enterで選び、Escapeで閉じる。クリックやタップでも同じように選べる。
修正前

クリックでしか選べない候補

<label for="dest">行き先</label><input id="dest" type="text" autocomplete="off"><p id="dest-count"></p><ul id="dest-list" class="suggestions" hidden></ul>
修正後

ARIAのコンボボックス

<label for="dest">行き先</label><input id="dest" type="text" role="combobox" autocomplete="off"  aria-autocomplete="list" aria-expanded="false" aria-controls="dest-list"><p id="dest-count" role="status"></p><ul id="dest-list" role="listbox" aria-label="行き先の候補" hidden></ul>

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得

04

修正の確認

マウスを使わない5つの確認

確認方法: キーボード、スクリーンリーダー、ズーム、強制配色

5件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。共通の入力欄やオートコンプリートのコンポーネントを変更した際は、再度確認します。

制限

これはリスト型のオートコンプリートの出発点となる実装例で、文字を欄の中で補完するもの、グリッドやツリーを開くもの、複数を選べるものには当てはまりません。候補の取得と照合の処理は省略しています。実際のデータを使い、対応するブラウザーと支援技術で操作全体を確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方