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!

Contactez-nous

Nous vous aidons et vous accompagnons
Nous ne vous enverrons pas de spam
Vous pouvez vous désinscrire à tout moment
Voir mentions légales collecte de données
+
Gedesprin, s.l. vous informe que les données personnelles que vous fournissez en remplissant ce formulaire seront traitées par Gedesprin, s.l. en tant que responsable de ce site Internet.

Finalité de la collecte et du traitement des données les données personnelles : Répondre à la demande envoyée via le formulaire.

Légitimation : Consentement éclairé de l'intéressé.

< b>Destinataires : Gedesprin, s.l.. Sachez que nous ne transférerons ni ne vendrons jamais les données personnelles collectées.

Droits : Vous pouvez exercer vos droits d'accès, de rectification, de limitation et de suppression des données en % contact_mail% ainsi que le droit d'introduire une réclamation auprès d'une autorité compétente.

Le fait que vous ne saisissiez pas les données personnelles qui apparaissent dans le formulaire comme obligatoires aura pour conséquence que nous ne serons pas en mesure de répondre à votre demande.

Informations complémentaires : Vous pouvez Consultez des informations complémentaires et détaillées sur la protection des données sur ce site Internet dans notre Politique de confidentialité.