Elemento video y atributos principales
El elemento video es una de las incorporaciones más significativas de HTML5, permitiendo la reproducción nativa de contenido multimedia directamente en el navegador sin necesidad de plugins externos como Flash. Esta funcionalidad revolucionó la forma en que consumimos contenido audiovisual en la web.
La estructura básica del elemento video es sencilla pero potente:
<video src="movie.mp4"></video>
Sin embargo, esta implementación mínima no proporciona controles de reproducción ni otras funcionalidades esenciales. Para crear una experiencia de usuario completa, necesitamos conocer sus atributos principales.
Estructura básica y atributos esenciales
El elemento <video>
puede implementarse de dos formas principales:
- Con un atributo
src
que apunta directamente al archivo:
<video src="tutorial.mp4" width="640" height="360"></video>
- Con elementos
<source>
anidados que permiten especificar múltiples formatos para mayor compatibilidad:
<video width="640" height="360">
<source src="tutorial.mp4" type="video/mp4">
<source src="tutorial.webm" type="video/webm">
Your browser does not support the video tag.
</video>
El texto incluido entre las etiquetas de apertura y cierre se muestra únicamente si el navegador no soporta el elemento <video>
, funcionando como un mensaje de fallback.
Atributos de dimensión y visualización
Los atributos width
y height
controlan las dimensiones del reproductor de video:
<video src="tutorial.mp4" width="640" height="360"></video>
Estos valores se expresan en píxeles y definen el espacio que ocupará el reproductor en la página. Si no se especifican, el navegador utilizará las dimensiones originales del video.
Para mantener la proporción de aspecto correcta, es recomendable especificar solo uno de estos atributos y dejar que el navegador calcule el otro automáticamente.
Atributos de control y comportamiento
Los siguientes atributos modifican el comportamiento del reproductor:
- controls: Muestra los controles nativos del navegador (reproducción, pausa, volumen, etc.)
<video src="tutorial.mp4" controls></video>
- preload: Indica al navegador qué debe precargar
none
: No precarga nadametadata
: Solo precarga metadatos (duración, dimensiones)auto
: Precarga todo el video (comportamiento predeterminado en la mayoría de navegadores)
<video src="tutorial.mp4" preload="metadata" controls></video>
- loop: Reproduce el video en bucle continuo
<video src="tutorial.mp4" controls loop></video>
- playsinline: Permite la reproducción dentro de la página en dispositivos iOS (en lugar de pantalla completa)
<video src="tutorial.mp4" controls playsinline></video>
Ejemplo práctico completo
Veamos un ejemplo que combina varios atributos para crear un reproductor de video funcional:
<video width="640" height="360" controls preload="metadata">
<source src="tutorial.mp4" type="video/mp4">
<source src="tutorial.webm" type="video/webm">
<p>Your browser doesn't support HTML5 video. Here is a <a href="tutorial.mp4">link to download the video</a> instead.</p>
</video>
Este ejemplo incluye:
- Dimensiones específicas para el reproductor
- Controles de reproducción visibles
- Precarga solo de metadatos para optimizar el rendimiento
- Múltiples formatos de video para máxima compatibilidad
- Un mensaje y enlace alternativo para navegadores sin soporte
Atributos de accesibilidad
La accesibilidad es un aspecto fundamental al implementar videos en la web:
- crossorigin: Permite la carga de recursos desde otros dominios cuando se utilizan subtítulos o pistas de texto
<video src="https://othersite.com/video.mp4" crossorigin="anonymous" controls></video>
- tabindex: Define el orden de navegación mediante teclado
<video src="tutorial.mp4" controls tabindex="1"></video>
Eventos y API JavaScript
El elemento <video>
expone una API rica que permite controlar la reproducción mediante JavaScript:
<video id="myVideo" src="tutorial.mp4" width="640" height="360"></video>
<button onclick="playPause()">Play/Pause</button>
<script>
function playPause() {
const video = document.getElementById("myVideo");
if (video.paused) {
video.play();
} else {
video.pause();
}
}
</script>
Algunos eventos clave que podemos utilizar:
loadedmetadata
: Se dispara cuando se han cargado los metadatos del videoplay
: Cuando comienza la reproducciónpause
: Cuando se pausa el videoended
: Cuando finaliza la reproduccióntimeupdate
: Se dispara continuamente durante la reproducción
Consideraciones de rendimiento
Al implementar videos en una página web, debemos considerar:
- Utilizar el atributo
preload="none"
opreload="metadata"
para videos que no son críticos - Comprimir adecuadamente los videos para reducir el tamaño de archivo
- Proporcionar múltiples formatos para optimizar la compatibilidad y el rendimiento
- Considerar técnicas de carga diferida (lazy loading) para videos que no están en la vista inicial
<video src="tutorial.mp4" preload="none" controls></video>
El elemento <video>
de HTML5 proporciona una solución robusta y flexible para integrar contenido audiovisual en nuestras páginas web, mejorando significativamente la experiencia del usuario mientras mantenemos el control sobre aspectos clave como el rendimiento y la accesibilidad.
¿Te está gustando esta lección?
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Formatos de video para web: MP4, WebM, Ogg
Al incorporar videos en nuestros sitios web, la elección del formato adecuado es crucial para garantizar la compatibilidad con diferentes navegadores y dispositivos. No existe un único formato que funcione perfectamente en todos los entornos, por lo que es importante conocer las opciones disponibles y sus características.
Los tres formatos principales para video web son MP4, WebM y Ogg. Cada uno tiene sus propias ventajas y limitaciones que debemos considerar al desarrollar contenido multimedia.
MP4 (MPEG-4 Part 14)
MP4 es el formato más ampliamente compatible en la web actual:
<video controls>
<source src="video.mp4" type="video/mp4">
</video>
Características principales:
- Utiliza principalmente el códec H.264 para la compresión de video
- Ofrece buena calidad con tamaños de archivo razonables
- Compatible con prácticamente todos los navegadores modernos
- Funciona en dispositivos móviles iOS y Android
- Es un formato propietario que requiere licencias para su implementación
MP4 es generalmente la opción más segura cuando solo puedes ofrecer un formato de video, ya que garantiza la mayor compatibilidad posible con los navegadores actuales.
WebM
WebM es un formato abierto y libre desarrollado específicamente para la web:
<video controls>
<source src="video.webm" type="video/webm">
</video>
Características principales:
- Utiliza los códecs VP8/VP9 para video y Vorbis/Opus para audio
- Ofrece mejor compresión que MP4, resultando en archivos más pequeños
- Compatible con Chrome, Firefox, Opera y Edge
- No es compatible con versiones antiguas de Safari ni Internet Explorer
- Es completamente libre de regalías, sin costos de licencia
WebM destaca por su eficiencia en la compresión, lo que resulta en tiempos de carga más rápidos y menor consumo de ancho de banda, siendo ideal para sitios con restricciones de tráfico.
Ogg Theora
Ogg es otro formato abierto que utiliza el códec de video Theora:
<video controls>
<source src="video.ogv" type="video/ogg">
</video>
Características principales:
- Utiliza el códec Theora para video y Vorbis para audio
- Fue uno de los primeros formatos libres para video en HTML5
- Compatible con Firefox, Chrome y Opera
- No es compatible con Safari ni Internet Explorer/Edge
- Completamente libre de regalías
Aunque Ogg fue pionero en los formatos abiertos para web, actualmente ha sido superado por WebM en términos de eficiencia y calidad, por lo que su uso ha disminuido considerablemente.
Comparativa de compatibilidad
Esta tabla muestra la compatibilidad de los diferentes formatos con los navegadores más populares:
| Formato | Chrome | Firefox | Safari | Edge | Opera | iOS | Android | |---------|--------|---------|--------|------|-------|-----|---------| | MP4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | WebM | ✓ | ✓ | ✓* | ✓ | ✓ | ✗ | ✓ | | Ogg | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ |
*Safari añadió soporte para WebM en versiones recientes (Safari 14+)
Implementación de múltiples formatos
La mejor práctica es proporcionar múltiples formatos para garantizar la compatibilidad con todos los navegadores:
<video controls width="640" height="360">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
<source src="video.ogv" type="video/ogg">
Your browser does not support the video tag.
</video>
El navegador seleccionará automáticamente el primer formato que pueda reproducir, siguiendo el orden en que aparecen los elementos <source>
. Por ello, es recomendable colocar primero el formato con mejor relación calidad/tamaño y luego los formatos de respaldo.
Consideraciones técnicas
Al preparar videos para la web, debemos tener en cuenta:
- Resolución: Adaptar la resolución al contexto de visualización (720p es generalmente suficiente para web)
- Bitrate: Encontrar un equilibrio entre calidad y tamaño del archivo
- Proporción de aspecto: Mantener proporciones estándar (16:9, 4:3) para evitar distorsiones
- Framerate: 24-30 fps es adecuado para la mayoría de contenidos web
Herramientas de conversión
Existen diversas herramientas para convertir videos a los formatos web:
- FFmpeg: Herramienta de línea de comandos potente y flexible
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
- Handbrake: Aplicación gráfica multiplataforma para conversión de video
- Convertio: Herramienta online para conversiones rápidas
Ejemplo práctico optimizado
Este ejemplo implementa los tres formatos principales con configuraciones óptimas:
<video controls width="640" height="360">
<source src="video.webm" type="video/webm; codecs=vp9,opus">
<source src="video.mp4" type="video/mp4; codecs=avc1.42E01E,mp4a.40.2">
<source src="video.ogv" type="video/ogg; codecs=theora,vorbis">
<p>This browser does not support HTML5 video. <a href="video.mp4">Download the video</a> instead.</p>
</video>
El atributo codecs
proporciona información más específica al navegador sobre los códecs utilizados, permitiendo una mejor toma de decisiones sobre la compatibilidad.
La elección del formato adecuado dependerá de tus necesidades específicas: si la prioridad es la compatibilidad universal, MP4 es la mejor opción; si buscas un equilibrio entre eficiencia y compatibilidad, una combinación de WebM y MP4 es ideal; y si apoyas exclusivamente los estándares abiertos, WebM es la opción recomendada.
Atributos poster, controls, autoplay, muted
Los atributos del elemento <video>
nos permiten personalizar la experiencia de reproducción de vídeos en nuestras páginas web. Cuatro de los más importantes son poster
, controls
, autoplay
y muted
, que controlan aspectos visuales y de comportamiento del reproductor.
Atributo poster
El atributo poster
permite especificar una imagen de previsualización que se mostrará antes de que comience la reproducción del vídeo. Esta imagen funciona como una miniatura representativa del contenido:
<video src="tutorial.mp4" poster="thumbnail.jpg" width="640" height="360"></video>
Este atributo resulta especialmente útil por varias razones:
- Proporciona un contexto visual inmediato sobre el contenido del vídeo
- Mejora la experiencia de usuario mientras el vídeo se está cargando
- Evita mostrar el primer fotograma del vídeo, que podría no ser representativo
- Reduce la carga inicial de datos, ya que la imagen suele ser más ligera que el vídeo
Si no se especifica un poster, la mayoría de navegadores mostrarán el primer fotograma del vídeo como imagen de previsualización, aunque esto requiere que al menos parte del vídeo se haya descargado.
Atributo controls
El atributo controls
añade una interfaz de control nativa del navegador que permite al usuario interactuar con el vídeo:
<video src="tutorial.mp4" controls></video>
Este atributo es de tipo booleano, lo que significa que su mera presencia activa la funcionalidad, sin necesidad de asignarle un valor.
Los controles que se muestran típicamente incluyen:
- Botón de reproducción/pausa
- Barra de progreso con posibilidad de buscar
- Control de volumen
- Botón de pantalla completa
- Opción de subtítulos (si están disponibles)
El aspecto visual de estos controles varía según el navegador, ya que cada uno implementa su propia interfaz:
<video width="640" height="360" controls>
<source src="tutorial.mp4" type="video/mp4">
<source src="tutorial.webm" type="video/webm">
</video>
Si omitimos este atributo, el vídeo se mostrará sin controles, lo que puede ser útil cuando queremos implementar nuestra propia interfaz personalizada mediante JavaScript o cuando el vídeo funciona como elemento decorativo.
Atributo autoplay
El atributo autoplay
indica al navegador que debe comenzar a reproducir el vídeo automáticamente tan pronto como sea posible, sin esperar la interacción del usuario:
<video src="background-video.mp4" autoplay></video>
Es importante entender las limitaciones actuales de este atributo:
- La mayoría de navegadores modernos bloquean la reproducción automática con sonido
- Esta restricción responde a preocupaciones sobre experiencia de usuario y consumo de datos
- Para que autoplay funcione de manera consistente, generalmente debe combinarse con
muted
Un caso de uso común para autoplay
es en vídeos de fondo o elementos decorativos:
<video src="background-video.mp4" autoplay muted loop></video>
Atributo muted
El atributo muted
silencia el audio del vídeo por defecto:
<video src="tutorial.mp4" muted></video>
Este atributo es particularmente útil en varios escenarios:
- Permite que los vídeos con
autoplay
se reproduzcan sin ser bloqueados por el navegador - Mejora la accesibilidad al evitar sonidos inesperados
- Respeta las preferencias del usuario en entornos donde el audio puede ser intrusivo
El usuario siempre puede activar el sonido manualmente si se proporcionan los controles:
<video src="tutorial.mp4" muted controls></video>
Combinando atributos para casos de uso comunes
Los atributos pueden combinarse para lograr diferentes comportamientos según nuestras necesidades:
Vídeo de fondo decorativo:
<video src="background.mp4" autoplay muted loop playsinline></video>
Este ejemplo crea un vídeo que:
- Se reproduce automáticamente (
autoplay
) - No emite sonido (
muted
) - Se repite continuamente (
loop
) - Se reproduce dentro de la página en dispositivos móviles (
playsinline
)
Vídeo tutorial con previsualización:
<video src="tutorial.mp4" poster="tutorial-preview.jpg" controls width="640" height="360"></video>
Este ejemplo muestra:
- Una imagen de previsualización atractiva (
poster
) - Controles completos para que el usuario maneje la reproducción (
controls
) - Dimensiones específicas para mantener la consistencia del diseño
Vídeo promocional en redes sociales:
<video poster="promo-thumbnail.jpg" autoplay muted loop controls>
<source src="promo.mp4" type="video/mp4">
<source src="promo.webm" type="video/webm">
</video>
Este ejemplo está optimizado para:
- Captar la atención con reproducción automática silenciosa (
autoplay muted
) - Mostrar una miniatura atractiva antes de la carga (
poster
) - Permitir al usuario activar el sonido si lo desea (
controls
) - Ofrecer compatibilidad con diferentes navegadores (múltiples formatos)
Consideraciones de accesibilidad
Al utilizar estos atributos, debemos tener en cuenta algunas consideraciones de accesibilidad:
- Los vídeos con
autoplay
pueden ser disruptivos para usuarios con lectores de pantalla - El atributo
controls
es esencial para usuarios que necesitan controlar la reproducción - Si utilizamos
muted
, debemos asegurarnos de que la información importante no dependa exclusivamente del audio
Una implementación accesible podría ser:
<video controls poster="tutorial-preview.jpg">
<source src="tutorial.mp4" type="video/mp4">
<source src="tutorial.webm" type="video/webm">
<track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English">
<p>Tu navegador no soporta vídeo HTML5. Aquí tienes un <a href="tutorial.mp4">enlace para descargar el vídeo</a>.</p>
</video>
Ejemplo práctico completo
Veamos un ejemplo que combina todos estos atributos de manera efectiva:
<div class="video-container">
<video
id="product-demo"
poster="demo-thumbnail.jpg"
controls
muted
width="800"
height="450">
<source src="product-demo.mp4" type="video/mp4">
<source src="product-demo.webm" type="video/webm">
<p>Este navegador no soporta la reproducción de vídeos HTML5.</p>
</video>
<button id="unmute-btn">Activar sonido</button>
</div>
<script>
document.getElementById('unmute-btn').addEventListener('click', function() {
const video = document.getElementById('product-demo');
video.muted = false;
this.style.display = 'none';
});
</script>
Este ejemplo incluye:
- Una imagen de previsualización atractiva con
poster
- Controles nativos del navegador con
controls
- Inicio silenciado con
muted
(con opción para activar el sonido) - Múltiples formatos para compatibilidad
- Un mensaje alternativo para navegadores sin soporte
- Interactividad adicional mediante JavaScript
Los atributos poster
, controls
, autoplay
y muted
nos proporcionan un control preciso sobre cómo se presentan y comportan los vídeos en nuestras páginas web, permitiéndonos crear experiencias multimedia ricas y accesibles.
Subtítulos y pistas con el elemento track
El elemento <track>
es una herramienta fundamental para añadir subtítulos, leyendas, descripciones y otros tipos de texto sincronizado a los vídeos HTML5. Esta funcionalidad mejora significativamente la accesibilidad del contenido multimedia y permite llegar a una audiencia más amplia, incluyendo personas con discapacidad auditiva o hablantes de diferentes idiomas.
El elemento <track>
se utiliza como hijo del elemento <video>
y permite vincular archivos de texto con formato WebVTT (Web Video Text Tracks):
<video controls width="640" height="360">
<source src="conference.mp4" type="video/mp4">
<track src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
<track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>
</video>
Atributos del elemento track
El elemento <track>
admite varios atributos que definen su comportamiento:
- src: Especifica la URL del archivo de pista (obligatorio)
- kind: Define el tipo de texto que contiene la pista
- srclang: Indica el idioma del contenido de la pista
- label: Proporciona un título legible para el usuario
- default: Indica que esta pista debe activarse por defecto
Veamos cada uno de estos atributos en detalle:
Atributo src
El atributo src
es obligatorio y especifica la ruta al archivo de pista:
<track src="subtitles.vtt">
Los archivos de pista deben estar en formato WebVTT (extensión .vtt
), que es el estándar para texto sincronizado con vídeo en HTML5.
Atributo kind
El atributo kind
define el propósito de la pista y puede tener los siguientes valores:
- subtitles: Transcripción o traducción del diálogo
- captions: Transcripción del diálogo y descripción de sonidos relevantes (para personas con discapacidad auditiva)
- descriptions: Descripción textual del contenido visual (para personas con discapacidad visual)
- chapters: Títulos de capítulos para navegar por el vídeo
- metadata: Información que no se muestra pero puede ser utilizada por scripts
<track src="captions.vtt" kind="captions" srclang="en">
Si no se especifica, el valor predeterminado es subtitles
.
Atributo srclang
El atributo srclang
indica el idioma del texto de la pista utilizando códigos de idioma ISO 639-1:
<track src="subtitles-fr.vtt" kind="subtitles" srclang="fr" label="Français">
Este atributo es obligatorio cuando kind="subtitles"
.
Atributo label
El atributo label
proporciona un nombre descriptivo que se mostrará en la interfaz de usuario del reproductor:
<track src="subtitles-de.vtt" kind="subtitles" srclang="de" label="Deutsch">
Este texto aparecerá en el menú de selección de subtítulos, por lo que debe ser claro y representativo.
Atributo default
El atributo default
indica que esta pista debe estar activada por defecto cuando el usuario no ha seleccionado ninguna preferencia:
<track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>
Solo una pista de cada tipo debería tener este atributo.
Formato WebVTT
WebVTT (Web Video Text Tracks) es el formato estándar para los archivos de pista. Un archivo WebVTT básico tiene la siguiente estructura:
WEBVTT
00:00:01.000 --> 00:00:04.000
Primera línea de subtítulos
00:00:05.000 --> 00:00:08.000
Segunda línea de subtítulos
Cada bloque de texto incluye:
- Un identificador opcional (puede ser un número o texto)
- Un intervalo de tiempo en formato
hh:mm:ss.mmm
- El texto que se mostrará durante ese intervalo
Un ejemplo más completo:
WEBVTT
1
00:00:01.500 --> 00:00:05.000
Bienvenidos a nuestra presentación
sobre desarrollo web moderno
2
00:00:06.000 --> 00:00:09.500
HTML5 ha revolucionado la forma
en que creamos contenido multimedia
Estilos en WebVTT
WebVTT también permite aplicar estilos básicos a los subtítulos mediante etiquetas similares a HTML:
WEBVTT
00:00:01.000 --> 00:00:04.000
<b>Importante:</b> Esta información es crucial
00:00:05.000 --> 00:00:08.000
Puedes <i>enfatizar</i> palabras específicas
Las etiquetas disponibles incluyen:
<b>...</b>
- Texto en negrita<i>...</i>
- Texto en cursiva<u>...</u>
- Texto subrayado<c>...</c>
- Clase (para estilos CSS)<ruby>...</ruby>
- Anotaciones ruby (para idiomas asiáticos)
Implementación de múltiples pistas
Un vídeo puede tener múltiples pistas para diferentes propósitos e idiomas:
<video controls width="640" height="360">
<source src="documentary.mp4" type="video/mp4">
<source src="documentary.webm" type="video/webm">
<!-- Subtítulos en varios idiomas -->
<track src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English" default>
<track src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
<track src="subtitles-fr.vtt" kind="subtitles" srclang="fr" label="Français">
<!-- Leyendas para personas con discapacidad auditiva -->
<track src="captions-en.vtt" kind="captions" srclang="en" label="English Captions">
<!-- Capítulos para navegación -->
<track src="chapters.vtt" kind="chapters" srclang="en" label="Chapters">
<!-- Descripciones para personas con discapacidad visual -->
<track src="descriptions.vtt" kind="descriptions" srclang="en" label="Descriptions">
</video>
Ejemplo práctico: Vídeo educativo con subtítulos
Veamos un ejemplo completo de un vídeo educativo con subtítulos en varios idiomas:
<video id="tutorial-video" controls width="800" height="450" poster="tutorial-thumbnail.jpg">
<source src="web-development-tutorial.mp4" type="video/mp4">
<source src="web-development-tutorial.webm" type="video/webm">
<track
src="tutorial-subtitles-en.vtt"
kind="subtitles"
srclang="en"
label="English"
default>
<track
src="tutorial-subtitles-es.vtt"
kind="subtitles"
srclang="es"
label="Español">
<track
src="tutorial-chapters.vtt"
kind="chapters"
srclang="en"
label="Chapters">
<p>Tu navegador no soporta vídeos HTML5. <a href="web-development-tutorial.mp4">Descarga el vídeo</a>.</p>
</video>
El archivo de subtítulos en inglés (tutorial-subtitles-en.vtt
) podría tener este aspecto:
WEBVTT
1
00:00:02.000 --> 00:00:06.000
Welcome to this tutorial on modern web development
2
00:00:07.000 --> 00:00:12.000
Today we'll learn how to implement video with subtitles in HTML5
3
00:00:13.000 --> 00:00:18.000
This technique improves accessibility and user experience
Y el archivo de capítulos (tutorial-chapters.vtt
):
WEBVTT
Chapter 1
00:00:00.000 --> 00:05:00.000
Introduction to HTML5 Video
Chapter 2
00:05:00.000 --> 00:10:00.000
Adding Subtitles with Track Element
Chapter 3
00:10:00.000 --> 00:15:00.000
Styling and Customization
Chapter 4
00:15:00.000 --> 00:20:00.000
Best Practices and Browser Compatibility
Manipulación de pistas con JavaScript
Podemos interactuar con las pistas mediante la API de TextTrack en JavaScript:
<video id="myVideo" controls width="640" height="360">
<source src="presentation.mp4" type="video/mp4">
<track id="enTrack" src="subtitles-en.vtt" kind="subtitles" srclang="en" label="English">
<track id="esTrack" src="subtitles-es.vtt" kind="subtitles" srclang="es" label="Español">
</video>
<div>
<button onclick="enableTrack('enTrack')">English</button>
<button onclick="enableTrack('esTrack')">Español</button>
<button onclick="disableAllTracks()">No Subtitles</button>
</div>
<script>
function enableTrack(trackId) {
const video = document.getElementById('myVideo');
const tracks = video.textTracks;
for (let i = 0; i < tracks.length; i++) {
tracks[i].mode = (tracks[i].id === trackId) ? 'showing' : 'hidden';
}
}
function disableAllTracks() {
const video = document.getElementById('myVideo');
const tracks = video.textTracks;
for (let i = 0; i < tracks.length; i++) {
tracks[i].mode = 'hidden';
}
}
</script>
Este código permite a los usuarios cambiar entre diferentes idiomas de subtítulos o desactivarlos completamente.
Consideraciones de accesibilidad
Al implementar pistas de texto, debemos tener en cuenta algunas prácticas recomendadas para la accesibilidad:
- Proporcionar al menos subtítulos en el idioma principal del contenido
- Incluir descripciones de sonidos importantes en las pistas de tipo
captions
- Asegurarse de que los subtítulos estén sincronizados correctamente con el audio
- Mantener los subtítulos concisos y legibles (no más de dos líneas a la vez)
- Utilizar un contraste adecuado para facilitar la lectura
Compatibilidad con navegadores
El soporte para el elemento <track>
es amplio en los navegadores modernos, pero la implementación puede variar:
- Chrome, Firefox, Edge y Safari soportan el elemento
<track>
y el formato WebVTT - La apariencia de los controles de subtítulos varía según el navegador
- Algunos navegadores móviles pueden tener limitaciones en la visualización de subtítulos
Para garantizar la mejor experiencia, es recomendable probar los subtítulos en diferentes navegadores y dispositivos.
El elemento <track>
es una herramienta poderosa que mejora significativamente la accesibilidad y usabilidad de los vídeos en HTML5, permitiendo llegar a una audiencia más amplia y proporcionando una experiencia más rica y personalizable para todos los usuarios.
Aprendizajes de esta lección
- Comprender la estructura y atributos esenciales del elemento
- Conocer los formatos de video más comunes para la web y su compatibilidad.
- Aprender a utilizar atributos como poster, controls, autoplay y muted para personalizar la experiencia de reproducción.
- Implementar subtítulos y pistas mediante el elemento
- Manipular pistas de texto con JavaScript y aplicar buenas prácticas para la accesibilidad y rendimiento.
Completa HTML y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs