Haz tus componentes accesibles: nombre, función y valor

Haz tus componentes accesibles: nombre, función y valor

Haz tus componentes accesibles: nombre, función y valor

¿Estás usando elementos personalizados o sliders en tu web? Asegúrate de que son accesibles, que se pueda leer su nombre, su función y su valor. Aquí te explicamos cómo hacerlo bien según el criterio 4.1.2 de las WCAG.

Cuando desarrollas componentes de interfaz en una web, es fundamental que estos sean accesibles para todas las personas, incluidas aquellas que utilizan tecnologías de apoyo como lectores de pantalla, magnificadores o programas de reconocimiento de voz. Para ello, uno de los criterios más relevantes es el criterio 4.1.2 de las WCAG: “Nombre, función y valor”.

Este criterio forma parte del nivel A de conformidad y es obligatorio para lograr una accesibilidad básica.

¿Por qué deberías aplicar este criterio?

El criterio 4.1.2 busca que todos los elementos del UI proporcionen tres cosas:

  • Un nombre que pueda ser leído.
  • Una función clara.
  • Un estado o valor.

Esto permite que las tecnologías de asistencia interpreten y controlen correctamente los componentes, garantizando una navegación fluida y accesible para todos los usuarios.

Si estás usando componentes estándar de HTML y los utilizas según su especificación, este criterio ya se cumple automáticamente.

El reto aparece cuando se usan componentes HTML para una función distinta a la original, por ejemplo si usas un < div > con una función de enlace, usando el eventListener onClick para cargar una nueva página o usas una imagen como botón para pasar a la siguiente diapositiva de un slider.

Haz accesibles tus componentes: asegúrate de que tengan nombre, función y valor según WCAG 4.1.2.

5 consejos clave para cumplir el criterio 4.1.2

A continuación, te damos algunas recomendaciones prácticas para asegurarte de que tus elementos de interfaz cumplen con este criterio:

1. Usa roles ARIA para definir la función del componente

Cuando crees componentes personalizados, utiliza el atributo role de ARIA para definir su función.

Fíjate que el elemento del ejemplo le hemos puesto el atributo tabindex="0". Esto es por que así lo añadimos a la lista de elementos interactivos y que puedan recibir el foco. Te explicamos más sobre esto en el punto 5.

Ejemplo:

< div role="button" tabindex="0" >Enviar

Con esto, ayudas técnicas como los lectores de pantalla sabrán que ese < div > se comporta como un botón y así lo trata.

2. Proporciona nombres accesibles con aria-labelledby

Si el componente no tiene una etiqueta visible o necesita combinar varias etiquetas para formar un nombre, usa aria-labelledby.

Ejemplo:

< p >Selecciona la < span id="label1" >duración del viaje< /span >< /p >

< div role="slider" aria-labelledby="label1" tabindex="0" >< /div >

Esto permite que el lector de pantalla anuncie correctamente el propósito del control.

3. Usa atributos ARIA para exponer el estado o valor del componente

Para componentes como botones de alternancia, sliders o listas desplegables, informa a las ayudas técnicas del estado actual mediante atributos ARIA como aria-pressed, aria-expanded o aria-valuenow.

Ejemplo: botón de mute:

< div role="button" aria-pressed="false" tabindex="0" >Mute< /div >

Cuando el usuario lo activa, el atributo se debe actualizar dinámicamente a aria-pressed="true" para reflejar el nuevo estado. Ver el siguiente punto.

4. Asegura que los cambios de estado se reflejen en el elemento

Cuando el usuario interactúa con un componente y cambia su estado o valor, el sistema debe notificarlo a las tecnologías de asistencia. Esto implica actualizar los atributos ARIA dinámicamente con JavaScript.

Ejemplo en JavaScript:

function toggleButtonState(button) {

var isPressed = button.getAttribute('aria-pressed') === 'true';

button.setAttribute('aria-pressed', isPressed ? 'false' : 'true');

}

5. No te olvides del foco

Un aspecto clave para la accesibilidad es que el estado de foco de cada componente pueda ser detectado por las ayudas técnicas. Asegúrate de usar tabindex="0" para hacer de estos componentes accesibles mediante el teclado y de que así el foco se maneje adecuadamente.

Si quieres saber más Name, Role, Value (Level A)

¿Tienes sliders o botones personalizados? Sigue estos pasos y hazlos realmente accesibles.

Lo que debes recordar

  • Nombre, función y valor accesibles = interfaz accesible.
  • Usa HTML semántico siempre que sea posible.
  • Si creas controles personalizados, apóyate en los roles y atributos ARIA.
  • Asegúrate de que el foco, el estado y los cambios sean detectables por las tecnologías de asistencia.
  • Haz pruebas con lectores de pantalla y navega con el teclado.

Implementar el criterio 4.1.2 no solo mejora la accesibilidad de tu sitio, sino que también garantiza una experiencia inclusiva para todas las personas, independientemente de sus capacidades.

Aplica el criterio 4.1.2 y crea interfaces accesibles, usables e inclusivas para todos.

¿Tienes dudas sobre cómo aplicar este criterio en tus propios componentes? En accedeMe te ayudamos a hacerlo más fácil.

¡La accesibilidad empieza en el código!

Contáctanos

Te ayudamos y acompañamos
No te enviaremos spam
Puedes darte de baja cuando quieras
Ver aviso legal recogida de datos
+
Gedesprin, s.l. te informa que los datos de carácter personal que proporciones cumplimentando el presente formulario serán tratados por Gedesprin, s.l. como responsable de esta web.

Finalidad de la recogida y tratamiento de los datos personales: Atender la solicitud enviada a través del formulario.

Legitimación: Consentimiento informado del interesado.

Destinatarios: El destinatario de los datos será Gedesprin, s.l. y se compromete a no cedere ni hacer un uso comercial de los datos personales recabados a través de este formulario.

Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y supresión los datos en [email protected] así como el derecho a presentar una reclamación ante una autoridad competente.

El hecho de no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no podamos atender tu solicitud.

Información adicional: Puedes consultar la información adicional y detallada sobre Protección de Datos en esta página web en nuestra Política de Privacidad.