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

読み上げられない、divやspanのaria-label

商品一覧が星の評価と送料無料のアイコンを aria-label 付きの span に入れていますが、ロールのない span には名前を付けられないため、多くのスクリーンリーダーは評価の場所で何も読みません。

WCAG 2.2
SC 1.1.1ASC 4.1.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <span class="icon-truck" aria-label="送料無料">
アクセシビリティの問題を示した図: スクリーンリーダーはこのラベルを読み飛ばす。
01

問題

スクリーンリーダー利用者が、商品の評価や送料が無料かどうかを知ることができません。

02

試してみる

カードと、スクリーンリーダーの読み上げを比べてください。

下の欄に、span のラベルを読まないスクリーンリーダーの読み上げが出ます。各商品の評価と、どちらが送料無料か分かりますか?

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

  • リネンのエプロン

  • キャンバスのトート

ラベルを読まないスクリーンリーダーの読み上げ:

  1. リスト、2項目
  2. リネンのエプロン、見出しレベル3
  3. キャンバスのトート、見出しレベル3

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

03

修正方法

ラベルは、名前を持てる要素に付けるか、テキストとして中身に入れて、読まれる場所に置きます。

  1. 1aria-label は、名前を持てるロールの要素(操作要素、ランドマーク、画像、フレーム)にだけ付ける。
  2. 2画像には role="img" とラベルを付けるか、意味をテキストとして中身に入れる。
  3. 3意味を隣に書いたときは、画像そのものを aria-hidden="true" で隠す。
修正前 名前を持てない span のラベル
<ul class="products">  <li class="card">    <h3>リネンのエプロン</h3>    <span class="stars stars-4" aria-label="5点中4点の評価"></span>    <span class="icon-truck" aria-label="送料無料"></span>  </li>  <li class="card">    <h3>キャンバスのトート</h3>    <span class="stars stars-3" aria-label="5点中3点の評価"></span>  </li></ul>
修正後

画像に名前を付けられるロールを与える

<ul class="products">  <li class="card">    <h3>リネンのエプロン</h3>    <span class="stars stars-4" role="img" aria-label="5点中4点の評価"></span>    <span class="icon-truck" role="img" aria-label="送料無料"></span>  </li>  <li class="card">    <h3>キャンバスのトート</h3>    <span class="stars stars-3" role="img" aria-label="5点中3点の評価"></span>  </li></ul>

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

04

修正の確認

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

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

4件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。クラス名は仮のもので、星とトラックはCSSやアイコンフォントで描くあらゆる画像の例です。禁止された名前の扱いはスクリーンリーダーのバージョンによって変わり、あるモードでは読み別のモードでは読まないものもあるため、1種類のスクリーンリーダーで問題がなくても、ほとんど何も証明しません。ラベルが必要な情報を運んでいるのか、見えるテキストを繰り返しているだけなのかはページによって違い、人が判断する必要があります。実際に使用する支援技術で、操作全体を確認してください。

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

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

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

再テストの進め方