link-name-present
Los enlaces tienen un nombre accesible
Comprueba que los enlaces expongan un nombre accesible no vacío.
Ámbito de aplicación. Se aplica a <a href>, <area href> y elementos cuyo atributo role se resuelve en link (su primer token que nombra un rol conocido, sin distinguir mayúsculas de minúsculas) que estén incluidos en el árbol de accesibilidad. Un <a> sin href no es un enlace y no coincide. Un <a href>/<area href> cuyo rol explícito es un rol conocido distinto de link, un rol DPUB que hereda de link, none o presentation no es un enlace y no coincide (ACT c487ae, Inapplicable Example 1). Un elemento personalizado cuyos ElementInternals le dan el rol link (this.attachInternals().role), sin un atributo role que nombre otro, cuenta como lo hace un elemento nativo con ese rol.
Resultado esperado. El elemento tiene un nombre accesible no vacío. Primero se toma un nombre programático (aria-labelledby, aria-label, un <label> asociado, title) y, si no existe, el elemento recurre al texto de su propio subárbol, contando el nombre propio de cada descendiente (un <img alt>, aria-label o title), el mecanismo detrás del habitual enlace de logotipo <a><img alt="..."></a>. El recurso al contenido se suprime cuando hay un rol explícito y conocido que no es name-from-content (el primer token conocido de la lista de reserva del rol); un atributo role sin ningún token conocido recurre al rol implícito.
Qué informa un hallazgo.
refs.accessibleName: lo que encontró la búsqueda del nombre programático:present,value,mechanism(el atributo o elemento del que procedería el nombre,nonecuando no hay ninguno) yflags(notas sobre por qué una fuente no dio ningún nombre).nullcuando no se hizo ninguna búsqueda.
Estos campos de data.details ayudan a leer y reproducir un hallazgo. Salvo reasonCode y los pocos campos que Esquema de salida indica como estables, no son un contrato estable: un campo puede cambiar de nombre o desaparecer en una versión menor, así que no construyas sobre ellos.
Ejemplos
<a href="/x">Read more</a>
El contenido de texto del enlace es su nombre accesible.
<a href="/x"></a>
No hay contenido de texto, aria-label ni aria-labelledby.
Cómo comprobarlo
Cuando esta regla no puede decidir, informa cantTell y deja la pregunta a una persona. Cada pregunta que puede plantear aparece aquí bajo su código de motivo, con los pasos para responderla. Un hallazgo lleva los mismos pasos en howToCheck, en el idioma del análisis. Consulta Esquema de salida.
name_closedContent
- Localizar el enlace que indica el informe y anotar el texto o el icono que muestra en pantalla.
- Abrir el panel Accesibilidad de las herramientas para desarrolladores del navegador y leer el nombre accesible del elemento, que el navegador obtiene de un contenido que ningún script puede leer.
- Con un lector de pantalla, desplazarse hasta el elemento y escuchar el nombre que se anuncia.
Se cumple. El árbol de accesibilidad muestra un nombre para el enlace, tomado de su contenido, y el lector de pantalla lo anuncia.
No se cumple. El enlace no tiene nombre en el árbol de accesibilidad, porque su contenido no le da ninguno, lo que incumple WCAG 2.4.4 y 4.1.2.
name_contentTooDeep
- Localizar el enlace que indica el informe y anotar el texto que muestra en pantalla.
- Abrir el panel Accesibilidad de las herramientas para desarrolladores del navegador y leer el nombre accesible del elemento, que el navegador obtiene de todo su contenido anidado.
- Con un lector de pantalla, desplazarse hasta el elemento y escuchar el nombre que se anuncia.
Se cumple. El árbol de accesibilidad muestra un nombre para el enlace, tomado de su contenido anidado, y el lector de pantalla lo anuncia.
No se cumple. El enlace no tiene nombre en el árbol de accesibilidad, porque su contenido no le da ninguno, lo que incumple WCAG 2.4.4 y 4.1.2.
name_internals
- Inspeccionar el enlace que indica el informe, un elemento personalizado, y anotar su rol.
- Abrir el panel Accesibilidad de las herramientas para desarrolladores del navegador y leer el nombre accesible del elemento.
- Con un lector de pantalla, desplazarse hasta el elemento y escuchar el nombre que se anuncia.
Se cumple. El árbol de accesibilidad muestra un nombre para el enlace, establecido mediante sus internals o de otro modo, y el lector de pantalla lo anuncia.
No se cumple. El enlace no tiene nombre en el árbol de accesibilidad y el lector de pantalla solo anuncia su rol, lo que incumple WCAG 2.4.4 y 4.1.2.