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

画面に見えるのにスクリーンリーダーが読まないテキスト

店が「売り切れ」のバッジを商品写真のリンクの中に描き、そのリンクを重複としてスクリーンリーダーから隠しているため、どのマグが売り切れなのかをスクリーンリーダーは読み上げません。

WCAG 2.2
SC 1.3.1A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <a class="photo" href="/mugs/glazed" aria-hidden="true" tabindex="-1">
アクセシビリティの問題を示した図: 全盲:これは買える?
01

問題

スクリーンリーダーの利用者には、どの商品が売り切れなのかが伝わらず、商品を開いて初めて分かります。

02

試してみる

画面で売り切れと表示されているマグと、スクリーンリーダーが各カードで読む内容を比べてください。

下の読み上げは、表示されているカードの実際の作りから割り出しています。aria-hiddenが外すものは読まれません。続けて、それぞれの修正を確かめてください。

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

問題隠した写真のリンクの中のバッジ

カードを先頭から読むと、スクリーンリーダーの読み上げ:

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

03

修正方法

状態は画面とスクリーンリーダーが共有する言葉で伝え、当てはまらないものは全員から隠します。

  1. 1必要な言葉をaria-hiddenの要素の中に入れない。同じ言葉がそばで読まれる場合を除く。
  2. 2当てはまらないものは、opacityや画面外への配置ではなく、hiddenかdisplay: noneで全員から隠す。
  3. 3スクリーンリーダーでページを読み、カードごとに画面と比べる。
修正前 隠した写真のリンクの中のバッジ
<ul class="products">  …  <li class="card">    <a class="photo" href="/mugs/glazed" aria-hidden="true" tabindex="-1">      <img src="/img/glazed-mug.jpg" alt="">      <span class="badge">Sold out</span>    </a>    <a href="/mugs/glazed">      Glazed mug    </a>    <p class="price">£22</p>  </li>  <li class="card">    <a class="photo" href="/mugs/tall" aria-hidden="true" tabindex="-1">      <img src="/img/tall-mug.jpg" alt="">    </a>    <a href="/mugs/tall">Tall mug</a>    <p class="price">£20</p>  </li></ul>
修正後

写真の外のバッジを、売り切れのカードにだけ書く

<ul class="products">  …  <li class="card">    <a class="photo" href="/mugs/glazed" aria-hidden="true" tabindex="-1">      <img src="/img/glazed-mug.jpg" alt="">    </a>    <span class="badge">Sold out</span>    <a href="/mugs/glazed">      Glazed mug    </a>    <p class="price">£22</p>  </li>  <li class="card">    <a class="photo" href="/mugs/tall" aria-hidden="true" tabindex="-1">      <img src="/img/tall-mug.jpg" alt="">    </a>    <a href="/mugs/tall">Tall mug</a>    <p class="price">£20</p>  </li></ul>

この方法を選ぶ理由:隠すときは、全員から一度に隠す

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

04

修正の確認

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

確認方法: スクリーンリーダー

5件中0件を確認済み

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

制限

このガイドの対象は、表示されているのに読まれない言葉と、読まれるのに表示されていない言葉です。aria-hidden の中のフォーカスを受ける要素はTabで届くのに読み上げられない、aria-hiddenの要素で、装飾画像はファイル名や同じ言葉が読まれる装飾画像で扱います。隠した言葉が必要かどうか、スクリーンリーダー向けに意図して隠したものかどうかは、ページごとに人が判断する必要があります。カードやリンクの読み方はスクリーンリーダーや点字ディスプレイによって違うため、利用者が使う組み合わせで確認してください。

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

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

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

再テストの進め方