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

Tabで閉じてフォーカスを見失う検索パネル

入力欄からフォーカスが外れた瞬間に閉じ、Escapeキーにも反応せず、フォーカスのある要素ごと隠してしまいます。

SC 2.1.1ASC 2.4.3ASC 4.1.2A エージェント向けMarkdown
問題あり 試してみる
閉じて、フォーカスが消える。
アクセシビリティの問題を示した図。
01

問題

キーボード利用者が検索結果に移動できず、Escapeキーで閉じられず、閉じると現在位置を見失います。

02

試してみる

検索を開いて入力し、Tabで検索結果へ進んでください。

二つのランプと閉じるボタンに届きますか?Escapeも試して、フォーカスがどこに残るか見てください。

問題あり 直してみませんか?

フォーカス: –

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

03

修正方法

利用者が閉じたときか、部品全体から出たときだけ閉じ、自分で閉じたときは開いたボタンにフォーカスを戻します。

  1. 1パネル内でフォーカスを動かしても閉じない。
  2. 2Escapeキーと名前のある閉じるボタンで閉じ、開いたボタンにフォーカスを戻す。
  3. 3開くボタンが、パネルが開いているかどうかを伝える。
修正前 入力欄から外れると閉じるパネル
<button type="button" id="search-trigger">検索</button><div id="search-panel" hidden>  <label for="search-input">商品を検索</label>  <input id="search-input" type="search">  <ul>    <li><a href="/lamps/arc">アーチ型フロアランプ</a></li>    <li><a href="/lamps/dome">ドーム型テーブルランプ</a></li>  </ul>  <button type="button" id="search-close">閉じる</button></div><button type="button">カート</button>
修正後

求められたときに閉じる開閉パネル

<div id="search">  <button type="button" id="search-trigger" aria-expanded="false" aria-controls="search-panel">検索</button>  <div id="search-panel" tabindex="-1" hidden>    <label for="search-input">商品を検索</label>    <input id="search-input" type="search">    <ul>      <li><a href="/lamps/arc">アーチ型フロアランプ</a></li>      <li><a href="/lamps/dome">ドーム型テーブルランプ</a></li>    </ul>    <button type="button" id="search-close">検索を閉じる</button>  </div></div><button type="button">カート</button>

04

修正の確認

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

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

5件中0件を確認済み

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

制限

これはモーダルではない検索パネルの出発点となる実装例で、コンボボックス、メニュー、ダイアログには当てはまりません。結果の取得や読み上げの処理は省略しています。実際の結果一覧を含めて、使用する支援技術で操作全体を確認してください。

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

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

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

再テストの進め方