- Success Criterion 2.5.2
- Conformance level A
Press-to-Trigger Control Where Release Confirmation Was Possible
2.5.2 — Pointer Cancellation
Scenario
Setting
An online marketplace's seller dashboard
What’s wrong
Game-style controls in general UI triggering on press where up-event completion was feasible and function isn't down-essential (keyboard emulation exception misapplied).
Example
boostBtn.addEventListener('mousedown', () => {
chargeSellerAccount(boostFee); // billed before the click even completes
}); Why it matters
A seller who presses the boost button to see the price tooltip gets billed before deciding to buy anything.
How to test
Check any control that mimics game-style press-to-trigger behavior in ordinary UI: if the up-event completion was feasible but wasn't used, it fails.
How to fix
Reserve press-triggered firing for genuine game controls; billing actions need release-based confirmation.
boostBtn.addEventListener('click', () => {
confirmAndCharge(boostFee);
}); Outcome
A seller can press and hold to preview the fee, then release away from the button to back out.
Who is affected
Users with tremor, and anyone relying on a pointer device that registers a single press as a longer or doubled one.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Action That Fires the Instant the Pointer Goes Down
- Button Firing on Touchstart Instead of Release
- Drag Interaction That Commits With No Way to Cancel
- Menu That Opens and Selects on the Same Press-and-Drag
- Destructive Action Firing on Press With No Way to Abort
- Custom Gesture That Commits Mid-Motion Instead of on Release