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

長押しや時間内の2回押しが必要なボタン

保存したリストが、Enterを1.5秒押し続けるか、3秒以内にもう一度押したときだけ削除されるため、スイッチ、音声入力、スクリーンリーダーが送る1回の短い押下では何も起きません。

WCAG 2.2
SC 2.1.1A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり setTimeout(deleteList, 1500)
アクセシビリティの問題を示した図: 手の操作:なぜ削除できないの?
01

問題

スイッチ、音声入力、スクリーンキーボード、スクリーンリーダーが短い押下を1回だけ送る人はリストを削除できず、ゆっくり押す人は時間切れになります。

02

試してみる

Tabで「キッチンのアイデア」の下のボタンへ移動し、スイッチや音声入力と同じように、Enterを1回すばやく押してください。

次に、自分のペースでリストを削除してみてください。リストの下の欄に、キーを押していた時間や、もう一度押すまでの残り時間が出ます。

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

保存したリスト

  • キッチンのアイデア

    14アイテム

  • ゲストルーム

    6アイテム

直前の押下:まだありません

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

03

修正方法

1回押せば、待ってくれる確認が開くか、残り続ける「元に戻す」付きで削除されるようにします。

  1. 1キーを決まった時間押し続けることや、時間内にもう一度押すことを、操作の条件にしない。
  2. 2EnterかSpaceを1回すばやく押せば、すべての操作か、待ってくれる確認に届く。
  3. 3削除した後や元に戻した後は、ページに残っている要素にフォーカスを移す。
修正前

押し続けている間だけ削除できるボタン

<h2>保存したリスト</h2><ul>  <li>    <h3>キッチンのアイデア</h3>    <p>14アイテム</p>    <button type="button" id="delete-list" class="hold">      <span class="hold-fill" aria-hidden="true"></span>      長押しで削除    </button>  </li>  …</ul>
修正後

1回押すと、待ってくれる確認が開く

<h2 id="lists-heading" tabindex="-1">保存したリスト</h2><ul>  <li id="list-kitchen">    <h3>キッチンのアイデア</h3>    <p>14アイテム</p>    <button type="button" id="delete-list">リストを削除</button>  </li>  …</ul> <dialog id="confirm-delete" role="alertdialog"  aria-labelledby="confirm-title" aria-describedby="confirm-message">  <form method="dialog">    <h2 id="confirm-title">「キッチンのアイデア」を削除しますか?</h2>    <p id="confirm-message">リストと、保存した14アイテムが削除されます。</p>    <button value="keep" autofocus>リストを残す</button>    <button value="delete">リストを削除</button>  </form></dialog>

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

04

修正の確認

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

確認方法: キーボード、音声入力、スクリーンリーダー

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。サーバーとのやりとりと、複数のリストの中の元の位置にリストを戻す処理は省略しています。マウスや指での長押しと、長押しで開くメニューについては、ポインター側から右クリックや長押し、スワイプでしか出ない操作メニューで扱っています。キーボード、スイッチ、音声入力、実際に使用する支援技術で、操作全体を確認してください。

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

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

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

再テストの進め方