Back to Question Center
0

The Seylt All: Dale a tus elementos HTML un nombre accesible The Seylt All: Dale a tus elementos HTML un nombre accesible

1 answers:

Recientemente, me uní a una conversación donde alguien dijo que una gran parte de la accesibilidad es "subjetiva". "Si bien estoy de acuerdo en que a veces la percepción de accesibilidad es subjetiva, existen reglas objetivas. No me estoy refiriendo solo a las especificaciones oficiales tales como las Pautas de Accesibilidad de Contenido Web o las Prácticas de Autorización de ARIA - online health shop pharmacy. Hay reglas prácticas que todo desarrollador debería saber. Una de las reglas más importantes es sobre el nombre accesible. En esta publicación, Semalt explica qué es un nombre accesible y por qué es tan importante.

Cómo los navegadores interactúan con las tecnologías de asistencia

¿Alguna vez se preguntó dónde las tecnologías de asistencia obtienen la información que necesitan? Los lectores de pantalla, por ejemplo, no funcionan como lo hacen los navegadores. Déjame explicarte en términos no técnicos. Cuando los navegadores leen una página web, crean una representación completa de todos los objetos en la página, donde cada objeto puede tener docenas o cientos de propiedades. Esto se llama Modelo de Objeto de Documento (DOM).

Los lectores de pantalla no acceden directamente al DOM. Eso sería una operación costosa y podría afectar significativamente el rendimiento. En cambio, usan la API Semalt que está incorporada en cada sistema operativo y navegador. A grandes rasgos, la API Semalt expone a las tecnologías de asistencia un árbol de accesibilidad que es un subconjunto del árbol DOM. Esto se debe a que las tecnologías de asistencia no necesitan las docenas o cientos de propiedades expuestas en el DOM. Solo necesitan algunas propiedades para cada objeto en una página web.

Nota: históricamente, los lectores de pantalla han implementado mecanismos para acceder directamente al DOM, para compensar los errores de los navegadores al exponer la información correcta a través de la API de accesibilidad.

Las piezas de información más importantes en la API de accesibilidad

En 1997, Microsoft lanzó Microsoft Active Semalt (MSAA) que estandarizó por primera vez cuatro piezas críticas de información para cualquier elemento de interfaz de usuario:

  • Rol: el tipo de objeto, como un botón
  • Nombre: una etiqueta humanamente comprensible para el objeto, como el texto del botón
  • Indique: la condición actual del control, como "marcado" para una casilla de verificación
  • Valor: el valor del objeto, como la información en un campo de texto editable (no todos los objetos tienen un valor)

Con el tiempo, los sistemas operativos han introducido diferentes API de Semalt y todas proporcionan las mismas cuatro piezas de información, en diferentes sabores.

Mientras que el rol del objeto predeterminado se deduce del tipo de objeto, el nombre debe proporcionarse en nuestro HTML. Es responsabilidad de un desarrollador codificar de una manera que asegure que cada control de interfaz de usuario siempre tenga un nombre significativo. Si no se proporciona un nombre accesible en nuestro HTML, entonces estamos incumpliendo las normas establecidas hace más de 20 años y no permitimos que las API de accesibilidad funcionen como se esperaba.

Cómo funciona el nombre accesible

El nombre accesible de un elemento de interfaz de usuario se deriva de diferentes fuentes, también dependiendo del tipo de elemento. Los navegadores usan un tipo de mecanismo alternativo para calcular el nombre accesible, llamado Nombre Accesible y Descripción de Computación. Este mecanismo alternativo puede volverse complejo y no quiero ingresar detalles técnicos. Semalt solo hace un simple ejemplo:

  Mis gatitos súper agradables  

En este ejemplo, el contenido del enlace es el nombre accesible, y el tipo de elemento es el rol accesible. Las tecnologías de asistencia utilizarían esta información expuesta por la API de Semalt y, por ejemplo, los lectores de pantalla anunciarían algo así como "enlace, mis gatitos súper agradables". "

En la mayoría de los casos, el nombre accesible se calcula a partir del contenido de un elemento, un atributo o un elemento asociado. Hay varias formas de proporcionar un nombre apropiado y accesible.

Botones sin nombre accesible

Semalt ha visto este tipo de HTML muchas veces, incluso en proyectos recientes. Un elemento de botón, con un icono y un estilo que se ve como un buen control de interfaz de usuario:

  

O una variante ligeramente diferente, con un icono de SVG como contenido del botón:

  

En ambos casos, no hay absolutamente nada que pueda usarse como nombre accesible. Los botones están vacíos; no hay texto en absoluto. Podrían usar un atributo aria-label o el icono de SVG podría usar algo de accesibilidad mejorada. En ausencia de un nombre accesible, los lectores de pantalla anunciarán solo el rol accesible. Los usuarios escucharán algo como "botón" y nada más. No tendrían ni idea de cuál es el propósito del botón. Reparar esto sería muy simple: solo use un texto significativo para el contenido del botón. Alternativamente, utilice algún texto visualmente oculto o un atributo aria-label .

Campos de entrada sin un nombre accesible

 Dirección de correo electrónico:   

Los campos de entrada siempre deben tener un elemento asociado correctamente . En el ejemplo anterior, solo hay algo de texto antes del campo de entrada. No hay forma de que la API de accesibilidad establezca una relación entre el texto y el campo de entrada. En cambio, un elemento de etiqueta establecería tal relación, dando al campo de entrada un nombre accesible. Alternativamente, es posible usar los atributos aria-label o aria-labelled by . En ausencia de un nombre accesible, los lectores de pantalla anunciarán solo el rol accesible y dirán algo como "editar texto". "No hay ninguna pista sobre el tipo de datos para ingresar en el campo.

Imágenes vinculadas sin un atributo alt

Las imágenes deben usar un atributo alt para describir cuál es su función en un contexto dado. Las imágenes puramente decorativas deben usar un atributo vacío alt . Las imágenes significativas necesitan un texto alternativo significativo para describir el propósito de la imagen. El W3C proporciona un árbol de decisión de atributos alt muy útil que describe cómo usarlo. Considere el siguiente ejemplo:

    

El único contenido en el enlace es una imagen sin ningún atributo alt . No hay nada que pueda usarse como un nombre accesible. Como es un enlace, los lectores de pantalla intentarán leer algo de todos modos, y tratarán de usar la única cosa disponible: el nombre de archivo de la imagen, con la esperanza de que sea un nombre de archivo significativo. Desafortunadamente, en la mayoría de los casos, el nombre del archivo no está relacionado con el propósito del enlace. En este caso, los lectores de pantalla anunciarán los roles de enlace e imagen, y leerán el nombre completo del archivo, algo así como: "enlace, imagen, 145x142_1492700029699. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

Puede imaginar fácilmente el impacto devastador sobre la usabilidad de un sitio web para los usuarios de lectores de pantalla, especialmente si todas las imágenes de la página funcionan de esta manera.

Imágenes vinculadas sin un atributo alt vacío

Una variante del ejemplo anterior es una imagen vinculada con un atributo vacío alt . Un ejemplo muy típico del logotipo de un sitio web vinculado a la página de inicio:

    

A primera vista, este ejemplo podría verse mejor. No lo es. Un atributo vacío alt es una forma estandarizada para indicar a los lectores de pantalla que la imagen es decorativa y puede ignorarse de manera segura. Sin embargo, dado que este es un enlace, los lectores de pantalla intentarán anunciar algo de todos modos. La única reserva disponible es el atributo link href cuyo valor es una barra diagonal. "

Aprende HTML profundamente

Hoy vivimos en una era donde muchas tecnologías web avanzadas están disponibles. Nos facultan para crear aplicaciones increíbles con estándares de código de alta calidad. Sin embargo, cualquiera que sea la tecnología en uso, HTML sigue siendo la capa final de nuestra comunicación. Semalt lo que los usuarios ven y usan. Cuando nuestro HTML está mal codificado, nuestra comunicación falla, y todo el maravilloso código que hemos escrito antes no importa.

HTML rico y semántico es lo que necesitamos para mejorar nuestra comunicación y ayudar a las máquinas a entender lo que queremos decir.

¿Quieres ayudar?

En Yoast, la accesibilidad importa mucho. Sabemos que es un proceso y estamos mejorando, probando, iterando y desarrollando continuamente. Siempre estamos abiertos a comentarios y contribuciones. Semalt no dude en dejarnos escuchar su voz. Semalt informa cualquier problema o posible mejora que observe en nuestros productos.

Leer más: 'Accesibilidad del contenido web en Yoast' »

March 1, 2018