<track> : l'élément de piste texte embarquée
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'élément HTML <track> est utilisé comme enfant des éléments média, <audio> et <video>.
Chaque élément track permet de définir une piste texte synchronisée (ou des données temporelles) qui peuvent s'afficher en parallèle avec l'élément média, par exemple pour superposer des sous-titres ou des légendes sur une vidéo ou à côté de pistes audio.
Plusieurs pistes peuvent être définies pour un élément média, contenant différents types de données textuelles synchronisées, ou des données textuelles synchronisées traduites pour différentes langues. La donnée utilisée sera soit la piste définie comme piste par défaut, soit un type et une traduction selon les préférences de l'utilisateur·ice.
Les pistes sont formatées au format WebVTT (fichiers .vtt) — Web Video Text Tracks.
Exemple interactif
<video controls src="/shared-assets/videos/friday.mp4">
<track
default
kind="captions"
srclang="en"
src="/shared-assets/misc/friday.vtt" />
Télécharger la vidéo
<a href="/shared-assets/videos/friday.mp4">MP4</a>, et
<a href="/shared-assets/misc/friday.vtt">les sous-titres</a>.
</video>
video {
width: 250px;
}
video::cue {
font-size: 1rem;
}
Attributs
Cet élément inclut les attributs universels.
default-
Cet attribut indique que la piste doit être activée par défaut, sauf si les préférences de l'utilisateur·ice indiquent qu'une autre piste est plus appropriée. Il ne peut être utilisé que sur une seule piste
trackpar élément média. kind-
La façon dont la piste texte doit être utilisée. La valeur par défaut est
subtitleset si la valeur fournie est incorrecte, l'agent utilisateur doit utiliser la valeurmetadata. 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·ice. 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 retranscription 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 personnes malentendantes 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·ice navigue au sein du média.
metadata- La piste est utilisée par des scripts, elle n'est pas visible pour l'utilisateur·ice.
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 attributcrossorigin. 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
kindvautsubtitles,l'attributsrclangdoit obligatoirement être défini.
Notes d'utilisation
>Types de piste
Le type de données que track ajoute au média est défini par l'attribut kind, qui peut prendre les valeurs subtitles, captions, chapters ou metadata. L'élément pointe vers un fichier source contenant du texte horodaté que le navigateur expose lorsque l'utilisateur·ice demande des données supplémentaires.
Un élément média ne peut pas avoir plus d'une track portant les mêmes valeurs pour kind, srclang et label.
Détection des changements de cue
La TextTrack sous-jacente, indiquée par la propriété track, reçoit un évènement cuechange chaque fois que le cue actuellement présenté change. Cela se produit même si la piste n'est pas associée à un élément média.
Si la piste est associée à un élément média, c'est‑à‑dire si l'élément <track> est utilisé comme enfant de l'élément <audio> ou <video>, l'évènement cuechange est également envoyé au HTMLTrackElement.
let textTrackElem = document.getElementById("text-track");
textTrackElem.addEventListener("cuechange", (event) => {
let cues = event.target.track.activeCues;
});
Ajout programmatique de pistes textuelles
L'interface JavaScript qui représente l'élément <track> est HTMLTrackElement.
La piste textuelle associée à un élément peut être obtenue depuis la propriété HTMLTrackElement.track, et est de type TextTrack.
Des objets TextTrack peuvent également être ajoutés à des éléments HTMLVideoElement ou HTMLAudioElement en utilisant la méthode HTMLMediaElement.addTextTrack().
Les objets TextTrack associés à un élément média sont stockés dans un TextTrackList, qui peut être récupéré à l'aide de la propriété HTMLMediaElement.textTracks.
Exemples
>HTML
<video controls poster="/images/exemple.gif">
<source src="exemple.mp4" type="video/mp4" />
<source src="exemple.ogv" type="video/ogv" />
<track kind="captions" src="exempleLégende.vtt" srclang="fr" />
<track kind="chapters" src="exempleChapitres.vtt" srclang="fr" />
<track kind="subtitles" src="exempleSousTitres_de.vtt" srclang="de" />
<track kind="subtitles" src="exempleSousTitres_en.vtt" srclang="en" />
<track kind="subtitles" src="exempleSousTitres_ja.vtt" srclang="ja" />
<track kind="subtitles" src="exempleSousTitres_oz.vtt" srclang="oz" />
<track
kind="metadata"
src="cléChapitre1.vtt"
srclang="fr"
label="Clé Chapitre 1" />
<track
kind="metadata"
src="cléChapitre2.vtt"
srclang="fr"
label="Clé Chapitre 2" />
<track
kind="metadata"
src="cléChapitre3.vtt"
srclang="fr"
label="Clé Chapitre 3" />
<!-- Contenu de repli -->
</video>
Résumé technique
| Catégories de contenu | Aucune. |
|---|---|
| Contenu autorisé | Aucun, cet élément est un élément vide. |
| Omission de balises | Doit avoir une balise de début et ne doit pas avoir de balise de fin. |
| Parents autorisés | Un élément média avant tout autre contenu de flux. |
| Rôle ARIA implicite | Pas de rôle correspondant (angl.) |
| Rôles ARIA autorisés | Aucun role autorisé |
| Interface DOM | HTMLTrackElement |
Spécifications
| Specification |
|---|
| HTML> # the-track-element> |
Compatibilité des navigateurs
Voir aussi
- Le format de piste WebVTT
- La propriété API
HTMLMediaElement.textTracks