Device and app evidence

Check WebVTT captions in a browser video player

Validate an authorized browser player’s WebVTT track, network response, caption selection and cue timings in that order.

Start with a short cue you can see

For a browser player you control, use a simple local video and WebVTT track. The track file begins with WEBVTT, followed by a blank line before the first cue. A short test cue can run from 00:00:02.000 to 00:00:05.000. Put a visible phrase on the next line and compare it to the video timeline. This isolates formatting and track selection before you test a longer set of captions.

Publish it with the text/vtt media type. Use a descriptive label and language on the HTML track element. A captions kind conveys a different purpose from subtitles or chapters. Check that the browser actually offers the track in its player or application menu.

Four checks for a track that never appears

LayerLook for
ResourceThe track URL returns the intended file, rather than HTML or an expired response.
Browser policyThe track can load on the document origin or through the site’s deliberately configured cross-origin setup.
FormatUTF-8, WEBVTT signature, blank separators and well-formed start and end timestamps.
PlaybackThe correct language or track is selected and a cue overlaps the current playback position.

Separate timing from visibility

If the browser offers the track but nothing appears, pause at a time inside a known cue. If it shows a simple test phrase and the full file still fails, compare the encoding and cue boundaries. If all captions appear too late, compare the caption file to the exact video cut. A track from a version with a different opening or edit can be perfectly valid and still be out of sync.

If the same caption works on a desktop browser and disappears on a Cast receiver or TV app, test the receiver’s own caption controls and its supported track format. Keep the working browser result with the report.

Sources and further reading