Activation events are not triggered when touch is removed from a control

From Mobile Accessibility Task Force

Applicability

Any technology that supports pointer input (e.g. supporting any or all of the following: mouse pointer, touch on touch screen or trackpad, stylus input, or laser pointer input).

WCAG References

  • 2.5.2 Pointer Cancellation

User Agent and Assistive Technology Support Notes

On touch screen devices, author-supplied path-based and multipoint gestures usually do not work when OS level assistive technologies (AT) like a built-in screen reader is turned on. AT generally consumes path-based or multipoint gestures so they would not reach the authored content. For example, a horizontal drag gesture may not move a slider thumb as intended by the author, but move the screen reader focus to the next or previous element. Some gestures may work if the user operates "pass through gestures" which are often unreliable as they may depend on factors of hardware, operating system, operating system "skin", operating system setting, or user agent.

Description

The objective of this technique is to ensure that users who attempt to interact with a control do not trigger the action of the event accidentally. This can be accomplished most directly by relying on the “pointer up” event. This allows users interacting with touch screens to utilize the screen as support to stabilize the activation target. Another approach would be to activate on the “pointer down” event, but if the “pointer up” event occurs outside of the control, to immediately undo the action.

Example s

An Editable Text box could have the cursor enter the editable area on the “pointer down” event, because the action is trivially reversible, any text is easy to delete. However, a Submit button would need to either provide a confirmation dialogue or have its event occur on the “pointer up” event. A key on a keyboard application could respond on the “pointer down” event because such behavior would be considered essential for that control.

Tests

Procedure

  1. Find all clickable controls with actions that are irreversible. If this is the case:
  2. Check if the action is triggers on the up event
  3. Check if the action triggers a confirmation dialogue
  4. Check if the nature of the action relies on being triggered on the “pointer down” event.

Expected Results

  1. If #1 is true, at least one of option #2, #3, or #4 is true.