<track>の解説|クロノドライブのHTML5辞典

<track>

対応ブラウザ Chrome 23~ / Firefox 28.0~ / Internet Explorer 10~ / Opera 12.1~ / Safari 6~ / Android 4.4~ / iOS 7.0~
タグの分類 なし 含められるもの なし(空要素)
使える場所 <video>か<audio>の子要素として、代替コンテンツより前、<source>要素よりも後
用例 <video src="sample.mp4">
<track king="subtitles" src="sample.ja.vtt" srclang="ja" label="日本語" defaullt>
<track king="subtitles" src="sample.en.vtt" srclang="en" label="English">
</video>

<track>とは

「track」とは、動画や音声などのメディアファイルへ、再生位置に合わせたテキスト情報を付加するためのタグです。WebVTTやTTMLで書かれた外部のテキストトラックファイルにより、字幕やキャプション、チャプタータイトルやその他様々な情報を表すのに使います。

<track>要素は<audio>要素や<video>要素の子要素として、<source>要素よりも後、代替表示用の内容よりも前に記述されなければなりません。

src属性によって、テキストトラックファイルのURLを指定します。

kind属性によって、そのテキストトラックファイルの役割を指定します。kind属性は省略することができ、その場合は"subtitles"と同じ意味となります。
"subtitles"は翻訳字幕を表し、動画に重なって表示されます。
"captions"は同様に字幕を表しますが、こちらは音が出ない環境や音が聞こえない人などへ、どのような音声が流れているのかを示すために使われ、動画に重なって表示されます。
"descriptions"は動画の映像が不明瞭であったり見れない場合(例えば車の運転中で目を離していたり、目の見えない人など)に音声読み上げで内容を説明するために使われます。
"chapters"は再生時のナビゲーションのために使われ、たとえばブラウザがチャプターリストを表示し、ユーザが特定の位置(チャプター)からメディアを頭出し再生するのに使われます。
"metadata"はスクリプトから利用するために使われます。

srclang属性はテキストトラックの言語を表し、kind属性が"subtitles"(翻訳字幕)の場合には必須となります。日本語ならja、アメリカ英語ならen-USといった、IETF(BCP47)で定められた形式で指定する必要があります。

label属性はそのテキストトラックの表示名を表し、ブラウザが字幕などをリスト表示し、ユーザがどれを使うかを選べるようにする際に使われます。そのため、label属性の値を空の文字列("")にしたり、同じkind属性、同じsrclang属性で、同じlabel属性を持つ<track>要素を2つ以上同じメディアファイルへ付けたりして、区別ができなくなるようにしてはいけません。

default属性が指定された<track>要素は、ブラウザの設定やユーザの設定が他にない場合にデフォルトで使われるものとなります。1つのメディアファイルについてkind属性が"subtitles"/"captions"のもの(=字幕)に対して1つ、"descriptions"のものに対して1つ、"chapters"のものに対して1つずつ指定することができます。kindが"metadata"の場合には、いくつdefault属性のもの指定しても構いません。