Criterios de éxito de las WCAG · Level AA
WCAG 1.2.4: Subtítulos (en vivo)
Las WCAG 1.2.4 requieren que todo el contenido de audio en vivo en medios sincronizados, como seminarios web, transmisiones en vivo y emisiones, vaya acompañado de subtítulos en tiempo real. Esto garantiza que las personas sordas y con discapacidad auditiva puedan acceder al contenido hablado a medida que ocurre, en tiempo real.
- Level AA
Qué significa esta regla
\nWCAG 1.2.4 (Subtítulos — En vivo) requiere que se proporcionen subtítulos para todo el contenido de audio en vivo en medios sincronizados. Los medios sincronizados se definen como contenido de audio o video que está sincronizado con otro formato para presentar información o con componentes interactivos basados en tiempo, como una retransmisión por webcast, una transmisión en vivo o una emisión en tiempo real en la web.
\nEn términos prácticos, esto significa que cualquier evento en vivo publicado en un sitio web o aplicación web que incluya audio — una rueda de prensa transmitida en un sitio de noticias, una emisión general para toda la empresa, una audiencia gubernamental, una clase en línea en vivo o una transmisión de comentarios deportivos — debe mostrar subtítulos en tiempo real que reflejen con precisión lo que se está diciendo a medida que ocurre.
\nQué se considera un cumplimiento: Una transmisión en vivo cumple con este criterio cuando los subtítulos sincronizados y precisos en tiempo real son visibles para la persona usuaria durante la reproducción. Los subtítulos deben representar todo el diálogo y la información relevante de audio no verbal (como "[applause]" o "[alarm sounds]"). Los enfoques comunes incluyen CART (Communication Access Realtime Translation) proporcionado por una persona profesional de subtitulado, subtítulos de reconocimiento automático de voz (ASR) de un servicio de subtitulado en vivo cualificado o integraciones de terceros como las que ofrecen las plataformas de transmisión.
\nQué se considera un incumplimiento: Una transmisión en vivo incumple este criterio cuando no hay subtítulos disponibles, cuando los subtítulos no están sincronizados con el audio hablado, cuando los subtítulos omiten partes significativas del diálogo o cuando la precisión de los subtítulos es tan deficiente que la comprensión se ve gravemente afectada. Proporcionar una transcripción después de los hechos no cumple este requisito: los subtítulos deben estar disponibles en vivo, en tiempo real.
\nExcepciones oficiales: WCAG define una excepción a esta regla: los medios que son en sí mismos una alternativa en medios para texto, y que están claramente etiquetados como tales, están exentos. Por ejemplo, si publicas una transcripción detallada en texto de una entrevista y luego también proporcionas una versión de audio en vivo del mismo contenido que está explícitamente etiquetada como una alternativa de audio al texto, es posible que los subtítulos no sean estrictamente necesarios. Sin embargo, esta excepción es limitada y rara vez aplicable en la práctica.
\nEl criterio se aplica a todos los medios sincronizados publicados en la web, independientemente de si el video ha sido preproducido o es realmente en vivo. Una repetición de un seminario web pregrabado transmitida como si fuera en vivo sigue estando cubierta por 1.2.3 o 1.2.5, pero una emisión genuina en tiempo real entra claramente en 1.2.4.
\n\nPor qué es importante
\nAproximadamente 430 millones de personas en todo el mundo tienen pérdida de audición discapacitante según la Organización Mundial de la Salud, y se proyecta que ese número aumente a más de 700 millones para 2050. Para las personas sordas y con discapacidad auditiva, los subtítulos en tiempo real no son una comodidad: son el medio principal o único para acceder al contenido de audio en un contexto en vivo. Sin subtítulos, estas personas quedan totalmente excluidas de participar o comprender cualquier evento de medios en vivo.
\nMás allá de la sordera y la pérdida de audición, los subtítulos en vivo benefician a una audiencia mucho más amplia. Las personas usuarias en entornos ruidosos — aeropuertos, oficinas abiertas, transporte público — pueden no poder usar audio. Las personas que miran en entornos silenciosos sin auriculares, o quienes han silenciado sus dispositivos, dependen de los subtítulos para seguir el contenido. Las personas que no son hablantes nativas a menudo consideran los subtítulos indispensables para la comprensión, especialmente cuando quienes hablan usan vocabulario complejo, acentos o jerga técnica. Las diferencias cognitivas y de procesamiento del lenguaje también pueden hacer que los subtítulos sean esenciales para una comprensión precisa.
\nConsidera un escenario concreto: un municipio en Turquía transmite en vivo una reunión del consejo municipal en su sitio web oficial. Una persona residente sorda quiere seguir el debate sobre los cambios de zonificación en su vecindario. Sin subtítulos en tiempo real, esa persona queda completamente excluida de la participación cívica. Lo mismo se aplica a una estudiante sorda que asiste a una clase en línea en vivo en el sistema de gestión de aprendizaje de una escuela privada, o a una clienta que intenta seguir un seminario web en vivo de anuncio de productos de un banco.
\nDesde un punto de vista práctico, la infraestructura de subtitulado en vivo también produce una transcripción que puede ser indexada por los motores de búsqueda, mejorando la capacidad de descubrimiento del contenido de video. Las organizaciones que invierten en subtitulado en vivo a menudo descubren que el artefacto de la transcripción se convierte en un recurso valioso para la documentación posterior al evento, los resúmenes y la búsqueda en archivos.
\n\nReglas relacionadas de Axe-core
\nWCAG 1.2.4 requiere pruebas manuales. Ninguna regla automatizada de axe-core puede detectar de forma fiable la presencia o la calidad de los subtítulos en vivo, y esta es una distinción importante que hay que entender al planificar la estrategia de auditoría de accesibilidad.
\n- \n
- Se requieren pruebas manuales — presencia de subtítulos en vivo: Las herramientas automatizadas como axe-core pueden escanear el DOM en busca de la presencia de un elemento
<track>conkind='captions'en un elemento<video>, pero las transmisiones en vivo casi nunca se entregan a través de un simple elemento HTML<video>con un<track>. Normalmente utilizan formatos de tasa de bits adaptativa (HLS, DASH) entregados a través de reproductores basados en JavaScript como Video.js, JW Player o reproductores nativos de la plataforma. Estos reproductores renderizan los subtítulos de forma dinámica de maneras que axe-core no puede inspeccionar. Una herramienta no puede ver una transmisión en vivo en tiempo real, evaluar la precisión de los subtítulos, medir el retraso de sincronización ni determinar si una superposición de subtítulos refleja realmente el contenido hablado o es un marcador de posición estático. \n - Se requieren pruebas manuales — calidad y precisión de los subtítulos: Incluso si una herramienta automatizada pudiera detectar que existe una fuente de subtítulos, no tiene forma de evaluar si los subtítulos son precisos, completos o están sincronizados en un grado aceptable. Los subtítulos producidos por CART y los subtítulos automáticos de baja calidad pueden aparecer ambos como "subtítulos presentes" para una herramienta, pero solo uno de ellos cumple con WCAG 1.2.4. La revisión humana durante un evento en vivo es la única forma fiable de verificar el cumplimiento. \n
- Se requieren pruebas manuales — accesibilidad de los subtítulos dentro del reproductor: Las herramientas automatizadas generalmente no pueden determinar si los controles de subtítulos dentro de un reproductor de medios personalizado son accesibles mediante teclado, si la visualización de subtítulos se puede redimensionar o personalizar por la persona usuaria, o si el estilo de los subtítulos satisface las necesidades de las personas usuarias. Estos aspectos requieren pruebas prácticas con navegación real mediante teclado y uso de lectores de pantalla. \n
Cómo hacer las pruebas
\n- \n
- Identificar todos los medios en vivo en la página: Revisa la página en busca de cualquier transmisión de video o audio en vivo. Comprueba si hay reproductores incrustados, iframes o componentes de medios cargados dinámicamente. Observa si el contenido es realmente en vivo (emisión en tiempo real) o pregrabado. Solo el contenido de audio genuinamente en vivo en medios sincronizados entra en 1.2.4. \n
- Ejecutar un análisis automatizado con axe DevTools o Lighthouse: Abre axe DevTools en Chrome DevTools y ejecuta un análisis de página completa. Aunque axe no puede validar los subtítulos en vivo, puede señalar problemas relacionados como la ausencia de
aria-labelen los controles del reproductor de medios, botones de reproducción/pausa inaccesibles o gestión de foco ausente. Anota cualquier problema señalado como evidencia de apoyo, pero entiende que un informe limpio de axe no confirma el cumplimiento de 1.2.4. \n - Verificar manualmente la disponibilidad de subtítulos durante un evento en vivo: Accede a la transmisión en vivo durante una emisión activa. Comprueba si se muestran subtítulos. Si el reproductor tiene un conmutador de subtítulos (botón CC), actívalo y confirma que los subtítulos aparecen y se actualizan casi en tiempo real a medida que la persona que habla se expresa. Confirma que el retraso de los subtítulos es aceptable — normalmente no más de unos pocos segundos para CART, o ligeramente más para ASR. \n
- Evaluar la precisión de los subtítulos: Escucha el audio mientras lees los subtítulos. Comprueba si hay palabras omitidas, errores sistemáticos u omisiones significativas. Los subtítulos no necesitan ser textuales palabra por palabra, pero deben transmitir el significado completo del contenido hablado. Observa la identificación de las personas que hablan si hay varias presentes: los subtítulos deben indicar quién está hablando cuando no es obvio. \n
- Probar con NVDA + Firefox: Navega hasta el reproductor de medios usando la tecla Tab. Verifica que todos los controles del reproductor, incluido el conmutador de subtítulos, sean alcanzables y operables mediante teclado. Confirma que NVDA anuncia el estado del botón de subtítulos (activado/desactivado). Activa los subtítulos y verifica que el texto de los subtítulos aparece en un elemento del DOM que NVDA pueda leer si la persona usuaria se desplaza con Tab hacia o alrededor del reproductor. \n
- Probar con VoiceOver + Safari (macOS o iOS): Usa los gestos de VoiceOver o los comandos de teclado para navegar por el reproductor. Verifica que el conmutador de subtítulos se anuncie y sea operable. Confirma que los cambios en el texto de los subtítulos se reflejan adecuadamente dentro de la región accesible del reproductor. \n
- Probar con JAWS + Chrome: Navega hasta los controles del reproductor usando Tab. Verifica que JAWS lea todas las etiquetas de los controles. Confirma que el conmutador de subtítulos se identifica como un botón con una etiqueta y un estado apropiados. Activa los subtítulos y verifica que la visualización de los subtítulos se actualiza como se espera. \n
- Comprobar la personalización de la visualización de subtítulos: Verifica si el reproductor permite a las personas usuarias redimensionar el texto de los subtítulos, cambiar colores o ajustar el contraste. Aunque no es estrictamente requerido por 1.2.4, este es un punto de evaluación de buenas prácticas y relevante para los criterios WCAG 1.4. \n
Cómo solucionarlo
\nTransmisión en vivo sin pista de subtítulos — Incorrecto
\n<!-- A live HLS stream embedded with no caption configuration -->\n<video id='live-player' controls autoplay>\n <source src='https://stream.example.com/live/event.m3u8' type='application/x-mpegURL'>\n <!-- No <track> element and no caption configuration in the player -->\n</video>\nTransmisión en vivo con pista de subtítulos CART integrada — Correcto
\n<!-- Live stream using Video.js with a live WebVTT caption track fed by a CART service.\n The src for the track points to a live caption endpoint that updates in real time. -->\n<video\n id='live-player'\n class='video-js vjs-default-skin'\n controls\n autoplay\n aria-label='Live conference stream with real-time captions'>\n <source src='https://stream.example.com/live/event.m3u8' type='application/x-mpegURL'>\n <track\n kind='captions'\n src='https://captions.example.com/live/event.vtt'\n srclang='tr'\n label='Turkish captions'\n default>\n</video>\n<script>\n var player = videojs('live-player');\n // Enable captions by default for accessibility\n player.ready(function() {\n player.textTracks()[0].mode = 'showing';\n });\n</script>\nTransmisión en vivo incrustada desde una plataforma con subtítulos desactivados en el embed — Incorrecto
\n<!-- YouTube live embed with closed captions explicitly disabled via cc_load_policy=0.\n This removes the user's ability to enable captions, causing a 1.2.4 failure. -->\n<iframe\n src='https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID&cc_load_policy=0'\n title='Company all-hands live stream'\n allowfullscreen>\n</iframe>\nTransmisión en vivo incrustada desde una plataforma con subtítulos activados — Correcto
\n<!-- YouTube live embed with closed captions enabled by default (cc_load_policy=1).\n The platform's native caption infrastructure is used, which supports live auto-captions\n and human-reviewed CART when configured in the YouTube Studio settings.\n The host page also provides a direct link to the captioned stream for users\n who cannot interact with the iframe. -->\n<iframe\n src='https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID&cc_load_policy=1'\n title='Company all-hands live stream with captions enabled'\n allowfullscreen>\n</iframe>\n<p>\n <a href='https://www.youtube.com/watch?v=LIVE_VIDEO_ID'>\n Watch with captions directly on YouTube\n </a>\n</p>\nReproductor personalizado con un conmutador de subtítulos que no es accesible mediante teclado — Incorrecto
\n<!-- Caption toggle implemented as a non-interactive <div>.\n Keyboard users and screen reader users cannot activate this control. -->\n<div class='player-controls'>\n <div class='cc-button' onclick='toggleCaptions()'>CC</div>\n</div>\nReproductor personalizado con un conmutador de subtítulos accesible — Correcto
\n<!-- Caption toggle implemented as a <button> with an explicit label and\n ARIA pressed state so keyboard and screen reader users can discover\n and operate it. The state updates dynamically when captions are toggled. -->\n<div class='player-controls'>\n <button\n class='cc-button'\n id='captions-toggle'\n aria-pressed='false'\n aria-label='Toggle captions'\n onclick='toggleCaptions(this)'>\n CC\n </button>\n</div>\n<script>\n function toggleCaptions(btn) {\n var isActive = btn.getAttribute('aria-pressed') === 'true';\n btn.setAttribute('aria-pressed', String(!isActive));\n // logic to show/hide the caption track\n }\n</script>\n\nErrores comunes
\n- \n
- Proporcionar una transcripción posterior al evento en lugar de subtítulos en tiempo real: Publicar una transcripción en texto de un evento en vivo después de que concluya no satisface 1.2.4. Los subtítulos deben estar disponibles de forma simultánea con el audio en vivo, permitiendo que las personas sordas sigan el contenido en tiempo real junto con las personas oyentes videntes. \n\n
(Content truncated due to token limit — please retry this article.)
