<track>

L'élément HTML <track> est utilisé comme élément fils d'un élément <audio> ou <video> et permet de fournir une piste texte pour le média (par exemple afin de gérer automatiquement les sous-titres). Les pistes texte utilisées avec cet élément sont formatées selon le format WebVTT (ce sont des fichiers .vtt) (WebVTT pour Web Video Text Tracks) ou selon le format Timed Text Markup Language (TTML).

Attributs

À l'instar des autres éléments HTML, cet élément inclut les attributs universels.

default
Cet attribut booléen indique que c'est cette piste qui doit être activée par défaut, sauf si les réglages de l'utilisateur indiquent qu'une autre piste est plus appropriée. Pour un élément média donné, il ne peut y avoir qu'une seule piste avec cet attribut.
kind
La façon dont la piste texte doit être utilisée. La valeur par défaut est subtitles et si la valeur fournie est incorrecte, l'agent utilisateur doit utiliser la valeur metadata. Cet attribut est un attribut à valeur contrainte qui peut prendre l'une des valeurs suivantes :
  • subtitles (la valeur par défaut)
    • Les sous-titres fournissent une traduction du contenu lorsqu'il ne peut pas être compris par l'utilisateur. La piste peut, par exemple, contenir le texte espagnol d'un film joué en anglais.
    • Les sous-titres peuvent fournir du contenu supplémentaires, généralement des informations de contexte (par exemple, le texte qui défile au début d'un film Star Wars, la date ou le lieu d'une scène, etc.).
  • captions
    • La piste est une retransciption voire une traduction de la partie audio du média.
    • La piste peut contenir des informations non-verbales importantes comme des indications musicales ou des effets sonores. La piste peut également indiquer la source du bruit (musique, personnage, etc.).
    • Ce type de piste est adapté aux utilisateurs malentendants ou lorsque le son est désactivé.
  • descriptions
    • La piste est une description textuelle du contenu vidéo.
    • Ce type de piste est adapté aux personnes malvoyantes ou lorsque la vidéo ne peut pas être vue.
  • chapters
    • Les titres de chapitre utilisés lorsque l'utilisateur navigue au sein du média.
  • metadata
    • La piste est utilisé par des scripts, elle n'est pas visible pour l'utilisateur.
label
Le titre associé à la piste et qui est affiché par le navigateur lorsque celui-ci liste les pistes disponibles.
src
L'adresse du fichier pour la piste (celle du fichier.vtt). Cet attribut doit être une URL valide et doit nécessairement être présent dans l'élément. L'URL indiquée doit avoir la même origine à moins que l'élément parent <audio> ou <video> de l'élément <track> possède un attribut crossorigin.
srclang
La langue dans laquelle est exprimée la piste textuelle. La valeur de cet attribut doit être une balise de langue BCP 47. Si l'attribut kind vaut subtitles, l'attribut srclang doit obligatoirement être défini.

Notes d'utilisation

Types de piste

Le type de donnéefournit par un élément track est décrit par l'attribut kind. Cet attribut peut prendre une valeur parmi subtitles, captions, descriptions, chapters ou metadata. L'élément pointe vers un fichier source qui contient du texte avec des annotations temporelles que le navigateur affichera lorsque l'utilisateur en aura besoin.

Un élément média (<audio> ou <video>) ne peut pas avoir plusieurs pistes partageant les mêmes valeurs pour les attributs kind, srclang et label.

Détecter le changement de texte

The underlying TextTrack, indicated by the track property, receives a cuechange event every time the currently-presented cue is changed. This happens even if the track isn't associated with a media element.

If the track is associated with a media element, using the <track> element as a child of the <audio> or <video> element, the cuechange event is also sent to the HTMLTrackElement.

let textTrackElem = document.getElementById("texttrack");

textTrackElem.addEventListener("cuechange", (event) => {
  let cues = event.target.track.activeCues;
});

In addition, you can use the oncuechange event handler:

let textTrackElem = document.getElementById("texttrack");

textTrackElem.oncuechange = (event) => {
  let cues = event.target.track.activeCues;
});

Exemples

HTML

<video controls poster="/images/sample.gif">
   <source src="sample.mp4" type="video/mp4">
   <source src="sample.ogv" type="video/ogv">
   <track kind="captions" src="sampleCaptions.vtt" srclang="en">
   <track kind="descriptions"
     src="sampleDescriptions.vtt" srclang="en">
   <track kind="chapters" src="chapitres.vtt" srclang="en">
   <track kind="subtitles" src="soustitres_de.vtt" srclang="de">
   <track kind="subtitles" src="soustitres_en.vtt" srclang="en">
   <track kind="subtitles" src="soustitres_ja.vtt" srclang="ja">
   <track kind="subtitles" src="soustitres_oz.vtt" srclang="oz">
   <track kind="metadata" src="keyStage1.vtt" srclang="en"
     label="Key Stage 1">
   <track kind="metadata" src="keyStage2.vtt" srclang="en"
     label="Key Stage 2">
   <track kind="metadata" src="keyStage3.vtt" srclang="en"
     label="Key Stage 3">
   <!-- Contenu alternatif pour les navigateurs qui
        ne prennent pas en charge video -->
   ...
</video>

Résumé technique

Catégories de contenu Aucune
Contenu autorisé Aucun, cet élément est un élément vide.
Omission de balises Étant un élément vide, la balise de début doit être présente et il ne doit pas y avoir de balise de fin.
Parents autorisés Un élément média avant tout autre contenu de flux.
Rôles ARIA autorisés Aucune.
Interface DOM HTMLTrackElement

Spécifications

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi