Uncaptioned video permanently excludes deaf and hard-of-hearing users and anyone in a sound-restricted environment. WCAG 2.2 SC 1.2.2 (Captions — Prerecorded) is a Level A requirement covering all prerecorded video with audio. Section 508 2018 Refresh explicitly requires synchronized captions. Auto-generated captions from YouTube or Vimeo average 80% accuracy and fail the WCAG requirement of being 'accurate' — they are not a compliant substitute without human review.
High because uncaptioned video creates a complete content exclusion for deaf users and violates WCAG 2.2 SC 1.2.2 at Level A, with Section 508 compliance implications for any federally connected product.
Supply a WebVTT caption file for every prerecorded video. Attach it with <track kind="captions"> and set default so it loads automatically.
<video controls>
<source src="/tutorial.mp4" type="video/mp4" />
<track
kind="captions"
src="/captions/tutorial-en.vtt"
srclang="en"
label="English captions"
default
/>
</video>
For YouTube embeds, verify captions are enabled and human-reviewed — auto-generated captions do not satisfy WCAG 2.2 SC 1.2.2. For important content, commission a professional captioning service. Store .vtt files alongside your video assets and reference them from public/captions/.
ID: accessibility-wcag.perceivable.video-captions
Severity: high
What to look for: Enumerate every relevant item. Look for <video>, <iframe> (YouTube, Vimeo), or video embeds. Check for <track kind="captions"> elements or references to external caption files (VTT, SRT). Verify captions include dialogue and relevant non-speech sounds (e.g., [door slams], [music plays]).
Pass criteria: At least 1 of the following conditions is met. All prerecorded videos have synchronized captions that are accurate, complete, and include non-speech sounds.
Fail criteria: Videos lack captions, or captions are incomplete (missing dialogue or non-speech sounds).
Skip (N/A) when: The project contains no videos.
Cross-reference: For user-facing accessibility and compliance, the Accessibility Basics audit covers foundational requirements.
Detail on fail: Example: "Tutorial video in /docs lacks captions. YouTube embed on pricing page has auto-generated captions only (not accurate)"
Remediation: Add captions to video elements using the HTML5 track element:
<video controls>
<source src="/video.mp4" type="video/mp4" />
<track kind="captions" src="/captions.vtt" srclang="en" label="English" />
</video>
For YouTube videos, enable captions and verify accuracy. Use professional captioning services for important content.