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

読み上げられない読み込み中の表示

スピナーと「読み込み中…」が画面に出ても、処理中であることや結果が届いたことがスクリーンリーダーに伝わりません。

問題あり
処理中。でも聞こえない。
アクセシビリティの問題を示した図。
01

問題

スクリーンリーダーの利用者はボタンを押しても何も聞こえず、うまくいったのか、処理中なのか、失敗したのか分かりません。

02

試してみる

「注文を表示」でEnterキーを押し、読み上げを聞いてください。

下の欄に、読み込み中のスクリーンリーダーの読み上げが出ます。待っていることが言葉で伝わりますか?

問題あり 直してみませんか?

スクリーンリーダーの読み上げ: (「注文を表示」を押してください)

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

03

修正方法

読み込み中と完了の文言を、リクエスト前からあるライブリージョンに書き込みます。

  1. 1ライブリージョンは空のままページと一緒に表示し、文言だけを変える。
  2. 2開始、結果、エラーを言葉で伝える。
  3. 3フォーカスは動かさない。移動で読み上げさせない。
修正前 普通の要素にスピナーと文言
<button type="button" id="show-orders">注文を表示</button><div id="orders-state"></div><ul id="orders"></ul>
修正後

順番を待つステータス領域

<button type="button" id="show-orders">注文を表示</button><p id="orders-state" role="status"></p><ul id="orders"></ul>

04

修正の確認

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

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

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。データの取得処理や読み込み表示のコンポーネントを変更した際は、再度確認します。

制限

ライブリージョンの動きは、スクリーンリーダーやブラウザーによって異なります。特に、非表示の領域、移動した領域、ダイアログ内の領域では差が出ます。このパターンは、一つのページでの一つの読み込み操作を扱っています。ページ遷移や無限スクロールも含め、利用者が使うスクリーンリーダーで実際の流れを確認してください。

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

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

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

再テストの進め方