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

件数が読み上げられない検索・絞り込み結果

入力のたびに件数の行が書き換わりますが、その行がライブリージョンではないため、スクリーンリーダーは件数を読み上げません。

WCAG 2.2
SC 4.1.3AA· 2.1 で追加
必須とする規格
EN 301 549(EU)
問題あり count.textContent = countText(products.length, words);
アクセシビリティの問題を示した図: リストは変わった。誰も伝えなかった。
01

問題

スクリーンリーダーの利用者は、検索語を入力したり絞り込みにチェックを入れたりしても、結果が変わったのか、何件あるのか、一致しなかったのかが分かりません。

02

試してみる

「エプロン」で検索して手を止め、読み上げを聞いてください。

下の欄に、検索のたびのスクリーンリーダーの読み上げが出ます。商品の件数は聞こえますか?何も一致しない語も試してください。

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

すべての商品(6件)

  • リネンのエプロン
  • 帆布のエプロン
  • 子ども用エプロン
  • ティータオル3枚組
  • オーブンミトン
  • パン型

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

(検索欄に入力して、手を止めてください)

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

03

修正方法

検索より前からあるステータス領域に、結果がそろってから件数を書き込みます。

  1. 1ステータス領域はページと一緒に表示し、結果と一緒に作り直される部分の外に置く。
  2. 2件数は入力が止まり結果がそろってから伝え、一致しないときも伝える。
  3. 3フォーカスは検索欄から動かさず、結果のリストにaria-liveを付けない。
修正前 画面の上だけで変わる件数の行
<label for="q">商品を検索</label><input type="search" id="q"><p id="result-count">すべての商品(6件)</p><ul id="results">…</ul>
修正後

見えている件数をステータス領域にする

<label for="q">商品を検索</label><input type="search" id="q"><p id="result-count" role="status">すべての商品(6件)</p><ul id="results">…</ul>

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

04

修正の確認

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

確認方法: スクリーンリーダー、キーボード

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。検索のコンポーネント、結果のテンプレート、ページのレイアウトを変更した際は、再度確認します。

制限

ライブリージョンの動きは、スクリーンリーダーやブラウザーによって異なります。入力を続けていると、控えめなメッセージを読まずに捨てるものもあります。このパターンは、一つのページの一つの検索欄を扱っています。下書きの保存のメッセージは画面に出ても読み上げられないステータスメッセージで扱っています。無限スクロールや「もっと見る」は、読み込みの別のトピックです。実際の絞り込み、並べ替え、ページ送りを含めた実際の検索を、利用者が使うスクリーンリーダーで確認してください。

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

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

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

再テストの進め方