2.5.2
Pointer Cancellation

Reduce accidental activation of controls by mouse or touch interactions

For actions that are triggered by a single pointer, ensure that users can easily cancel or undo unintended actions. This is important for preventing mistakes and ensuring that users can recover from accidental inputs. Functions should not rely solely on the initial pointer press to execute actions.

Acceptance Criteria

For functionality operated by a single pointer, at least one of the following must be true:

No Down-Event: The action is not executed until the pointer is released.

Abort or Undo: The function is completed on the up-event, and users have a way to cancel the action before completion or undo it afterward.

Up Reversal: The up-event reverses any outcome of the preceding down-event.

Essential: The function requires completion on the down-event due to its nature (e.g., emulating a keyboard key press).

Examples

No Down-Event: A button only performs its action when the user releases the click, not when the mouse is initially pressed down.

Abort or Undo: While dragging an item to a shopping cart, users can cancel the drag action before releasing the mouse, or undo the addition if they release the item incorrectly.

Up Reversal: A slider adjusts its value on mouse release, allowing users to correct their input if they drag too far.

Exceptions

• Functions that emulate keyboard or numeric keypad key presses are considered essential and may not need to follow these criteria.

Tips

• Implement clear visual feedback to indicate that an action can be canceled or undone.

• Provide a straightforward way to reverse actions, such as an “Undo” button, if applicable.

• Consider users who may have difficulty with fine motor control and ensure that critical functions have predictable and forgiving interactions.

How to test?

• Test interactions with elements that use single-pointer actions to confirm you can cancel or undo unintended actions.

• Verify that functions do not execute on the down-event alone but wait for the up-event or provide ways to abort.

• Check that essential functions that must complete on the down-event are clearly defined and necessary for the action.