No auto-playing audio or video without controls
Why it matters
Audio that starts without user interaction collides with screen reader speech, rendering the page unusable for blind users until they locate and stop the media — and vestibular users, users on metered connections, and anyone in a quiet shared space are impacted too. This violates WCAG 2.2 SC 1.4.2 (Audio Control) and SC 2.2.2 (Pause, Stop, Hide), plus Section 508 refresh 415.1. Browsers already block autoplay-with-sound by default in most contexts, so shipping it means the hero video either fails silently on Chrome/Safari or blasts audio on the few engines that still honor it.
Severity rationale
Low because modern browsers block autoplay audio by default, limiting real-world impact, but it still fails WCAG and 508.
Remediation
Add muted alongside autoPlay for any hero or background video, and expose controls so users can pause. Never call .play() on an <audio> element during mount without an explicit user gesture. Example in src/components/Hero.tsx:
<video autoPlay muted loop playsInline controls src="/hero.mp4" />
For decorative background video, muted loop playsInline is the minimum; drop autoPlay entirely if the motion is not essential to the content.
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 · 1.4.2 — Audio Control
- wcag:2.2 · 2.2.2 — Pause, Stop, Hide
- section-508:2018-refresh · 415.1 — Caption Controls (media player)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from accessibility-fundamentals·automated