duplicate-id-aria
Los ID referenciados por ARIA deben ser únicos
Comprueba que cualquier valor de id referenciado por un atributo de referencia de ID de ARIA (aria-labelledby, aria-describedby, aria-owns, aria-controls, aria-activedescendant, aria-flowto, aria-errormessage, aria-details) sea único en el documento.
Ámbito de aplicación. Se aplica cuando el documento contiene al menos un atributo aria-labelledby, aria-describedby, aria-owns, aria-controls, aria-activedescendant, aria-flowto, aria-errormessage o aria-details no vacío (es decir, existe al menos una referencia de ID de ARIA que resolver).
Resultado esperado. Para cada valor de id referenciado por uno de esos atributos, exactamente un elemento del documento tiene ese id. Un duplicado no rompe la referencia: se resuelve en el primer elemento según el orden del árbol, por lo que el nombre se sigue calculando. Si ese elemento es el destino previsto depende de la intención del autor, que el marcado no transmite, por lo que el resultado es cantTell.
Qué informa un hallazgo.
id: el id duplicado al que hace referencia un atributo ARIA.duplicateCount: cuántos elementos del documento llevan ese id.
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
<span id="lbl">Name</span><input type="text" aria-labelledby="lbl">
El id lbl es único, por lo que la referencia se resuelve sin ambigüedad.
<span id="lbl">Name</span><span id="lbl">Duplicate</span><input type="text" aria-labelledby="lbl">
aria-labelledby="lbl" se resuelve en el primer elemento con ese id: si ese es el destino previsto es una cuestión de autoría que el marcado no puede responder.
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.
DUPLICATE_ID_ARIA_REFERENCED
- Inspeccionar el elemento que indica el informe y anotar el atributo ARIA y el id duplicado al que remite.
- En las herramientas para desarrolladores, buscar id="the-id" en el marcado y anotar cada elemento que lo tiene y su texto; el navegador usa el primero.
- Abrir el panel Accesibilidad de las herramientas para desarrolladores del navegador sobre el elemento que hace la referencia y leer el nombre o la descripción que recibe.
- Compararlo con el texto junto al elemento en pantalla (por ejemplo, el título de su propia tarjeta).
Se cumple. El nombre o la descripción procede del elemento previsto, o todos los duplicados tienen el mismo texto.
No se cumple. El elemento que hace la referencia recibe el texto de un elemento equivocado, como la tarjeta 2 nombrada con el título de la tarjeta 1, lo que incumple WCAG 4.1.2 (y 1.3.1).