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

スクリーンリーダーで読めないプログレスバーとメーター

アップロードのバーをdivで描いたり、名前がなく値も動かないprogressbarロールを付けたりしているため、どこまで進んだか、いつ終わったかがスクリーンリーダーに伝わりません。

WCAG 2.2
SC 4.1.2ASC 4.1.3AA· 2.1 で追加
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <div class="bar"><div class="fill" style="width: 60%"></div></div>
アクセシビリティの問題を示した図: 全盲:まだアップロード中?
01

問題

スクリーンリーダーの利用者は、アップロードを始めても、どこまで進んだか、まだ続いているか、終わったかが分かりません。

02

試してみる

「アップロード」でEnterキーを押し、バーが伸びる間の読み上げを聞いてください。

下の欄に、アップロード中のスクリーンリーダーの読み上げと、バーに移動したときに読まれる内容が出ます。進み具合と終わったことが聞こえますか?

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

アップロード中:report.pdf

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

(「アップロード」を押してください)

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

03

修正方法

バーに名前と、描画と一緒に動く値を持たせ、区切りの進み具合と終了を伝えます。

  1. 1何を測るバーかを、名前かそばのテキストで伝える。
  2. 2値は、塗りを描くコードで一緒に設定する。
  3. 3区切りと終了をステータス領域で伝える。1%ごとには伝えない。
修正前

Divで描いたバー

<p>アップロード中:report.pdf</p><div class="bar"><div class="fill" style="width: 0%"></div></div><p class="done" hidden>アップロード完了</p>
修正後

HTML標準のprogress要素

<label for="upload-bar">アップロード中:report.pdf</label><progress id="upload-bar" max="100" value="0">0%</progress><p class="done" hidden>アップロード完了</p><p id="upload-status" role="status" class="visually-hidden"></p>

この方法を選ぶ理由:まずHTMLの要素を使う

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得、または全ガイドをコーディングエージェントで使う。

04

デザインの案

バーは、控えめでも読み取れるように描けます。

進み具合の描き方を8通り示します。うち2つは動きます。スクリーンリーダーへの伝え方はガイドの修正で整っています。ここで見るのは、画面を見る人に進み具合が伝わるかです。

合格

  • アップロード中:report.pdf

    トラックに対して3:1以上の塗り #e6e9eeのトラックに#1f5fa8の塗りで5.29:1です。値が塗りにしか表れないとき、塗りは意味を持つ図なので、1.4.11により3:1が必要です。
  • アップロード中:report.pdf

    控えめなバーと、横に書いた割合 薄い塗りはトラックに対して1.47:1しかありませんが、「60%」が値を文字で伝えるので、理解に塗りは必要なくなります。バーはデザインどおり控えめにできます。
  • アップロード中:report.pdf

    中央に数字のあるリング 同じ値を弧で示す形で、小さなカードやスマートフォンに向きます。値は数字が伝え、弧もトラックに対して5.29:1を保っています。
  • お届け先ステップ2/4

    区切りと、書き出したステップ 購入手続きや初期設定のように、進み具合が割合でなくステップの場合の形です。「ステップ2/4」が現在地を伝え、区切りはその要約です。
  • アップロード中:report.pdf

    新しい値へ滑らかに伸びる塗り 「再生」を押してください。値が変わるたびに塗りが0.4秒かけて伸び、値が止まれば止まります。動くのは進み具合を示すときだけです。「視差効果を減らす」設定では、滑らかに動かず切り替わります。

不合格

  • アップロード中:report.pdf

    細く薄いバーだけWCAG 1.4.11 流行の4pxのバーです。#e6e9eeに#a8c4e6で1.47:1、文字もありません。値は塗りにしか表れず、多くの人には塗りの終わりが見分けられません。
  • report.pdf

    アップロード失敗で赤くなるWCAG 1.4.1 失敗したことを色だけで伝えています。赤が見分けにくい人には、進行中のバーと同じに見えます。横に「アップロードに失敗しました」と次にすることを書きます。
  • report.pdfをアップロードしました

    完了後も動き続ける縞模様WCAG 2.2.2 アップロードは終わっているのに、縞模様がフォームの横で止める手段のないまま流れ続けます。この見本は数秒で止まりますが、このパターン自体は止まりません。
05

修正の確認

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

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

4件中0件を確認済み

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

制限

プログレスバーの伝え方はスクリーンリーダーによって異なります。値を割合で読むもの、ビープ音を鳴らすもの、利用者が移動したときにだけ読むものがあり、メーターの対応はさらに不安定です。このガイドは、一つのページの一つの処理のバーを扱っています。量の分からないスピナーや待ち時間は読み上げられない読み込み中の表示で、「下書きを保存しました」のような進み具合以外のメッセージは画面に出ても読み上げられないステータスメッセージで扱っています。遅い場合や失敗する場合も含め、利用者が使うスクリーンリーダーで実際のアップロードを確認してください。

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

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

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

再テストの進め方