Pointer gestures have single-pointer alternatives
Why it matters
Pinch-to-zoom, two-finger swipe, or multi-touch gesture controls exclude users with one functional hand, tremor, or other conditions that prevent multi-pointer input. WCAG 2.2 SC 2.5.1 (Pointer Gestures) is a Level A requirement: all functionality that uses multipoint or path-based gestures must also be operable with a single pointer using no path constraint. An image gallery that requires pinch-to-zoom with no zoom buttons cannot be used with one finger.
Severity rationale
Low because multi-pointer gesture requirements are limited to specific UI components rather than the whole interface, but wherever they occur they create a hard exclusion violating WCAG 2.2 SC 2.5.1 at Level A.
Remediation
For every multi-pointer gesture, provide single-pointer button controls that perform the same action.
// Image viewer with single-pointer zoom buttons alongside pinch-to-zoom
export function ImageViewer({ src }: { src: string }) {
const [scale, setScale] = useState(1)
return (
<div>
<div className="flex gap-2 mb-2">
<button onClick={() => setScale(s => Math.max(1, s - 0.25))} aria-label="Zoom out">
−
</button>
<button onClick={() => setScale(s => Math.min(4, s + 0.25))} aria-label="Zoom in">
+
</button>
<button onClick={() => setScale(1)} aria-label="Reset zoom">
Reset
</button>
</div>
<img
src={src}
style={{ transform: `scale(${scale})`, transformOrigin: 'top left' }}
alt=""
/>
</div>
)
}
For swipeable carousels, add previous/next buttons. For map panning, add directional controls. The pointer gesture can remain — it just cannot be the only way.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Accessibility WCAG Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- wcag:2.2 · 2.5.1 — Pointer Gestures
- section-508:2018-refresh · 407.6 — Operation of Mechanical Controls
Taxons
History
- 2026-04-18·v1.0.0·Initial import from accessibility-wcag·automated