landmark-role-name-present
Los roles region y form deben tener un nombre accesible
Comprueba que un elemento con role="region" o role="form" tenga un nombre accesible, sin el cual no se expone como región de referencia.
Ámbito de aplicación. Se aplica a los elementos cuyo atributo role se resuelve en region o form (su primer token conocido y no abstracto, sin distinguir mayúsculas de minúsculas: role="foo region" cuenta, role="search region" es una región de referencia search), y que están incluidos en el árbol de accesibilidad. También entra en el alcance un elemento personalizado cuyos ElementInternals le dan uno de esos roles (this.attachInternals().role), sin un atributo role que nombre otro: es su rol por defecto, y ninguna otra regla lo comprueba.
Resultado esperado. El elemento tiene un nombre accesible no vacío procedente de aria-labelledby, aria-label o title. WAI-ARIA lo exige ("Authors MUST give each element with role region a brief label", y lo mismo para form), y sin él el elemento no se expone en absoluto como región de referencia, así que se pierde el rol que pidió el autor. Se informa como CANTTELL en lugar de FAIL: el requisito es de WAI-ARIA, no de un criterio de éxito de WCAG. A la tecnología de asistencia no le llega nada falso, ya que recibe un contenedor simple, así que si la pérdida de la región de referencia perjudica a alguien depende de la página.
Qué informa un hallazgo.
role: el rol que necesita un nombre,regionoform.
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
<div role="region" aria-labelledby="news-h"><h2 id="news-h">Latest news</h2>...</div>
La región se nombra mediante su encabezado visible, así que se expone como una región de referencia llamada "Latest news".
<div role="region"><h2>Latest news</h2>...</div>
role="region" sin nombre: WAI-ARIA exige uno, y sin él el elemento se expone como un contenedor simple, no como una región de referencia. No es un fallo, ya que el requisito no nombra ningún criterio de WCAG; una persona decide si importa la pérdida de la región de referencia.
<section><h2>Latest news</h2>...</section>
Ningún role pide una región de referencia. Un <section> sin nombre no pretende serlo.
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.
LANDMARK_ROLE_NAME_MISSING
- Inspeccionar el elemento que indica el informe y anotar su rol (region o form).
- Observar el contenido que envuelve y cualquier encabezado visible a su inicio.
- Decidir si la zona es lo bastante importante como para que los usuarios puedan saltar a ella como punto de referencia.
- Si es así, comprobar si se le da un nombre, por ejemplo con aria-labelledby apuntando a su encabezado.
Se cumple. La zona no necesita ser un punto de referencia (y el rol se puede quitar), o se le da un nombre que la convierte en uno.
No se cumple. Una zona pensada como punto de referencia no tiene nombre, así que no se expone como tal, lo que incumple el requisito de WAI-ARIA de que los roles region y form tengan etiqueta (buena práctica, ARIA13).