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

現在のステップを見た目だけで示すステップ表示

チェックアウトのステップ表示は、今いるステップの円を塗りつぶし、終わったステップにチェックを付けますが、どれがどれかをコードは伝えないため、スクリーンリーダーはすべてのステップを同じように読みます。

WCAG 2.2
SC 1.3.1A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <li class="current">
アクセシビリティの問題を示した図: 全盲:今どのステップ?
01

問題

スクリーンリーダー利用者は、フォームの今どのステップにいるのか、どのステップが終わったのかが分かりません。ステップ表示の塗りとチェックだけが示しているからです。

02

試してみる

「次へ」と「戻る」でチェックアウトを進めてください。

下の欄に、ステップの冒頭をスクリーンリーダーが読む内容が出ます。今どのステップか、どれが終わったか分かりますか?

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

問題クラスだけで描いた現在のステップ

購入手続き

  1. カート
  2. 2 配送
  3. 3 支払い
  4. 4 確認

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

  1. 購入手続き、見出し
  2. リスト、4項目
  3. カート、リンク
  4. 2 配送
  5. 3 支払い
  6. 4 確認

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

03

修正方法

現在のステップと終わったステップをコードで示すか、見出しでステップを伝え、見た目も同じステップの値から設定します。

  1. 1現在のステップにはaria-current="step"か隠したテキストを付けるか、ステップの見出しに番号とステップを書く。
  2. 2終わったことをチェックや塗りだけで示さず、言葉でも伝える。
  3. 3見た目、目印、見出しを一つのステップの値から設定し、ステップが変わったらすべて移す。
修正前 クラスだけで描いた現在のステップ
<h1>Checkout</h1><ol class="steps" role="list">  <li class="done">    <a href="/checkout/cart">      <span class="mark"><svg aria-hidden="true" viewBox="0 0 16 16">…</svg></span>      Cart    </a>  </li>  <li class="current">    <span class="mark">2</span>    Delivery  </li>  <li>    <span class="mark">3</span>    Payment  </li>  <li>    <span class="mark">4</span>    Review  </li></ol>
修正後

現在のステップにaria-current、終わったステップに隠したテキスト

<h1>Checkout</h1><ol class="steps" role="list">  <li class="done">    <a href="/checkout/cart">      <span class="mark"><svg aria-hidden="true" viewBox="0 0 16 16">…</svg></span>      Cart<span class="visually-hidden">, completed</span>    </a>  </li>  <li aria-current="step">    <span class="mark">2</span>    Delivery  </li>  <li>    <span class="mark">3</span>    Payment  </li>  <li>    <span class="mark">4</span>    Review  </li></ol>

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

04

デザインの案

ステップ表示は、いろいろな描き方で今の場所を伝えられます。

同じ4つのステップを、さらに4通りに描きました。「次へ」を押し、終わったステップへTabで移動してみてください。3つは今のステップを言葉かコードで伝え、1つは描くだけです。

デザインファイルで

  • 終わった、現在、これからの3つの見た目を描き、それぞれに名前を書く。
  • 現在のステップは塗りだけにせず、太字の名前や下の線も付ける。Windowsのハイコントラストでも見えるように。
  • チェックの横に、スクリーンリーダーが読む言葉(「完了」など)を書く。
  • スマートフォンの画面も描き、点だけにせず「ステップ2(全4)」のように言葉で書く。
  • 色の横にコントラスト比を書く。ステップ名は最低4.5:1、輪は最低3:1。

合格

  • ステップ2(全4):配送

    カートに戻る
    言葉で書いたステップと、区切りのあるバー 4つの角丸の区切りの上に、太字で「ステップ2(全4):配送」と書き、最初の2つを#1f5f8bで塗ります。ステップは言葉が伝えるので、バーはそれを繰り返すだけです。名前付きの円が4つ並ばないスマートフォンにも収まります。
    1. カート、完了
    2. 配送
    3. 支払い
    4. 確認
    山括弧でつないだステップ名の列 円を使わず、多くのショップのチェックアウトと同じく4つの名前を1行に並べます。現在のステップは太字で下に3pxの線があり、色だけでなく形でも分かります。終わったステップは#1f5f8b(6.84:1)のリンク、これからのステップは#5b6670(5.87:1)です。現在のステップは、どの表示とも同じくコードでも示します。
    1. カート、完了 リネンのトート、$48
    2. 配送入力中
    3. 支払い
    4. 確認
    答えを表示する縦の列 フォームの横の縦のリストです。終わった各ステップの名前の下に、入力した内容「リネンのトート、$48」を表示するので、何が終わったかを言葉で伝え、要約も兼ねます。現在のステップには「入力中」のタグを付け、誰でも読めるテキストで示します。1列を使うので、広い画面に向いています。

不合格

  • 点だけで、現在の点を伸ばすWCAG 1.3.1 会員登録の流れでよく見る形です。8pxの点が4つあり、現在の点だけが#1f5f8bの24pxの楕円に伸びます。画面上にもコードにも、ステップ名も番号もないため、スクリーンリーダーは何も読まず、次に何が来るかも誰にも分かりません。点の横に「ステップ2(全4)」と書きます。
05

修正の確認

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

確認方法: スクリーンリーダー、キーボード、強制配色

5件中0件を確認済み

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

制限

このサンプルは、どの手続きでも同じ結果になることを保証するものではありません。aria-current の読み上げ方はスクリーンリーダーによって異なり、名前の前に読むものも後に読むものもあります。対応もスクリーンリーダーとブラウザーの組み合わせで差があるため、利用者が使うもので試してください。正しいステップに目印があっても、手続き自体が分かりにくかったり、同じ情報を二度求めたりすれば、人は迷います。同じ住所を二度入力させるチェックアウトフォームを参照してください。メニューの現在のページのリンクも、同じ属性を別の値で使います。現在のページを見た目だけで示すナビゲーションを参照してください。

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

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

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

再テストの進め方