WCAG 2.1 · Level A · Operable
WCAG 2.5.2 — Pointer Cancellation, explained with examples
For functionality operated using a single pointer, completion of the action must occur on the up-event, not the down-event. Users with motor impairments may press accidentally. The ability to drag away before release prevents accidental commits.
- Number
- 2.5.2
- Level
- A
- Principle
- Operable
- Guideline
- 2.5 Input Modalities
Why this criterion exists
Users with motor impairments may press accidentally. The ability to drag away before release prevents accidental commits.
If you only remember one thing: for functionality operated using a single pointer, completion of the action must occur on the up-event, not the down-event. Everything else on this page is detail.
Who feels it when this fails
Accessibility criteria sometimes feel abstract until you see who pays the cost when a site ignores them. Pointer Cancellation affects:
Motor accessibility
Tremor users
How sites typically fail it
These are the patterns we see week after week. None are intentional — they are accidents of how teams build interfaces under deadline. Knowing the failure modes is the fastest path to writing them out of your component library.
Buttons firing on mousedown
Touch handlers committing on touchstart
How to test for it
Press a button, drag away before releasing; nothing should happen.
Automated scanners catch this criterion most of the time, but never all of the time. Manual testing with the keyboard and a screen reader closes the gap.
A code fix you can copy
click fires on the up event after a successful press-and-release inside the element. mousedown fires on press alone.
The problem
el.addEventListener('mousedown', submit);The fix
el.addEventListener('click', submit);click fires on the up event after a successful press-and-release inside the element. mousedown fires on press alone.
Other Operable criteria
Find every accessibility issue on your site in 60 seconds.
Free public scan. No card. AI-generated fixes for every issue we find.