Closed captions and subtitles
Requirements for Closed Captions/SDH, Full Subtitles, and Forced Narrative Subtitles.
Overview
Roku supports three types of text tracks: Closed Captions/SDH, Full Subtitles, and Forced Narrative Subtitles. They may look similar on screen, but each serves a different purpose and has its own delivery rules.
The Roku player displays only one text track at a time. As a result:
- Every CC/SDH or Full Subtitle track must contain a complete transcription or translation of all dialogue and on-screen text needed to understand the story. The player cannot display two text tracks together.
- Forced Narrative content must also be included in every CC/SDH or Full Subtitle track. Selecting one of those tracks hides the Forced Narrative track.
Closed captions must also comply with the external branding and calls to action requirements.
Track Types Compared
| Closed Captions / SDH | Full Subtitles | Forced Narrative Subtitles | |
|---|---|---|---|
| Purpose | Accessibility for deaf/hard-of-hearing viewers | Localization: translates dialogue and text for viewers who do not understand the audio language | Localization for specific moments unintelligible to the viewer (foreign-language snippets, unreadable on-screen text, inaudible audio) |
| Viewer toggle | Can be turned on/off | Can be turned on/off | Cannot be turned on/off; displays automatically |
| Language/audio pairing | Must match the language and locale of its companion audio track; unavailable if no matching-language audio track is delivered | Available regardless of which audio track(s) are delivered | Must match the language and locale of its companion audio track; automatically displays when the viewer selects that audio and it includes unintelligible content |
| Content included | Full transcription of dialogue + sound effects/music cues/lyrics + all forced narrative content | Full translation of narratively important dialogue/text; does not describe sound effects or music cues (song lyrics translated only if narratively important) | Only the specific unintelligible moments, rather than a full transcription |
| Regulatory | May be required by regulatory agencies in certain territories (for example, the FCC in the US and the CRTC in Canada) | - | - |
Forced Narrative Subtitles
Forced narratives translate or convey information the viewer would otherwise miss, including:
- Spoken dialogue in a language different from the viewer's selected audio track
- On-screen text in a language different from the viewer's selected audio track
- Inaudible or difficult-to-hear audio (e.g., noisy scenes, poor-quality recordings)
The forced narrative track is tied to the selected audio track. It is not a separate audio-language option. It covers dialogue or on-screen text in another language, as well as audio that is otherwise unintelligible.
When a viewer enables CC/SDH or Full Subtitles, the player hides the Forced Narrative track. CC/SDH and Full Subtitle tracks must include all forced narrative content so the viewer can still read that information.
Delivery Rules
- Forced narrative subtitles must match the language and locale of their companion audio track.
- Forced narrative subtitles must not be burned into (hardcoded onto) the video.
- Sidecar forced narrative subtitles must be timed to timecode hour
00:00:00:00. The Roku encoder does not honor timecode embedded in the video file. - Do not provide an empty file (a file with no text) as a sidecar forced narrative deliverable.
- Roku supports TTML and WebVTT positional data and places the text as defined in the file.
- Forced narrative content must also be included in every CC/SDH and Full Subtitle track (see above).
- Supported formats, text styling, language tagging, and file naming follow the same rules as Full Subtitles, subject to the companion audio language and locale matching requirement above.
Closed Captions / SDH
Also known as: subtitles for the deaf or hard of hearing (SDH), subtitles for the deaf and hard of hearing.
Roku strongly prefers closed captions/SDH for all content but does not require them for every delivery. The partner is responsible for determining whether captions are required for a specific delivery and its distribution territories. The regulatory information below is provided as a reference for that determination. Whenever captions are supplied, they must meet the format, synchronization, language, and other delivery requirements in this section.
Regulatory Requirements (US)
For US deliveries, partners can refer to the FCC closed captioning rules for Internet Video Programming when determining whether captions are required: https://www.fcc.gov/consumers/guides/captioning-internet-video-programming
- When the partner determines that FCC rules require captions for the delivery, the content must be delivered with CC/SDH, conformed and synced to the program.
- When the partner determines that the content is exempt from the requirement, the metadata must include a valid exemption code number.
Exemption codes:
| Code | Definition |
|---|---|
| 1 | The content has never aired on television in the United States. |
| 2 | The content has only aired on television in the United States without captions. |
| 3 | The content has not aired on television in the United States with captions since September 30, 2012. |
| 4 | The content does not consist of full-length video programming. |
| 5 | The content does not fall within a category of online programming that requires captions under FCC regulations (47 C.F.R. § 79.4(b)). |
| 6 | The FCC and/or U.S. Congress has granted an exemption from caption requirements for this content. |
Regulatory Requirements (Canada)
Beginning May 25, 2027, the Canadian Radio-television and Telecommunications Commission (CRTC) requires audio-visual online streaming services in Canada to provide closed captioning (Broadcasting Regulatory Policy CRTC 2026-98). The requirement covers English- and French-language programs, including new original programs, programs previously aired on Canadian linear television with captions, promotional and short-form content, and third-party content when the supplier makes captions available.
Because streaming services depend on supplier-delivered captions to meet this requirement, CC/SDH should be delivered for all content, including content intended for Canada. Captions should also meet the CRTC quality criteria:
- Accuracy: match the spoken dialogue with correct spelling, and convey non-speech information (background noise, music, other sounds), speaker identity, and manner of speaking
- Placement: do not cover action or visual elements needed to understand the content, do not overlap one another, and do not run off the edge of the screen
- Synchronization: coincide with the corresponding speech and sounds, and display at a speed viewers can read
- Completeness: run from the beginning to the end of the program
Other Territories
For deliveries to territories other than the US and Canada, the partner is responsible for determining whether the applicable territorial rules require captions for the delivery.
Delivery Method
When captions/SDH are supplied, they may be delivered as:
- EIA-608/CEA-708 embedded in-stream in the video file, or
- A sidecar caption/SDH file
Roku prefers a human-readable sidecar file (.ttml, .dfxp, .vtt, or .srt).
Delivery Rules
- Sidecar captions/SDH must be timed to timecode hour
00:00:00:00. The Roku encoder does not honor timecode embedded in the video file. - Do not provide an empty file (a file with no text) as a sidecar caption/SDH deliverable.
- Roku supports TTML and WebVTT positional data and places the text as defined in the file.
- When CC/SDH is supplied with a QuickTime video file, it must be delivered as a sidecar closed caption file. Roku does not support the QuickTime text track.
- Supported text styling is limited to bold (
<b>) and italic (<i>) tags, text color, and text positioning. The same rules apply to Full Subtitles; see Text Styling Support.
Supported Formats
| Format Name | Positional Data | Style Data | Extension | Encoding | Delivery Type | Languages |
|---|---|---|---|---|---|---|
| Timed Text Markup Language (TTML) | Y | Y | .ttml | UTF-8 | Sidecar | Follows audio language of video file or dub file |
| Web Video Text Track (WebVTT) | Y | Y | .vtt or .webvtt | UTF-8 | Sidecar | Follows audio language of video file or dub file |
| Distribution Format Exchange Profile (DFXP) | N | N | .dfxp | UTF-8 | Sidecar | Follows audio language of video file or dub file |
| EBU Subtitle Data Exchange Format (STL) | N | N | .stl | UTF-8 | Sidecar | Follows audio language of video file or dub file |
| SubRip Text (SRT) | N | N | .srt | UTF-8 | Sidecar | Follows audio language of video file or dub file |
| EIA-608/CEA-708 | N | N | n/a | n/a | Embedded in MPEG stream | Embedded in video file |
CC/SDH language: CC/SDH follows the language of the main or dub audio track it accompanies. Unlike Full Subtitles, it does not require a separate language-code declaration.
Legacy Format (supported, not preferred)
| Format Name | Positional Data | Style Data | Extension | Encoding | Delivery Type | Languages |
|---|---|---|---|---|---|---|
| N | N | .scc | ASCII | Sidecar | Follows audio language of video file or dub file |
Full Subtitles
If the audio is not in the primary language of the distribution territory, the delivery must include a dub, subtitles, or both in that territory's primary language. See Track Types Compared for the differences between text tracks.
Delivery Rules
- Subtitles must not be burned into (hardcoded onto) the video.
- Roku prefers a human-readable sidecar file (
.ttml,.dfxp,.vtt, or.srt). - Sidecar subtitles must be timed to timecode hour
00:00:00:00. The Roku encoder does not honor timecode embedded in the video file. - Do not provide an empty file (a file with no text) as a sidecar subtitle deliverable.
- Roku supports TTML and WebVTT positional data and places the text as defined in the file.
Text Styling Support
Closed Captions/SDH and Full Subtitles support the following text styling:
- Bold (
<b>) and italic (<i>) tags - Text color
- Text positioning
Supported Formats
| Format Name | Positional Data | Style Data | Extension | Encoding | Delivery Type | Languages |
|---|---|---|---|---|---|---|
| Timed Text Markup Language (TTML) | Y | Y | .ttml | UTF-8 | Sidecar | Must conform to a supported language code; include region code where possible |
| Web Video Text Track (WebVTT) | Y | Y | .vtt or .webvtt | UTF-8 | Sidecar | Must conform to a supported language code; include region code where possible |
| Distribution Format Exchange Profile (DFXP) | N | N | .dfxp | UTF-8 | Sidecar | Must conform to a supported language code; include region code where possible |
| EBU Subtitle Data Exchange Format (STL) | N | N | .stl | UTF-8 | Sidecar | Must conform to a supported language code; include region code where possible |
| SubRip Text (SRT) | N | N | .srt | UTF-8 | Sidecar | Must conform to a supported language code; include region code where possible |
Full Subtitle language: each Full Subtitle track has its own language tag. A title can have subtitle tracks in multiple languages, regardless of which audio tracks are delivered.
Glossary
| Term | Definition |
|---|---|
| SDH | Subtitles for the deaf or hard of hearing. In this specification, SDH and closed captions serve the same function. |
| EIA-608/CEA-708 | Broadcast caption standards embedded directly in the video stream (in-stream), as opposed to a sidecar file. |
| Forced narrative | A non-toggleable text track that displays only for specific unintelligible moments (foreign dialogue, unreadable text, inaudible audio) within the viewer's selected audio track. |
| Burned-in / hardcoded subtitles | Subtitle text permanently rendered into the video image itself, rather than delivered as a separate, toggleable track. Not permitted for Full Subtitles. |
| Conformed and synced | Captions that have been time-aligned and verified to match the final program cut exactly. |
| Positional data | Information within a caption/subtitle file specifying where on screen the text should appear, rather than defaulting to a fixed position. |
Updated about 5 hours ago