landmark-unique
Las regiones de referencia con el mismo rol deben tener nombres únicos
Comprueba que, cuando dos o más regiones de referencia comparten el mismo rol, cada una tenga un nombre accesible distinto.
Ámbito de aplicación. Se aplica siempre que dos o más regiones de referencia de la página compartan el mismo rol de región de referencia (banner, contentinfo, main, navigation, complementary, region, form o search). Un elemento personalizado cuyos ElementInternals le dan un rol de landmark (this.attachInternals().role), sin un atributo role que nombre otro, es un landmark como lo es un elemento nativo con ese rol.
Resultado esperado. Entre las regiones de referencia que comparten un rol, cada una tiene un nombre accesible distinto (mediante aria-label/aria-labelledby; las regiones de referencia no se nombran a partir del contenido). Dos regiones de referencia del mismo rol con el mismo nombre (incluidas dos que se dejan sin nombrar) son indistinguibles para los usuarios de tecnología de asistencia que navegan por regiones de referencia. Un nombre compartido se informa como CANTTELL, nunca como fallo: las ARIA Authoring Practices permiten uno cuando las regiones de referencia tienen el mismo contenido y propósito, como una paginación repetida encima y debajo de una tabla, algo que solo una persona puede confirmar. Dos regiones de referencia sin nombre necesitan nombres en cualquier caso, y entonces se aplica la misma excepción a esos nombres.
Qué informa un hallazgo.
role: el rol de región de referencia que comparten las regiones que coinciden, comonavigation.name: el nombre que comparten, en minúsculas y con los espacios colapsados. Vacío cuando ninguna tiene nombre.groupSize: cuántas regiones de referencia de ese rol comparten ese nombre.
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
<nav aria-label="Primary">Primary nav</nav><nav aria-label="Footer">Footer nav</nav>
Cada región de referencia de navegación tiene un nombre accesible distinto.
<nav aria-label="Site">First</nav><nav aria-label="Site">Second</nav>
Dos regiones de referencia de navegación comparten el mismo nombre accesible, por lo que un usuario de lector de pantalla no puede distinguirlas en la lista de regiones de referencia. Una persona comprueba si su contenido es idéntico, el único caso en que las ARIA Authoring Practices permiten un nombre compartido.
<nav aria-label="Primary">Primary nav</nav><main>Content</main>
Ningún rol de región de referencia se usa más de una vez.
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_NOT_UNIQUE
- Localizar los puntos de referencia que indica el informe; comparten un mismo rol, como navigation, y un mismo nombre o ninguno.
- Observar cada uno en la página y comparar lo que contiene y para qué sirve.
- Si su finalidad es distinta (por ejemplo, el menú principal y los enlaces del pie), comprobar si cada uno tiene un aria-label o aria-labelledby que los distinga.
- Abrir el panel Accesibilidad de las herramientas para desarrolladores del navegador y confirmar el nombre que expone cada punto de referencia.
Se cumple. Los puntos de referencia contienen lo mismo con la misma finalidad (como una paginación repetida encima y debajo de una lista), o cada uno tiene ahora un nombre propio que dice qué es.
No se cumple. Puntos de referencia con contenido distinto comparten nombre o no tienen ninguno, así que no se pueden distinguir al navegar por puntos de referencia (buena práctica, ARIA13).