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

現在のページを見た目だけで示すナビゲーション

表示中のページへのメニューのリンクはクラスで太字と下線になっていますが、マークアップには現在のページだという情報がありません。

WCAG 2.2
SC 1.3.1A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり class="active"
アクセシビリティの問題を示した図: このページだと示すのは見た目だけ。
01

問題

スクリーンリーダー利用者は、メニューを移動しても今どのページにいるのか分かりません。

02

試してみる

Tabキーでメニューを移動してください。

下の欄に、各リンクでのスクリーンリーダーの読み上げが出ます。今どのページにいるか分かりますか?別のリンクでEnterキーを押すと、そのページへ移動します。

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

スクリーンリーダーの読み上げ:

(Tabでリンクへ移動)

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

03

修正方法

どのメニューのリンクが現在のページかをコードで示し、見た目もそこから設定します。

  1. 1現在のページのリンクにはaria-current="page"を付けるか、リンクの中に隠したテキストを入れる。
  2. 2見た目とコード上の目印を同じ条件で設定し、同じリンクを示すようにする。
  3. 3目印は一つのメニューに一つだけ付け、ページが変わったら移す。
修正前 クラスだけで示した現在のリンク
<nav aria-label="Main">  <ul>    <li><a href="/">Home</a></li>    <li><a href="/products">Products</a></li>    <li><a href="/pricing" class="active">Pricing</a></li>    <li><a href="/contact">Contact</a></li>  </ul></nav>
修正後

リンクにaria-current

<nav aria-label="Main">  <ul>    <li><a href="/">Home</a></li>    <li><a href="/products">Products</a></li>    <li><a href="/pricing" aria-current="page">Pricing</a></li>    <li><a href="/contact">Contact</a></li>  </ul></nav>

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

04

修正の確認

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

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

5件中0件を確認済み

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

制限

このサンプルは、どのメニューでも同じ結果になることを保証するものではありません。aria-current の読み上げ方はスクリーンリーダーによって異なり、リンク名の前に読むものも後に読むものもあります。正しいリンクに目印があっても、サイトの構造が分かりにくければ迷います。分かりやすいページタイトル、見出し、パンくずリストで補ってください。

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

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

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

再テストの進め方