# Prerecorded videos have synchronized captions

- **Pattern:** `ab-000102` (`accessibility-wcag.perceivable.video-captions`)
- **Severity:** high
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-000102
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-000102)

## Why it matters

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.

## Severity rationale

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.

## Remediation

Supply a WebVTT caption file for every prerecorded video. Attach it with `<track kind="captions">` and set `default` so it loads automatically.

```tsx
<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/`.

## Detection

- **ID:** `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:

  ```tsx
  <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.

## External references

- wcag 1.2.2
- section-508 503.4

Taxons: accessibility

HTML version: https://auditbuffet.com/patterns/ab-000102
