Codectionary / Developer documentation / HTML

<track>

The <track> element specifies timed text tracks for <video> or <audio> elements — most commonly subtitles or captions in WebVTT format. Multiple tracks can be provided for different languages, and the default attribute marks which one should be enabled automatically.

Syntax

<track src="captions.vtt" kind="subtitles" srclang="en" label="English">

Examples

Basic Captions

Adding English captions to a video.

<video controls>
  <source src="tutorial.mp4" type="video/mp4">
  <track src="captions-en.vtt" kind="captions" srclang="en" label="English" default>
</video>

Multiple Language Subtitles

Offering subtitle tracks in more than one language.

<video controls>
  <source src="movie.mp4" type="video/mp4">
  <track src="subs-en.vtt" kind="subtitles" srclang="en" label="English" default>
  <track src="subs-fr.vtt" kind="subtitles" srclang="fr" label="Français">
</video>

Chapter Markers

Using track for chapter navigation instead of captions.

<video controls>
  <source src="lecture.mp4" type="video/mp4">
  <track src="chapters.vtt" kind="chapters" srclang="en" label="Chapters">
</video>

Attributes

  • src (URL): The URL of the WebVTT track file
  • kind (subtitles | captions | chapters | descriptions): The type of timed text
  • srclang (string): The language of the track content, as a language code
  • label (string): A human-readable label shown in the track selection menu
  • default (boolean): Marks this track as enabled by default

Best practices

  • Always provide captions for video content with spoken dialogue — it is one of the most impactful accessibility improvements you can make
  • Use kind="captions" (which includes non-speech sounds) rather than kind="subtitles" when the audience may be deaf or hard of hearing, not just non-native speakers
  • Mark exactly one track as default per kind to avoid ambiguity
  • Test that your WebVTT files are valid — malformed timing syntax will silently fail to display

Browser compatibility

Support applies to the named feature, not every attribute or behaviour in this article. Versions refer to browsers, not operating systems.

<track>

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 31
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 31
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature · MDN reference

Support history and limitations

Chrome

  • From 23

Firefox

  • From 31

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25 · Doesn't work for fullscreen video.

Firefox for Android

  • From 31

Samsung Internet

  • From 1.5 · Doesn't work for fullscreen video.
<track> src

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 50
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 50
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 23

Firefox

  • From 50
  • From 31 · Removed in 50 · Last supported version: 49 · Partial implementation · Before Firefox 50, setting the src didn't work, though it didn't raise an error.

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25

Firefox for Android

  • From 50
  • From 31 · Removed in 50 · Last supported version: 49 · Partial implementation · Before Firefox for Android 50, setting the src didn't work, though it didn't raise an error.

Samsung Internet

  • From 1.5
<track> kind

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 31
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 31
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 23

Firefox

  • From 31

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25

Firefox for Android

  • From 31

Samsung Internet

  • From 1.5
<track> srclang

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 31
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 31
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 23

Firefox

  • From 31

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25

Firefox for Android

  • From 31

Samsung Internet

  • From 1.5
<track> label

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 31
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 31
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 23

Firefox

  • From 31

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25

Firefox for Android

  • From 31

Samsung Internet

  • From 1.5
<track> default

Desktop

Chrome
Supported
From 23
Firefox
Supported
From 31
Safari
Supported
From 6
Edge
Supported
From 12
Opera
Supported
From 12.1

Mobile

Safari on iOS
Supported
From 6
Chrome for Android
Supported
From 25
Firefox for Android
Supported
From 31
Samsung Internet
Supported
From 1.5

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 23

Firefox

  • From 31

Safari

  • From 6

Edge

  • From 12

Opera

  • From 12.1

Safari on iOS

  • From 6

Chrome for Android

  • From 25

Firefox for Android

  • From 31

Samsung Internet

  • From 1.5

MDN BCD 8.1.5 · Dataset built 2026-10-08 · Mapping reviewed 2026-10-21. These dates are not individual browser-test or claim-verification dates. Unknown means the data does not establish support.

HTML Living Standard

Specifications & further reading