A caption is not a subtitle — a subtitle translates dialogue for someone who doesn't understand the language, while a caption is built for deaf and hard-of-hearing viewers and also identifies who's speaking and what sounds occur ([phone ringing], [applause]).
In HTML this is `<track kind="captions" src="..." srclang="en">` nested inside `<video>`, pointing at a WebVTT file. Captions on prerecorded video are a baseline WCAG requirement (1.2.2); real-time captions on live broadcasts are required at a higher level.
As a side effect, captions make video watchable anywhere sound can't be turned on — a subway car, an open office — which is exactly why so much social video autoplays muted by default.
The demo syncs caption lines to a playback progress bar, cycling through dialogue and a non-speech cue like [applause] in order.
When to use
Attach a caption file to every prerecorded video you ship, by default. Auto-generated captions still need human review to fix typos and misrecognitions.