- Success Criterion 2.5.1
- Conformance level A
Gesture-Based Unlock Pattern Where a Simpler Input Would Work
2.5.1 — Pointer Gestures
Scenario
Setting
A webinar platform's registration form
What’s wrong
Signature/gesture unlock patterns where the *function* isn't essential to be path-based.
Example
<canvas id="confirmPad"></canvas>
confirmPad.addEventListener('pointerup', () => {
// registration only unlocks once a checkmark shape is drawn on the pad
if (matchesCheckmarkPath(strokePoints)) enableSubmit();
}); Why it matters
Confirming attendance shouldn't require freehand drawing when a plain checkbox records the same yes-or-no answer.
How to test
Check whether a gesture-based unlock/signature pattern is genuinely essential to the function (e.g., an actual signature) or just used for an ordinary action that could be a button: the latter fails.
How to fix
Reserve gesture input for tasks where the gesture itself is the point, such as a real signature.
<label><input type="checkbox" id="agree" onchange="enableSubmit()"> I agree to the terms</label> Outcome
A registrant checks one box and the submit button unlocks right away.
Who is affected
People with tremor, limited hand precision, or anyone using a switch or head-pointer device.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Feature Requiring a Swipe Gesture With No Tap Alternative
- Swipe-Only Carousel With No Next or Previous Button
- Map or Image Zoomable Only by Pinch Gesture
- Two-Finger Gesture Required With No Single-Pointer Option
- Pull-to-Refresh as the Only Way to Refresh Content
- Swipe-to-Delete Action With No Tap-Based Alternative