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

リンクと読み上げられ、Spaceキーで押せないボタン

フォームを開く丸いボタンを、href="#"のリンクで作っています。そのためスクリーンリーダーはリンクと読み上げ、Spaceキーではボタンが押されずにページがスクロールします。

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

問題

スクリーンリーダーの利用者は、フォームを開く操作要素を、別のページへ移動するリンクだと伝えられます。キーボード利用者がSpaceを押すと、ボタンは押されずにページがスクロールします。

02

試してみる

Tabで「再入荷のお知らせ」へ移動してSpaceを押し、次にEnterを押してください。

Spaceでフォームが開きますか? それともページがスクロールしますか? 下の欄に、スクリーンリーダーがこのボタンをリンクと読むか、ボタンと読むかが出ます。

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

問題丸いボタンに見せた、どこも指していないリンク

Linen tote

$48

売り切れ

再入荷のお知らせ

このバッグについて

洗うたびに柔らかくなる、洗いをかけたリネンの大きめのトートです。内ポケットに畳んで収まるので、どこへでも持ち歩けます。

  • 洗いをかけたリネン、40×38 cm
  • ファスナー付きの内ポケット
  • 肩に掛けられる長い持ち手

配送と返品

60ドル以上のご注文で送料無料です。30日以内なら、届いたときの包装のままで無料で返品できます。

お手入れ

洗濯機の冷水で洗い、吊るして乾かしてください。中温のアイロンで、張りのある風合いに戻ります。

再入荷のお知らせ

リネンのトートが再入荷したら、メールを1通お送りします。

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

(Tabで丸いボタンへ移動)

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

03

修正方法

操作のための要素はbuttonで作るか、リンクにrole="button"を付けてSpaceで押せるようにします。

  1. 1何かを開く・変える・送る操作要素はbuttonのロールにし、リンクはアドレスへの移動に使う。
  2. 2EnterでもSpaceでも1回だけ押され、Spaceでページがスクロールしない。
  3. 3どの要素で作っても、丸いボタンの見た目は変えない。
修正前 丸いボタンに見せた、どこも指していないリンク
<p class="stock">売り切れ</p><a href="#" class="pill notify">  再入荷のお知らせ</a><dialog id="notify" aria-labelledby="notify-title">  …</dialog>
修正後

Button要素を使う

<p class="stock">売り切れ</p><button type="button" class="pill notify">  再入荷のお知らせ</button><dialog id="notify" aria-labelledby="notify-title">  …</dialog>

この方法を選ぶ理由:まずHTMLの要素を使う

修正にならない応急処置
<a href="#" role="button" class="pill notify">  再入荷のお知らせ</a>

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

04

修正の確認

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

確認方法: キーボード、スクリーンリーダー

4件中0件を確認済み

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

制限

このガイドが扱うのは、ボタンの働きをするリンクです。逆に、別のページへ移動するだけのボタンは、ボタンとして読み上げられ、新しいタブで開くこともリンク一覧で見つけることもできません。同じトピックを反対側から見た問題で、今後のガイドで扱う予定です。ロールのないdivやspanにクリック処理を設定した場合は、Tabキーで到達できないdivのボタンを参照してください。ページをその場で絞り込んだり並べ替えたりするリンクは、ページを更新するリンクのトピックで扱います。言葉のないボタンについては、名前がないアイコンだけのボタンを参照してください。対象とする支援技術で、操作全体を確認してください。

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

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

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

再テストの進め方