適用 (対象)
この達成方法は、ほぼ全ての技術に適用される。
これは達成基準 2.5.2: ポインタのキャンセル (十分な達成方法) に関する達成方法である。
解説
この達成方法の目的は、あるコントロールとインタラクションしようとする利用者が、イベントの動作を誤ってトリガーしないようにすることである。これは、ポインタのアップイベント (例えば、onclick 又は mouseup イベント) に頼ることで最も直接的に達成できる。
この達成基準を満たす最も簡単な方法は、コントロールのデフォルトの動作を使用し、明示的なダウンイベントのトリガーによってその動作を上書きしないことである。アップイベントは、ほとんどすべてのコントロール及び、あらゆるプログラミング言語又はマークアップ言語の、デフォルトの動作である。
ネイティブ言語では、ダウンイベントでコントロールが発火するのは、通常は正当な理由があり、かつ簡単に回復することができる。例えば、HTML の input 要素では、「ポインタダウン」イベントによってカーソルが編集可能な領域に入るようにすることができる。というのも、その動作は容易に可逆的であり、ポインタのキャンセルの達成基準の要件を満たすからである。なぜならこれは、利用者がコントロールを押下した後にミスをしたことに気付いた場合、ポインタを押下したままポインタをヒット領域から遠ざけるだけで、ポインタを離してもイベントがトリガーされないためである。
事例
例 1: JavaScript でネイティブの onclick イベントを使用する
JavaScript で、ネイティブの onclick イベントは、デフォルトでアップイベントによってトリガーされる。
例 2: HTML でネイティブのボタン又はリンクを使用する
HTML ネイティブの <button>
又は <a href ....>
では、onclick イベントはデフォルトでアップイベントによってトリガーされる。
<button>
要素は、それ自身では何も行わない (<form>
の一部で、かつ type="button"
ではない、つまりフォームを送信する場合は除く)。その場合コンテンツ制作者は、入力に依存しないクリックハンドラに頼るべきである。
例 3: iOS 又は Android でネイティブのボタンを使用する
iOS 及び Android のネイティブのボタンでは、onclick イベントはデフォルトでアップイベントによってトリガーされる。
WCAG 自体は 単一の URL のあるウェブページに適用されるものであり、この例はネイティブアプリケーションにおいて WCAG2ICT を実装しようとしている人に役立つ補足的なアドバイスとして提供されている。
参考リソース
この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。
検証
手順
全てのクリック可能なコントロールにおいて:
- ダウンイベントを発動させた後、アップイベントをトリガーさせる前にポインタをターゲットの外に移動させ、その後ポインタを離してアップイベントをトリガーさせる。
- ターゲットのヒット領域外でポインタが離されたとき、動作がトリガーされないことを確認する。
- 動作がトリガーされる場合は、その動作が反転可能であることを確認する。
期待される結果
- 2. 又は 3. の結果が真である。