- Biblioteca
- Comunicación e influencia
- Comunicación intercultural e inclusiva
- Patrones de accesibilidad
- Fundamentos de ARIA
Modelo mental
Fundamentos de ARIA
ARIA (aplicaciones de Internet enriquecidas accesibles) conecta interfaces web complejas con tecnologías de asistencia y hace que el contenido dinámico sea accesible para todos.
Descubre
Estás creando un menú desplegable dinámico que aparece cuando los usuarios hacen clic en un botón. ¿Cuál es el orden adecuado para hacerlo accesible a los lectores de pantalla?
¿Qué paso va PRIMERO?
Descubre por qué HTML nativo tiene prioridad sobre ARIA en la jerarquía de accesibilidad.
Comprende
Comprende
ARIA (aplicaciones de Internet enriquecidas accesibles) es un conjunto de atributos que ayuda a los navegadores web a explicar el contenido dinámico a tecnologías de asistencia, como los lectores de pantalla. Imagina que añades intérpretes invisibles de lengua de señas o etiquetas en braille a tu sitio web: cuando las funciones nativas de HTML no pueden expresar qué es algo o qué hace, ARIA cubre esa necesidad. Por ejemplo, un menú desplegable personalizado creado con elementos div se vuelve comprensible cuando añades roles ARIA que explican que es un menú, qué opción está seleccionada y si está expandido o contraído. HTML nativo ya incorpora funciones de accesibilidad, así que usa siempre elementos estándar antes de añadir atributos ARIA. Comprueba esto: revisa tu proyecto actual para identificar dónde ARIA complementa HTML en lugar de sustituirlo.
Explicación completa
Explicación completa
ARIA añade información a los elementos HTML mediante atributos especiales, principalmente roles, estados y propiedades. Los roles definen qué es un elemento, como un botón, un menú o un cuadro de diálogo. Los estados describen su condición actual, como expandido, marcado o deshabilitado. Las propiedades aportan información adicional, como una etiqueta o una descripción. Este sistema de tres partes permite que las tecnologías de asistencia comprendan y comuniquen interfaces complejas y dinámicas que HTML nativo no se diseñó para gestionar.
El principio central de ARIA es la primera regla de ARIA: si puedes usar un elemento HTML nativo con accesibilidad incorporada, úsalo en su lugar. Un elemento de botón ya comunica su función a los lectores de pantalla y gestiona automáticamente el foco del teclado, sin necesidad de ARIA. Recurre a ARIA solo cuando crees componentes personalizados o cuando HTML no pueda expresar el significado que necesitas, como en una interfaz con pestañas, una región de búsqueda que se actualiza en tiempo real o un acordeón con secciones que se pueden expandir y contraer.
Puedes encontrar aplicaciones prácticas de ARIA por todas partes: un sistema de validación de formularios usa aria-invalid y aria-describedby para anunciar errores; un cuadro de diálogo modal añade aria-modal y mantiene el foco del teclado dentro del cuadro; un marcador deportivo en directo usa aria-live para anunciar cambios en el resultado; un menú de navegación usa aria-expanded y aria-current para indicar la ubicación. Todos estos casos siguen el mismo patrón: ARIA describe lo que ocurre para que las tecnologías de asistencia puedan comunicarlo de forma eficaz.
Para implementar ARIA en la práctica, debes prestar atención al momento de las actualizaciones y a la gestión de los estados. Cuando una actualización de JavaScript cambia el contenido, debes actualizar al mismo tiempo los atributos ARIA correspondientes; de lo contrario, las tecnologías de asistencia anuncian información desactualizada. La navegación con teclado necesita indicadores de foco visibles y un orden lógico al recorrer los elementos con la tecla Tab. Los elementos interactivos necesitan etiquetas claras mediante aria-label o aria-labelledby, y debes comunicar los estados deshabilitados mediante aria-disabled cuando no puedas usar el atributo nativo disabled.
Investigación
Investigación
ARIA surgió de la Iniciativa de Accesibilidad Web (WAI) para resolver las carencias de accesibilidad de las aplicaciones de la Web 2.0, donde el contenido dinámico y las interfaces controladas por JavaScript rompían los modelos tradicionales de interacción con lectores de pantalla. La especificación define una clasificación de roles, estados y propiedades que vinculan los elementos de la interfaz con las API de accesibilidad que usan las tecnologías de asistencia. Así crea un puente entre el DOM y las capas de accesibilidad de la plataforma.
La investigación sobre la eficacia de ARIA revela dificultades importantes en su implementación. La Guía de prácticas de autoría de WAI-ARIA ofrece patrones basados en la evidencia para componentes habituales y destaca que ARIA funciona mediante la coordinación de los atributos de rol, propiedad y estado, en lugar de mediante añadidos aislados [2].
- Iniciativa de Accesibilidad Web del W3C (sin fecha): la correspondencia que ARIA establece con el árbol de accesibilidad permite que los lectores de pantalla interpreten elementos de interfaz personalizados al traducir los atributos ARIA a las API de accesibilidad específicas de cada plataforma [1]
Glosario: Árbol de accesibilidad: estructura interna del navegador que establece una correspondencia entre el DOM y las API de accesibilidad, lo que permite que las tecnologías de asistencia comprendan el contenido web e interactúen con él.
Limitaciones
Limitaciones
ARIA tiene limitaciones y riesgos importantes cuando se usa mal. No puede hacer accesible un elemento inaccesible: añadir role="button" a un div no le da la funcionalidad de un botón ni compatibilidad con el teclado; solo hace que se anuncie como botón. La compatibilidad de los lectores de pantalla varía según el atributo ARIA, y algunos tienen poca compatibilidad incluso en navegadores modernos. ARIA tampoco aporta por sí sola beneficios de accesibilidad en dispositivos móviles; debes combinarla con HTML semántico adecuado y áreas táctiles. La especificación evoluciona continuamente, por lo que algunos atributos quedan obsoletos mientras aparecen otros nuevos, lo que exige un mantenimiento continuo. Quizá lo más importante sea que ARIA corrige síntomas, como anuncios poco claros, en lugar de las causas de fondo, como una elección inadecuada de elementos HTML. Esto genera una accesibilidad frágil que falla con pequeños cambios en la implementación.
Fuentes
Fuentes
- [1] Aplicaciones de Internet enriquecidas accesibles (WAI-ARIA) 1.2W3C Web Accessibility Initiative - 2023
- [2] Guía de prácticas de autoría de WAI-ARIA (APG) 1.2W3C Web Accessibility Initiative - 2023
- [3] Comprender el criterio de conformidad 4.1.2 de WCAG 2.1: nombre, rol y valorW3C Web Accessibility Initiative - 2023
- [4] The WebAIM Million: análisis de accesibilidad de 2024WebAIM - 2024
Pruébalo
Comprueba lo que has entendido
Una persona que desarrolla una web quiere crear un elemento que active una acción al hacer clic. Considera dos opciones: (A) usar un elemento `<button>` o (B) usar un `<div>` con role="button" y tabindex="0". ¿Qué opción demuestra una mejor comprensión de los fundamentos de ARIA?
Ver la explicación de la guía
Respuesta: Usar el elemento nativo button
La primera regla de ARIA es: si un elemento HTML nativo sirve, úsalo en su lugar. Un `<button>` incorpora compatibilidad con el teclado, gestión del foco y anuncios para lectores de pantalla sin necesidad de ARIA. Añadir ARIA a un div duplica lo que el botón ya hace y conlleva el riesgo de una implementación incompleta. ARIA complementa HTML, no lo sustituye.
Estás creando un componente de acordeón personalizado en el que hacer clic en un encabezado muestra u oculta paneles de contenido. ¿Qué orden es más eficaz para implementar las funciones de accesibilidad?
Ver la explicación de la guía
Respuesta: Escribir primero HTML semántico, añadir ARIA después y probar al final
Este orden sigue la jerarquía de accesibilidad: HTML nativo proporciona la base, ARIA amplía lo que HTML no puede expresar y las pruebas validan el resultado. Empezar con ARIA suele dar lugar a atributos redundantes que duplican el significado que ya expresan los elementos nativos. Hacer pruebas sin una estructura HTML adecuada significa que estás probando sobre una base incorrecta. Crea primero HTML accesible, añade ARIA donde haga falta y después comprueba el resultado con usuarios reales y herramientas.
Un formulario de búsqueda actualiza los resultados de forma dinámica a medida que los usuarios escriben. ¿Qué combinación de enfoques comunica mejor estas actualizaciones a quienes usan lectores de pantalla?
Ver la explicación de la guía
Respuesta: Añadir aria-live='polite' al contenedor de resultados y generar HTML semántico
El atributo aria-live, especialmente con el valor 'polite' para actualizaciones no urgentes, indica a los lectores de pantalla que anuncien los cambios de contenido sin interrumpir al usuario. Combinado con una estructura HTML adecuada para cada resultado, permite anunciar automáticamente las actualizaciones. Usar role='alert' resulta demasiado intrusivo para resultados de búsqueda habituales; aria-busy solo indica el estado de carga sin anunciar los resultados; y aria-label en cada elemento es innecesario cuando su contenido ya se puede leer.
Sigue explorando
Encuentra otra idea para la decisión que tienes por delante.
Toda la biblioteca de Reframo es de lectura gratuita. Explora otra guía cuando quieras.