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

現在のページも行き先も伝えないページネーション

ショップのページ番号は現在のページをクラスだけで示し、リンクは数字と矢印だけです。そのため、スクリーンリーダーでは今どのページにいるのか、各リンクがどこへ行くのかが分かりません。

WCAG 2.2
SC 1.3.1ASC 2.4.4A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <a href="/kitchen/mugs?page=3">›</a>
アクセシビリティの問題を示した図: 全盲:このリンクはどこへ?
01

問題

スクリーンリーダー利用者は、一覧の何ページ目にいるのか、矢印のリンクがどこへ行くのかが分かりません。ページのリンクが、それを見た目だけで示しているためです。

02

試してみる

Tabキーでページのリンクを移動し、Enterキーでページへ移ってください。

下の欄に、ページのリンクをスクリーンリーダーが読む内容が出ます。今どのページにいるか、各矢印がどこへ行くか分かりますか?

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

問題クラスで現在のページを示し、矢印は記号だけのページのリンク

マグカップ

  • 斑点柄のマグ
  • トールマグ
  • エスプレッソカップ

ページのリンクを読むと、スクリーンリーダーの読み上げ:

  1. ‹、リンク
  2. 1、リンク
  3. 2、リンク
  4. 3、リンク
  5. 4、リンク
  6. ›、リンク

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

03

修正方法

ページのリンクを名前付きのnavにまとめ、現在のページをコードかテキストで示し、どのリンクにも言葉の名前を付けます。

  1. 1ページのリンクは、固有の短い名前を付けたnavに入れる。
  2. 2現在のページにはaria-current="page"を付けるかテキストで示し、見た目も同じ条件で設定する。
  3. 3ページのリンクには、見た目にかかわらず「Page 2」「Next page」のような言葉の名前を付ける。
修正前 クラスで現在のページを示し、矢印は記号だけのページのリンク
<h1>Mugs</h1>…<div class="pagination">  <a href="/kitchen/mugs?page=1">‹</a>  <a href="/kitchen/mugs?page=1">1</a>  <a href="/kitchen/mugs?page=2" class="current">2</a>  <a href="/kitchen/mugs?page=3">3</a>  <a href="/kitchen/mugs?page=4">4</a>  <a href="/kitchen/mugs?page=3">›</a></div>
修正後

名前付きのnav、aria-current、隠したテキストの名前

<h1>Mugs</h1>…<nav class="pagination" aria-label="Pagination">  <ul>    <li>      <a href="/kitchen/mugs?page=1">        <span aria-hidden="true">‹</span>        <span class="visually-hidden">Previous page</span>      </a>    </li>    <li>      <a href="/kitchen/mugs?page=1">        <span class="visually-hidden">Page </span>1      </a>    </li>    <li>      <a href="/kitchen/mugs?page=2" aria-current="page">        <span class="visually-hidden">Page </span>2      </a>    </li>    <li>      <a href="/kitchen/mugs?page=3">        <span class="visually-hidden">Page </span>3      </a>    </li>    <li>      <a href="/kitchen/mugs?page=4">        <span class="visually-hidden">Page </span>4      </a>    </li>    <li>      <a href="/kitchen/mugs?page=3">        <span aria-hidden="true">›</span>        <span class="visually-hidden">Next page</span>      </a>    </li>  </ul></nav>

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

04

デザインの案

ページのリンクは、いろいろな見た目で描けます。

ほかに3通りの描き方です。リンクにマウスを重ね、Tabで移動し、ページをクリックすると目印がそこへ移ります。2つは合格です。1つはページを点で描くため、読み上げや音声操作に使える言葉がどのリンクにもありません。

デザインファイルで

  • ページのリンクそれぞれの名前を横に書く。数字や矢印しか見えない場合も、「2ページ」「前のページ」「次のページ」のように。
  • 今いるページを独立した状態として描く。Windowsのコントラスト テーマでは塗りが消えるため、塗りだけでなく太字や線でも示す。
  • 最初と最後のページも描く。そこでは矢印の一方に行き先がない。

合格

  • 太字の数字と下線、両端に言葉 2を#1d1d1fの太字にし、下に3pxの線を引きます(白に対して16.83:1)。太さも線も強制配色で残ります。「前のページ」と「次のページ」は言葉で書くので、音声操作の利用者はそのまま言えます。数字の名前には、コードで「ページ」の語を足します。最初と最後のページでは、行き先のない側を薄くし、リンクにしません。
  • ページ数を挟む丸い矢印 40pxの丸い矢印二つで、太字の「2 / 4」を挟みます。今いるページは描くのではなく書いて示します。矢印には画面上に言葉がないので、「前のページ」「次のページ」という名前をデザインファイルに書いてください。

不合格

  • ページを点で描くWCAG 2.4.4 10pxの点を4つ並べ、#8796a5(3.03:1)で描き、現在の点を#1d1d1fで塗ります。点には言葉がないため、スクリーンリーダーはどれも「リンク」かアドレスの一部しか読まず、音声操作の利用者は言う言葉がなく、塗った点だけが今いるページの手がかりです。
05

修正の確認

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

確認方法: スクリーンリーダー、キーボード、音声入力

5件中0件を確認済み

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

制限

このサンプルは、どの一覧でも同じ結果になることを保証するものではありません。aria-current やランドマークの読み上げ方はスクリーンリーダーによって異なり、記号の読み方は句読点の読み上げ設定で変わります。利用者が使うスクリーンリーダーで確かめてください。スクロールや「もっと見る」ボタンで続きを読み込む一覧には示すページがないため、別の配慮が必要です。同じページの上にあるパンくずリストには、別の問題があります。現在のページを見た目だけで示すパンくずリストを参照してください。サイトのメインメニューも、同じ属性で現在のページを示します。現在のページを見た目だけで示すナビゲーションを参照してください。

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

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

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

再テストの進め方