---
name: "caption_accessibility"
description: "Produce and QA accessible video captions and subtitles: accuracy standards, timing and reading-speed rules, SDH conventions (speaker ID, sound effects, music), SRT/WebVTT authoring, and cleaning up auto-generated captions. Use when captioning a video, auditing an existing caption track, or fixing platform auto-captions."
---

# Purpose

Turn video audio into captions a deaf or hard-of-hearing viewer can fully follow, and audit existing caption files against professional timing and layout standards. The skill covers the words, the non-speech audio, the timing, and the file format.

# Workflow

1. **Decide the track type.** SDH (same language, includes speaker ID and non-speech audio) for accessibility compliance; translation subtitles (dialogue only) when the brief is localization. Default to SDH unless told otherwise.
2. **Transcribe verbatim.** Caption what is actually said, including slang, stutters, and false starts. Do not paraphrase. Check every proper noun against a primary source.
3. **Add the non-speech layer.** Speaker labels where the speaker is not visible, sound effects that matter to the story in brackets, music marked or lyric-captioned if plot-relevant, audience reaction that changes meaning. Cut sounds that add nothing.
4. **Time the cues.** Each cue starts when the speech or sound starts and ends when it stops. Keep each event between 0.833s and 7s, 42 characters or fewer per line, 2 lines maximum, reading speed at or under 17 chars/sec (13 for children's content). See references/standards.md for the full numbers from FCC, WCAG, Netflix, and DCMP.
5. **Run the linter.** `python3 bin/caption-lint.py captions.srt` (or `.vtt`). Fix every error; resolve or justify every warning.
6. **Spot-check with sound off.** Watch the video once reading only the captions. If the story holds together, the track ships.

# Output Contract

- The deliverable is a caption file (SRT for editors/players, WebVTT for web embedding; see references/format-cheatsheet.md) plus a lint report with zero errors.
- If a warning cannot be resolved (e.g. a legal requirement to keep a long quote on one cue), note it next to the cue with the reason.

# Operating Rules

1. Every factual claim in standards numbers (durations, line limits, wpm/cps, criterion numbers) comes from references/standards.md, which cites primary sources. If a number is not there, do not invent it.
2. Verbatim first. Edit dialogue only when the reading rate forces it, and keep meaning, content, and essential vocabulary. Never censor.
3. No overlapping cues. No cue under 0.833s (flashing) or over 7s (fatigue) unless a standard explicitly allows the exception.
4. Never let raw auto captions ship as the accessibility track. They always need the cleanup pass in references/auto-caption-cleanup.md.
5. SDH conventions (speaker ID, brackets, italics rules) follow references/sdh-conventions.md, sourced from the DCMP Captioning Key.
