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

右クリックや長押し、スワイプでしか出ない操作メニュー

一覧の操作が、右クリックや長押しでしか開かないメニューか、スワイプの奥にしかなく、行にはそこへ届くボタンがありません。

WCAG 2.2
SC 2.1.1ASC 2.5.1A· 2.1 で追加
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり list.addEventListener('contextmenu', openMenu)
アクセシビリティの問題を示した図: 手の操作:どうやってダウンロードするの?
01

問題

キーボード、スイッチ、音声操作、スクリーンリーダーの利用者と、ジェスチャーに気付かない人は、行の操作に届きません。

02

試してみる

「署名済み契約書.pdf」を削除してください。右クリックか長押し、「問題2」では左へのスワイプです。次に、マウスを使わずにTabで試してください。

下の欄に、スクリーンリーダーの読み上げが出ます。ジェスチャーを使わずに「ダウンロード」「コピーを作成」「削除」に届きますか?どのファイルに対する操作か聞こえますか?

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

共有された書類

  • 請求書 0412.pdf
  • 署名済み契約書.pdf
  • ブランドガイド.pdf

共有ファイルのヘルプ

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

(Tabでファイルへ移動するか、右クリックしてください)

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

03

修正方法

ジェスチャーは近道として残し、すべての行に、同じ操作へ届くボタンを置きます。

  1. 1右クリック、長押し、スワイプのメニューにある操作は、どれも行のボタンか、行のボタンで開くメニューにもある。
  2. 2それらの操作にはキーボードで届き、どの行に対するものかを伝える。
  3. 3操作で行が消えたら、フォーカスはbodyではなく、次の行の操作要素へ移る。
修正前

右クリックか長押しでしか開かないメニュー

<ul class="files">  <li data-file="invoice">請求書 0412.pdf</li>  <li data-file="contract">署名済み契約書.pdf</li>  <li data-file="brand">ブランドガイド.pdf</li></ul><div class="file-menu" hidden>  <button type="button" data-action="download">ダウンロード</button>  <button type="button" data-action="copy">コピーを作成</button>  <button type="button" data-action="delete">削除</button></div>
修正後

同じ操作を開く「操作」メニューボタン

<li data-file="invoice">  <span id="file-invoice">請求書 0412.pdf</span>  <button type="button" popovertarget="menu-invoice" aria-haspopup="menu" aria-describedby="file-invoice">    操作  </button>  <div id="menu-invoice" popover role="menu" aria-labelledby="file-invoice" class="file-menu">    <button type="button" role="menuitem" tabindex="-1" data-action="download">ダウンロード</button>    <button type="button" role="menuitem" tabindex="-1" data-action="copy">コピーを作成</button>    <button type="button" role="menuitem" tabindex="-1" data-action="delete">削除</button>  </div></li>

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

04

修正の確認

5つの確認

確認方法: キーボード、マウス、タッチ、スクリーンリーダー、音声入力

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。ドラッグで動かす行、長押しによる複数の項目の選択、ピンチでの拡大のような地図や画像のジェスチャーには、それぞれ別の配慮が必要で、ここでは扱いません。画像のジェスチャーについてはボタンで代われないピンチ・ドラッグ・傾きのジェスチャーを参照してください。メニューのライブラリーによって、フォーカス、Escape、配置の扱いは異なります。対象とする支援技術で、操作全体を確認してください。

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

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

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

再テストの進め方