Our Blog

Thoughts, news, insights and sometimes just random musings.
2 minutes reading time (459 words)

WCAG 2.5.2: Pointer Cancellation


Users with various disabilities and limitations may be more prone to accidentally initiating a function they didn't intend to when using their pointers. With that in mind, the fine folks at WCAG have suggested that, for functionality that's operated using a single pointer—such as single or double taps and clicks, long presses, or path-based gestures—one of the following is true:

  • No Down-Event
    • The function is not executed when the pointer's trigger stimulus is depressed. In other words, when someone presses down on the mouse button (or other such device) but before they release it.
  • Abort or Undo
    • The function is initiated with an up-event (think a normal click of the mouse or tap on a touch screen; the user presses down on the trigger stimulus and then releases it), and a mechanism is available to either abort the function or undo it after the user has selected it.
  • Up Reversal
    • If a function is initiated with a down-event, then the corresponding up-event reverses the function. For example, a transient pop-up may appear when the user presses down on a object, and then the pop-up disappears when the object is released.
  • Essential
    • The function is only initiated by a down-event in cases where it's absolutely necessary. In most cases, this comes up when someone is using a keyboard emulator.

Abort, Undo, and You!

Using generic platform activation or click events will help reduce the issue of users mistakenly selecting the wrong object. The "click" event in JavaScript is an example of this. It is an implicit up-event, and it works regardless of what device the user is using to manipulate the pointer.

It'll be easier and more accessible for users to undo or cancel an action if that function is activated with an up-event. The standard mouse click or finger tap has a built-in method for cancelling the action. If a user presses down on an object, and then realizes they selected the wrong thing, they can move the pointer away from the object and then release it, stopping the function from initiating.

The abort and undo functions become even more crucial with complex functions. Drag-and-drop, for instance, involves multiple actions, including both down and up-events, thus increasing the chance of user error. First, a user presses down on an object (the down-event), then moves the object to the necessary location, and finally releases it to complete the function (the up-event). In such a situation, it might be a good idea to ask users to confirm the move through a dialog box or include an undo button. Users may also be able to effectively cancel the function by moving the object back to its original location or to someplace on the screen that disallows a move before releasing it.