ネイティブコントロールを使用して、アップイベントで機能がトリガーされるようにする

達成方法に関する重要な情報

これらの達成方法 (参考) の使用法及び、それらが WCAG 2.1 達成基準 (規定) とどのように関係するかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) セクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法があるからといって、WCAG 2.1 を満たすコンテンツを作成する際に、常にその技術が使用可能であるわけではない。

適用 (対象)

この達成方法は、ほぼ全ての技術に適用される。

これは達成基準 2.5.2: ポインタのキャンセル (十分な達成方法) に関する達成方法である。

解説

この達成方法の目的は、あるコントロールとインタラクションしようとする利用者が、イベントの動作を誤ってトリガーしないようにすることである。これは、ポインタのアップイベント (例えば、onclick 又は mouseup イベント) に頼ることで最も直接的に達成できる。

この成功基準を満たす最も簡単な方法は、コントロールのデフォルトの動作を使用し、明示的なダウンイベントのトリガーによってその動作を上書きしないことである。アップイベントは、ほとんどすべてのコントロール及び、あらゆるプログラミング言語又はマークアップ言語の、デフォルトの動作である。

ネイティブ言語では、ダウンイベントでコントロールが発火するのは、通常は正当な理由があり、かつ簡単に回復することができる。例えば、HTML の input 要素では、「ポインタダウン」イベントによってカーソルが編集可能な領域に入るようにすることができる。というのも、その動作は容易に可逆的であり、ポインタのキャンセルの達成基準の要件を満たすからである。なぜならこれは、利用者がコントロールを押下した後にミスをしたことに気付いた場合、ポインタを押下したままポインタをヒット領域から遠ざけるだけで、ポインタを離してもイベントがトリガーされないためである。

事例

例 1: JavaScript でネイティブの onclick イベントを使用する

JavaScript で、ネイティブの onclick イベントは、デフォルトでアップイベントによってトリガーされる。

例 3: iOS 又は Android でネイティブのボタンを使用する

iOS 及び Android のネイティブのボタンでは、onclick イベントはデフォルトでアップイベントによってトリガーされる。

注記

WCAG 自体は 単一の URL のあるウェブページに適用されるものであり、この例はネイティブアプリケーションにおいて WCAG2ICT を実装しようとしている人に役立つ補足的なアドバイスとして提供されている。

参考リソース

この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

検証

手順

全てのクリック可能なコントロールにおいて:

  1. ダウンイベントを発動させた後、アップイベントをトリガーさせる前にポインタをターゲットの外に移動させ、その後ポインタを離してアップイベントをトリガーさせる。
  2. ターゲットのヒット領域外でポインタが離されたとき、動作がトリガーされないことを確認する。
  3. 動作がトリガーされる場合は、その動作が反転可能であることを確認する。

期待される結果

  • 2. 又は 3. の結果が真である。