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

JavaScript
el.addEventListener('mousedown', submit);

The fix

JavaScript
el.addEventListener('click', submit);

click fires on the up event after a successful press-and-release inside the element. mousedown fires on press alone.

Frequently asked questions

Does 2.5.2 apply to touch events?

Yes. Touchstart and pointerdown are the touch equivalents of mousedown — they fire on contact, before release. Committing an action on touchstart prevents cancellation by dragging away before lifting the finger. Use the click event for touch too (it maps to touchend with a small delay to handle gestures) or use pointerup explicitly. Avoid touchstart and mousedown for destructive or irreversible actions.

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.