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

見た目と食い違う読み上げ順序

注文内容の欄は各金額を品名より前に書いて右へフロートさせ、配送方法の枠は列ごとに書かれています。そのため、スクリーンリーダーでは言葉の組み合わせが崩れます。

WCAG 2.2
SC 1.3.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <li><span class="amount">$28</span> キャンバストート</li>
アクセシビリティの問題を示した図: 全盲:送料は$67?
01

問題

スクリーンリーダーや読み上げ機能の利用者には、金額が品名より先に、配送方法がばらばらの列として聞こえ、価格を別の項目と結び付けてしまいます。

02

試してみる

スクリーンリーダーと同じ順に注文内容を読み、どの金額がどの名前の後に来るか見てください。

パネルには、スクリーンリーダーが上から読んだ内容が出ます。「読み上げ順を表示」をオンにすると、各部分にその順の番号が付きます。どの金額も自分の名前の後に来ていますか?「問題2」は、列ごとに書いた配送方法の枠です。

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

注文内容
  • $28 キャンバストート
  • $35 リネントート
  • $4 送料
  • $67 合計

上から読むと、スクリーンリーダーの読み上げ:

  1. 注文内容
  2. $28
  3. キャンバストート
  4. $35
  5. リネントート
  6. $4
  7. 送料
  8. $67
  9. 合計

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

03

修正方法

読む順にソースを書くか、位置のずれた値を、所属する対象とテキストで結び付けます。

  1. 1順序が意味を持つ箇所では、マークアップがその順序を伝える。その順に書くか、各項目が所属先を名指しする。
  2. 2行と列で描くデータは、表として行ごとに書くか、各値が自分の行を名指しする。
  3. 3幅によってレイアウトが並べ替わるため、すべてのブレークポイントで確認し、スタイルを外しても読む。
修正前

品名より前に書き、右へフロートさせた金額

<ul class="summary">  <li><span class="amount">$28</span> キャンバストート</li>  <li><span class="amount">$35</span> リネントート</li>  <li><span class="amount">$4</span> 送料</li>  <li class="total"><span class="amount">$67</span> 合計</li></ul>
修正後

読む順に書いたソース

html

<ul class="summary">  <li><span>キャンバストート</span> <span class="amount">$28</span></li>  <li><span>リネントート</span> <span class="amount">$35</span></li>  <li><span>送料</span> <span class="amount">$4</span></li>  <li class="total"><span>合計</span> <span class="amount">$67</span></li></ul>

html

<table class="delivery">  <tr>    <th scope="row">通常配送</th>    <td>$4</td>    <td>3〜5日</td>  </tr>  <tr>    <th scope="row">お急ぎ便</th>    <td>$9</td>    <td>翌日</td>  </tr></table>

この方法を選ぶ理由:ソースは読む順に書く

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

04

修正の確認

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

確認方法: スクリーンリーダー、スタイルを無効化

4件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。対象は、短い注文内容の欄と、選択肢の小さな枠です。ドラッグで並べ替えるリスト、データグリッド、カルーセルは、それぞれの設計パターンに従い、別の確認が必要です。順序が意味を変えるかどうかは内容に対する判断のため、実際のページをスクリーンリーダーで、またスタイルを外して読んでください。

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

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

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

再テストの進め方