Implementación de ARIA Live para Accesibilidad Web
Resumen
¿Cómo manejar los cambios dinámicos en tu aplicación web?
Uno de los desafíos más grandes al desarrollar aplicaciones web accesibles es asegurarse de que todos los usuarios puedan interactuar con la interfaz correctamente. Esto se vuelve más complicado cuando se presentan cambios dinámicos, aquellos que ocurren sin recargar la página. En esta guía, aprenderás cómo mejorar la accesibilidad en tus proyectos usando propiedades de ARIA (Accessible Rich Internet Applications) para notificar cambios dinámicos a través de lectores de pantalla.
¿Qué es ARIA y cómo se utiliza?
ARIA son un conjunto de atributos que puedes aplicar a elementos HTML para mejorar la accesibilidad de aplicaciones web. Estos atributos ayudan a los lectores de pantalla a comunicar información adicional al usuario, especialmente útil en situaciones con contenido actualizado dinámicamente.
Propiedades esenciales de ARIA
aria-live: Indica a los lectores de pantalla qué actualización de contenido debe ser anunciada.
aria-live="assertive": Usa esto cuando sea necesario interrumpir al lector de pantalla para comunicar información crucial al usuario.
aria-live="polite": Utiliza esta propiedad cuando la información puede esperar a ser comunicada.
¿Cómo se implementa aria-live en las notificaciones de un formulario?
Supongamos que tienes un formulario que, al ser enviado correctamente, muestra una notificación de éxito. El objetivo es asegurarse de que cualquier usuario con un lector de pantalla también sea alertado de este éxito.
<divclass="notification"aria-live="assertive"> El formulario fue enviado sin errores.
</div>
Al utilizar aria-live="assertive", le indicas al lector de pantalla que esta notificación es importante y debe ser anunciada inmediatamente, incluso interrumpiendo cualquier otra lectura que esté en curso.
Soluciones a problemas comunes al implementar aria-live
Es posible que al implementar estas propiedades surjan algunos problemas, como que la notificación no se lea correctamente. Algunos pasos para solucionarlo son:
Revisar la Ortografía y Sintaxis HTML: Errores tipográficos en clase de CSS o IDs pueden causar problemas.
Probar con Lectores de Pantalla: Durante el desarrollo, es vital probar con diferentes lectores de pantalla para asegurarse de que los cambios dinámicos sean anunciados correctamente.
Actualizar el Elemento: Asegúrate de que el contenido HTML cambie realmente para que el lector de pantalla lo vuelva a anunciar.
Ejemplo práctico: Notificaciones de error en formularios
También puedes aplicar aria-live para notificar errores en el formulario:
<spanid="errorMsg"aria-live="assertive"> Se necesita un nombre para enviar el formulario.
</span>
Al hacerlo, cuando un usuario intenta enviar un formulario sin completar los campos obligatorios, el lector de pantalla anunciará el error inmediatamente, mejorando la experiencia para usuarios con discapacidad visual.
Incrementando la accesibilidad de tu sitio web
Estas prácticas son parte integral de la accesibilidad web, haciendo que tus aplicaciones sean inclusivas para todos los usuarios. Es crucial implementar y probar estas funcionalidades en desarrollo continuo para mejorar la experiencia del usuario en general.
¡Sigue explorando y aplicando técnicas de accesibilidad para ofrecer experiencias web que realmente lleguen a todos, sin excepciones!
aria-live: Se utilizan para establecer la prioridad con la que el lector de pantalla debe tratar a cambios a las regiones en vivo - los valores posibles son: off, politeo assertive. La configuración predeterminada es off. Este atributo es, con mucho, el más importante.
Muchas gracias, me quedó mucho más claro!
excelente :D saludos
Rarísimo, pero en Orca para que funciona el aria-live con la notificación, tuve que encerrar la misma en un div adicional, de manera que quedara así:
Con este código podemos hacer que se nos enfoque la parte del nombre que esta mal
functionvalidateForm(e){ e.preventDefault();const nameField =document.getElementById("name");if(nameField.value===""){document.getElementById('name-error').innerHTML="Para enviar el formulario se necesita un nombre!";setTimeout(function(){document.getElementById("name").focus();},3000);}else{showNotification();}}
aria-hidden it hide the content from the screen readers. The idea is to hide those element which aren’t visible in the screen at the moment
aria-label it’s intended to indicated the function that an interactive element has
aria-labelledby it references another that has content that can help define the context of the first element
tabindex similar to aria-hidden but to avoid elements to be hovered. Use “-1” to avoid hover
aria-live:
Se utilizan para establecer la prioridad con la que el lector de pantalla debe tratar a cambios a las regiones en vivo, los valores posibles son:
assertive Indica que las actualizaciones de la región con alta prioridad que deben ser presentadas al usuario inmediatamente.
off (default) Indica que las actualizaciones de la región no deberían de ser presentadas al usuario a no ser que el usuario este enfocado en esa región.
polite Indica que las actualizaciones de la región deberían de ser presentadas en la siguiente oportunidad, como al final de que el lector termine de decir la oración o cuando el usuario hace una pausa para escribir.
Esta propiedad me encantó! 😃
La clase explica cómo hacer accesibles los cambios dinámicos en un formulario usando la propiedad aria-live.
Cuando se envía un formulario y aparece una notificación (por ejemplo, de éxito o error), una persona que usa lector de pantalla podría no darse cuenta. Para solucionar esto, se agrega aria-live al contenedor del mensaje.
Existen dos opciones principales:
assertive, que interrumpe inmediatamente al lector de pantalla para anunciar un mensaje importante.
polite, que espera a que el lector termine lo que está leyendo antes de anunciar el cambio.
En el ejemplo, se usa assertive para avisar que el formulario fue enviado correctamente o que hubo un error. Cuando el contenido HTML del elemento cambia, el lector de pantalla lo detecta y lo anuncia.
También se muestra cómo actualizar el mensaje dinámicamente con JavaScript y cómo aplicar la misma estrategia a los mensajes de error. Así, el sitio se vuelve más accesible para personas que usan lectores de pantalla.
¿Es común que no me funcione en NVDA?
aria-live no lo conocía, ahora entiendo lo importante que es usar estos atributos
Uno aprende sobre accesibilidad y piensa que ya lo sabe todo, hasta que llega a este curso y aprende muchos mas trucos y herramientas para mejorar 😅😍