2.5.2 Pointer Cancellation
Level A · added in WCAG 2.1
Single-pointer actions should run on the up-event, when you lift your finger or release the mouse button. That way you can slide off a control to cancel a press you didn't mean to make.
Who it helps
People with tremors, limited dexterity or low vision often press the wrong control by accident. When actions wait for the release, they can move away and cancel. It also helps anyone who taps the wrong item on a crowded touch screen.
How to meet it
- Use the click event, which fires on release, instead of mousedown, pointerdown or touchstart.
- Use native button and a elements, which already activate on the up-event.
- If an action must start on the down-event, let people abort it before it completes or undo it afterward.
- Up reversal is also allowed: a press-and-hold popup that closes when you release passes.
- Essential exception: actions that must happen on press, like an on-screen piano key or a keyboard key emulation, are exempt.
Examples
<button type="button" onpointerdown="deleteMessage()">
Delete message
</button><button type="button" onclick="deleteMessage()">
Delete message
</button>Can a scanner detect this?
No
axe-core has no rule for this criterion. Event handlers are often attached in scripts, and a tool cannot tell whether a down-event action can be aborted or undone. You need to press each control, slide off before releasing, and check that nothing happened.
No automated rule tests this criterion. Check it by hand.
Common mistakes
- Using touchstart or pointerdown for menu and button actions to make them feel faster.
- Starting a drag-and-drop on press and dropping the item wherever the pointer is released, with no way to cancel.
- Submitting a form on mousedown of a custom div button.
- Assuming this is about keyboard keys; it covers pointer input such as mouse, touch and pen.
Related criteria
Check your own page
See which automated WCAG checks your page fails, with the failing elements and how to fix them.
Reviewed November 2, 2026