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

キーボードでスクロールできないスクロール領域

購入手続きの利用規約の枠が決まった高さの中でスクロールしますが、tabindexも、中にフォーカスできるものもないため、SafariではTabが枠を飛ばし、矢印キーは枠ではなくページをスクロールします。

WCAG 2.2
SC 2.1.1A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり .terms { max-height: 10rem; overflow-y: auto; }
アクセシビリティの問題を示した図: 手の操作:続きはどう読むの?
01

問題

Safariでキーボードを使う人は規約の枠をスクロールできず、同意を求められている返品と返金の条項を読めません。

02

試してみる

メールアドレスからTabを押し、矢印キーで規約を「6. 返金」まで読んでください。

マウスを使わずに返品と返金の条項を表示でき、「注文を確定」にも届きますか?

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

問題中にフォーカスできるもののないスクロールの枠

利用規約

1. ご注文 ご注文は、確認のメールをお送りした時点で承ります。

2. 価格 価格は税込みです。送料はお支払いの前に表示します。

3. 配送 3〜5営業日以内にお届けします。

4. 変更 発送のメールをお送りするまでは、ご注文の変更や取り消しができます。

5. 返品 未使用の商品は、お届けから30日以内に返品できます。

6. 返金 返品の到着から5営業日以内に、お支払いに使われたカードへ返金します。

ここでのTabは、Safariと同じように枠を飛ばします。Chrome 132以降、Edge、Firefoxは、このような枠にブラウザー自身が止まるため、Safariで確認してください。

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

03

修正方法

規約をページと一緒に流すか、枠を名前付きのTabの止まる場所にして、フォーカスリングを見えるようにします。

  1. 1スクロールする枠には、どの画面幅でもTabで届くようにする。
  2. 2Tabの止まる場所にした枠には、名前と見えるフォーカスリングを付ける。
  3. 3スクロールの枠をフォーカスできるようにするのを、ブラウザーに任せない。
修正前 中にフォーカスできるもののないスクロールの枠
<form action="/checkout" method="post">  …  <h2 id="terms-heading">利用規約</h2>  <div class="terms">    <p><strong>1. ご注文</strong> ご注文は、確認のメールをお送りした時点で承ります。</p>    …    <p><strong>5. 返品</strong> 未使用の商品は、お届けから30日以内に返品できます。</p>    <p><strong>6. 返金</strong> 返品の到着から5営業日以内に、お支払いに使われたカードへ返金します。</p>  </div>  <label>    <input type="checkbox" name="accept-terms" required>    利用規約を読み、同意します  </label>  <button type="submit">注文を確定</button></form>
修正後

Tabで届き、名前の付いたスクロールの枠

<form action="/checkout" method="post">  …  <h2 id="terms-heading">利用規約</h2>  <div class="terms" tabindex="0" role="region" aria-labelledby="terms-heading">    <p><strong>1. ご注文</strong> ご注文は、確認のメールをお送りした時点で承ります。</p>    …    <p><strong>5. 返品</strong> 未使用の商品は、お届けから30日以内に返品できます。</p>    <p><strong>6. 返金</strong> 返品の到着から5営業日以内に、お支払いに使われたカードへ返金します。</p>  </div>  <label>    <input type="checkbox" name="accept-terms" required>    利用規約を読み、同意します  </label>  <button type="submit">注文を確定</button></form>

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

04

修正の確認

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

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

4件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。ここで扱うのは、ブラウザー自身のスクロールでスクロールする枠です。矢印のボタンでスクロールするカルーセルやリストはキーボードやスクリーンリーダーで使えないカルーセルで、文字を拡大すると overflow: hidden で文章が切れ、まったくスクロールできない枠は拡大した文字が切れる、高さ固定のボックスで扱っています。Chromeだけでなく、Safariでも、利用者が使う画面幅で、操作全体を確認してください。

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

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

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

再テストの進め方