• 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