2.5.2 Pointer Cancellation (A)

Success Criterion 2.5.2 Pointer Cancellation (Level A):

For functionality that can be operated using a single pointer, at least one of the following is true:

  • No Down-Event: The down-event of the pointer is not used to execute any part of the function;
  • Abort or Undo: Completion of the function is on the up-event, and a mechanism is available to abort the function before completion or to undo the function after completion;
  • Up Reversal: The up-event reverses any outcome of the preceding down-event;
  • Essential: Completing the function on the down-event is essential.

Note: Functions that emulate a keyboard or numeric keypad key press are considered essential.

This requirement applies to web content that interprets pointer actions (i.e. this does not apply to actions that are required to operate the user agent or assistive technology).

Intent:

People with various disabilities (as well as those without) can accidentally click or tap things. This success criterion is designed to allow users to prevent or undo any accidental actions.

Exceptions:

When activation on the down-event is essential to the purpose of the page, then an exception can be made. Examples of essential down-event functions include:

  • Onscreen keyboard emulation - keys activate on the down event (and keyboards have backspace or delete buttons).
  • Piano applications: piano keys play on the down event.

Who it helps:

  • People with cognitive, motor, or visual disabilities will find it easier to fix mistakes.
  • All users benefit from “undo” functionality.

“I went to hit the "Mute" button and accidentally touched the "End Call" button instead. It hung up immediately.”
- Politician with motor disabilities and low vision

Example: Acceptable down-event

A button activates while a user touches it, and deactivates when the user moves away or lifts their finger.

The image above is an example of when activation on the down-event is acceptable. The button becomes active on the down-event when the user touches it, deactivates again when the user moves their finger.