達成基準 2.5.2: ポインタのキャンセルを理解する

達成基準 2.5.2 ポインタのキャンセル (レベル A): シングルポインタを使って操作できる機能は、以下の要件の少なくとも 1 つを満たす。

ダウンイベントがない
機能を実行する目的でポインタのダウンイベントを使用していない。
中止又は元に戻すことができる
機能の完了にはアップイベントを使用し、かつ機能の完了前に中止する、又は機能の完了後に元に戻すためのメカニズムが利用できる。
アップイベントで反転
アップイベントによって、先のダウンイベントのすべての結果が反転する。
必要不可欠
ダウンイベントによって機能を完了させることが必要不可欠である。

キーボードまたはテンキーパッドのキープレスをエミュレートする機能は必須と考えられる。

この要件は、ポインタの動作を解釈するウェブコンテンツに適用される (ユーザエージェントや支援技術の操作に必要なアクションには適用されない)。

意図

この達成基準の意図は、利用者が偶発的又は誤ったポインタ入力を防止することを容易にすることである。様々な障害者が、意図せずタッチ又はマウスイベントを開始してしまい、望ましくない結果を招くことがある。以下の各サブセクションは、この達成基準の箇条書きとほぼ一致しており、利用者がポインタ操作をキャンセルできる手段を概説している。

アップイベントで動作又は完遂させる

ポインタのキャンセルを組み込む最もアクセシブルな方法は、動作がアップイベントによって発生するようにすることである。

アップイベントによる動作とは、ポインタが離されたときにターゲットが動作することである。タッチスクリーンのインタラクションでは、指がターゲットに触れているとき、ターゲット領域内にあった指が持ち上げられた場合にのみ、アップイベントによる動作が発生する。同様にマウスによるインタラクションでは、マウスボタンを押した当初のターゲット設定領域内にカーソルがある間にマウスボタンを放した場合、アップイベントが発生する。

コンテンツ制作者は、アップイベントで機能を動作させる一般的なプラットフォームの動作/クリックイベントを使用することによって、利用者が不用意に動作を引き起こしてしまう問題を減らすことができる。例えば JavaScript の click イベントは、マウスの主ボタンが離されたときに引き起こされる、暗黙的なアップイベントの一例である。その名称にもかかわらず、click イベントはデバイス非依存であり、タッチ及びキーボード操作においても機能する。

アップイベントの優先度は、達成基準の最初の箇条書きの表現の中で暗黙的に示されている。つまり、機能を実行する目的でポインタのダウンイベントを使用していない

ことである。コンテンツ制作者は、アップイベントのみを用いることで、最初の箇条書きを満たすのである。

アップイベントで中止又は元に戻す

インタラクションが単純な「クリック」に相当する場合、アップイベントによる動作には、キャンセルできる機能が組み込まれている。画面に触れたときと指を離したときとでは違いがある。同様に、マウス操作では、マウスボタンを押したときと離したときの違いがある。ポインタが離されたときにのみ動作が発生する場合、利用者にはその動作を中止 (キャンセル) する機会が与えられることになる。マウス又はタッチスクリーンを正確に使用することが困難な利用者は、この基本的な動きから大きなメリットを得ることができる。通常は、アイテムが押下されているときに視覚的なフィードバックを受け取る。間違ったアイテムを選択していることがわかった場合は、ポインタまたは指を離す前に、ターゲットから動かすことで操作をキャンセルすることができる。

ドラッグ アンド ドロップのような、より複雑なインタラクションの場合、ダウンイベント及びアップイベントは、プロセス完遂のための一連のアクションを、開始及び終了する。例えば、ドラッグ アンド ドロップの場合、アイテムは次のようになる。

  1. 押下 (ダウンイベント) で選択され、
  2. 押下されたままの状態で新しい場所に移動し、そして
  3. 離される (アップイベント) ことでドロップアクションが完了する。

このような複雑なアクションでは、中止又は元に戻す機能の必要性が高まる。設計者は、確認ダイアログや「元に戻す」ボタンなどを実装することを選択して、完了したプロセスを利用者が元に戻せるようにすることができる。もしくは、上記のステップ 3 の完了前に、選択されたアイテムを利用者が元の場所に戻し、そこでプロセスを終了する場合に、アクションを中止する機能を実装することもできる。画面の他の部分でアイテムの移動を受け入れない箇所がある場合、利用者はそこでドラッグ アンド ドロップを終了することができ、事実上操作を無効にできる。

アップイベントで反転する

別のインタラクションでは、ダウインイベントは、アップイベントが完了したときに反転できる動作をトリガーしてもよい。この例としては、利用者がオブジェクトを押下した (ダウンイベント) ときに一時的なポップアップが表示され (又は動画が再生され)、利用者がポインタを離す (アップイベント) と同時にポップアップ (又は動画) が消えるなどの長押し動作が含まれる。アップイベントが先行するダウンイベントを反転するので、利用者は以前の状態に戻り、事実上操作をキャンセルしている。

ダウンイベント

ダウンイベントによって機能を完了させることは、アップイベントを使用しないことが必要不可欠な場合にのみ許容される。

必要不可欠なダウンイベントの動作で最も一般的なものは、キーボードのエミュレーションで発生する。物理キーボードでは、デフォルトではキーがダウンイベントで動作し、キーが押されると文字が表示される。ソフトウェアによるキーボードエミュレーターが、キーを離したときに文字を表示することによって、この期待される動作を上書きしようとした場合、その動きは予期しないものであり、期待されるインタラクションに対して悪影響を与えるであろう。

キーボードには、内蔵の Backspace 又は Delete ボタンがあり、これは事実上元に戻すオプションが提供されていることに留意されたい。元に戻せることは、ダウンイベントが必要不可欠な例外において必須要件ではない。しかし、この達成基準の要件ではないとしても、利用者が任意のアクションを元に戻す簡単な方法を提供することは、推奨される実装である (そして機能的に必要かもしれない)。

ある動作のタイミングが必要不可欠であり、かつダウンイベントを必要とする別の例としては、以下が挙げられる:

  • オンスクリーンのピアノ鍵盤の演奏時など、物理的な押下トリガーをエミュレートするアクティビティ。アップイベントでの動作は、望ましい動作を大幅に変更するだろう。
  • 「アップ」イベントを待つスキートを射撃するプログラムは、動作に必要な正確なタイミングを無効にするだろう。

メリット

事例

関連リソース

リソースは、情報提供のみを目的としており、推奨を意味するものではない。

達成方法

この節にある番号付きの各項目は、WCAG ワーキンググループがこの達成基準を満たすのに十分であると判断する達成方法、又は複数の達成方法の組み合わせを表している。しかしながら、必ずしもこれらの達成方法を用いる必要はない。その他の達成方法についての詳細は、WCAG 達成基準の達成方法を理解するの「その他の達成方法」を参照のこと。

十分な達成方法

参考達成方法

適合のために必須ではないが、コンテンツをよりアクセシブルにするために、次の追加の達成方法を検討することが望ましい。ただし、すべての状況において、すべての達成方法が使用可能、又は効果的であるとは限らない。

失敗例

以下に挙げるものは、WCAG ワーキンググループが達成基準の失敗例とみなした、よくある間違いである。

重要な用語

ダウンイベント (down-event)

new

ポインタのトリガが押された時に生じるプラットフォームイベント。

ダウンイベントは、プラットフォームによっては「タッチスタート」や「マウスダウン」などの異なる名称で呼ばれる場合がある。

必要不可欠 (essential)

もし取り除いてしまうと、コンテンツの情報あるいは機能を根本的に変えてしまい、かつ、適合する他の方法では情報及び機能を実現できない。

機能 (functionality)

利用者の操作により実現可能なプロセス及び結果。

メカニズム (mechanism)

結果を得るためのプロセス又は手法。

注記

メカニズムは、コンテンツ内で明示的に提供されることもあれば、プラットフォーム又は支援技術を含むユーザエージェントで提供されるものに依存することもある。

注記

メカニズムは、宣言する適合レベルのすべての達成基準を満たさなければならない。

シングルポインタ (single pointer)

new

シングルタップやクリック、ダブルタップやクリック、長押し及びパスを基点としたジェスチャを含む、画面と 1 つの接点で動作するポインタ入力

アップイベント (up-event)

new

ポインタのトリガ刺激が解除されたときに生じるプラットフォームイベント。

アップイベントは、プラットフォームによっては「タッチエンド」や「マウスアップ」などの異なる名称で呼ばれている場合がある。