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

操作するだけでページが変わるドロップダウンと入力欄

並べ替えのメニューは値が変わった時点でページを読み込み直し、日付の入力欄はフォーカスを受けた瞬間にカレンダーへフォーカスを移します。

WCAG 2.2
SC 3.2.1ASC 3.2.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <select onchange="this.form.submit()">
アクセシビリティの問題を示した図: 矢印キーを一度押すと、ページが読み込み直される。
01

問題

キーボードやスクリーンリーダーの利用者が、何も選んでいないうちに別のページへ移されたり、先へ進まされたりします。

02

試してみる

キーボードで欄を操作し、フォーカスの行き先を見てください。

「問題1」では「並べ替え」で↓キーを押し、フォーカスの行き先を見てください。「問題2」では「配達日」までTabキーで移動し、Shift + Tabキーで「名前」へ戻ってみてください。

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

ペン

  • ファインライナー
  • ゲルペン
  • 筆ペン
  • 万年筆

Tabキーで「並べ替え」まで移動し、↓キーを押してください。

フォーカスの位置: まだページの外

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

03

修正方法

ボタンを待つか、フォーカスをそのままにして、その場で変更します。

  1. 1フォーカスを受けただけで、フォーカスの移動、新しいウィンドウ、ページの移動を起こさない。
  2. 2値の変更でページを変えるのは、ボタンを押した後か、要素にフォーカスを残したままその場で変えるときだけにする。
  3. 3変わった内容は、変更した要素のそばに表示する。
修正前

値が変わると読み込み直す並べ替えメニュー

<form action="/pens" method="get">  <label for="sort">Sort by</label>  <select id="sort" name="sort" onchange="this.form.submit()">    <option value="popular">Most popular</option>    <option value="name">Name, A to Z</option>    <option value="new">Newest</option>  </select></form>
修正後

選択を適用するボタン

<form action="/pens" method="get">  <label for="sort">Sort by</label>  <select id="sort" name="sort">    <option value="popular">Most popular</option>    <option value="name">Name, A to Z</option>    <option value="new">Newest</option>  </select>  <button type="submit">Sort</button></form> <label for="date">Delivery date</label><p id="date-format">For example, 2026-12-14</p><input id="date" name="date" aria-describedby="date-format"><button type="button" id="date-button"  aria-expanded="false" aria-controls="calendar">Choose date</button>

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

04

修正の確認

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

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

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。キーボード操作で change が発生するタイミングはブラウザーによって異なり、macOSでは矢印キーでリストが開き、確定したときに値が変わります。利用者が使う環境と、サイトで実際に使っているコンポーネントで確認してください。

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

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

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

再テストの進め方