aria-deprecated-role

El atributo role no debe usar un rol ARIA obsoleto o desaconsejado para autores

automaticWCAG 4.1.2 (A)confianza: highgravedad: moderaterobust

Comprueba que un atributo role="" explícito no use un rol obsoleto según la especificación WAI-ARIA, ni uno reservado para uso interno del agente de usuario (p. ej. role="generic").

Ámbito de aplicación. Se aplica a cualquier elemento cuyo primer token (utilizado) del atributo role sea un rol ARIA válido y no abstracto que los autores no deberían declarar explícitamente, ya sea porque WAI-ARIA lo ha declarado obsoleto (p. ej. "directory", sustituido por role="list") o porque está reservado para uso interno del agente de usuario (role="generic", que ARIA 1.2 §5.4 indica que los autores NO DEBERÍAN usar en el contenido).

Resultado esperado. El rol en uso no está obsoleto ni reservado. Se gradúa según la fuerza con la que ARIA formula la regla:

  • `cantTell` en SHOULD NOT (no debería), lo que deja el uso conforme, de modo que el autor decide si importa: un rol obsoleto ("directory") o uno reservado para agentes de usuario ("generic").
  • `fail` en MUST NOT (no debe). Ningún rol de ARIA 1.2 o 1.3 lleva un MUST NOT para autores fuera de los roles abstractos, por lo que este resultado queda reservado para una revisión futura que eleve un rol a esa fuerza.

Es una decisión distinta y atómica respecto a aria-roles-valid (existencia/abstracción): un rol puede ser válido y no abstracto y, aun así, estar desaconsejado en el uso explícito por parte de los autores.

Ejemplos

pass
<ul role="list"><li>Item</li></ul>

`role="list"` es ARIA vigente, no obsoleto.

can't tell
<div role="directory"><a href="/a">Item</a></div>

`role="directory"` está obsoleto en WAI-ARIA en favor de `role="list"`; sigue siendo marcado válido, pero desaconsejado.

Ver código fuente