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;
Completing the function on the down-event is essential.
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).
User interface controls should use up event for the activation. Up event is nothing pointer release but not pointer press down. All the users including people with disabilities use pointers to interact with the controls. The pointers could be mouse, touch, stylus and so on..
While interacting with the controls, at times users may accidentally click or touch a button or target location which triggers an unwanted action. This may happen more frequently to people with tremors, mobility impairments, or cognitive disabilities. Let us look into this with few examples.
- Person with hand tremors touches on the end call button in the web conferencing platform instead of mute button and as a result, the call gets disconnected
- Person with motor impaired touches on the submit button in the assignment form instead of cancel button and as a result, the assignment gets submitted
- Person with cognitive disability clicks on the close dialog element of the partially filled form and as a result, the form gets closed without saving the data
Therefore, it is essential that all users have a way to prevent or undo these unintended actions. If the system is not allowing to undo or prevent unintended actions that are caused by user mistake then it is going to create huge problem to people with disabilities.
WCAG 2.1 introduces new check point called 2.5.2 pointer cancellation”” to address mentioned problem. This success criterion emphasizes on the four things. They are;
- No down-event: controls are not supposed to activate the functionality with the down event. Ex: when user touches on the end call button by mistake instead of mute button then he/she can slide off the finger to cancel the action. On the similar lines, when the user touches the submit button instead of cancel button and he/she can slide off the finger from the target location and release the finger to cancel the action
- abort or undo: there should be mechanism provided to abort or undo the action. Ex: when user clicks on the close dialog element of the partially filled form then system should be able to throw confirmation message like do you want to save the data to undo the action.
- up reversal: up-event should reverse the functionality of down-event. Ex: when user press-and-hold the element with the pointer then it opens the popup. However, the popup should be dismissed as soon as user releases the pointer/up-event activation
- essential: it is essential to use down-events to activate few functionalities and this checkpoint is an exception for such activities. Ex: when the user is entering the data with on screen keyboard then data is going to be entered with the key press down but not key up event. On the similar lines, when user is playing on-screen piano keyboard then the keys get activated with down-event only.
If author follows the above 4 mentioned points then issues with the pointer are going to be taken care.
Complementary info on the 2.5.2: Pointer Cancellation
Pointer cancellation checkpoint does not apply to actions that are required to operate the user agent or assistive technology and this checkpoint applies to author supplied web content only. Pointer cancellation checkpoint should be taken care even for the complex actions such as drag and drop. Even though there are series of the actions present(pressing down the pointer, drag the pointer, release the pointer) in the drag and drop, users should be able to abort the action before completion or undo the action after the completion.
understanding 2.5.2: Pointer Cancellation