svg-text-alternative-present

<svg> debe proporcionar una alternativa textual

automaticWCAG 1.1.1 (A)confianza: highgravedad: seriousperceivable

Comprueba que los elementos <svg> en línea proporcionan una alternativa textual mediante un elemento <title> o un nombre ARIA (un elemento <desc> por sí solo no cuenta).

Ámbito de aplicación. Se aplica a los elementos <svg> en línea que se exponen a las tecnologías de asistencia Y que parecen destinados a transmitir información. "Destinado a transmitir información" se aproxima de forma determinista mediante al menos uno de los siguientes:

  • role="img", role="graphics-symbol" o role="graphics-document" en el propio elemento raíz del SVG (los roles del WAI-ARIA Graphics Module, junto con img). NO se extiende a descendientes arbitrarios con role="img"/"graphics-symbol"/"graphics-document" anidados dentro de un <svg>. El alcance de esta comprobación es solo la raíz del <svg>; role-img-text-alternative-present cubre esos mismos tres roles en cualquier otro elemento, incluidas formas SVG anidadas (el propio ejemplo fallido de ACT 7d6734: una raíz `<svg>` desnuda con un `<circle role="graphics-symbol">` anidado).
  • aria-label / aria-labelledby presente
  • <title> o <desc> presente (desc por sí solo es solo una señal de aplicabilidad, ver @expectation)
  • enfocable/tabulable (por ejemplo, tabindex, foco nativo)

Las imágenes con role="presentation" o role="none" solo se excluyen cuando no son enfocables. Los elementos que de otro modo estarían ocultos del árbol de accesibilidad siguen siendo aplicables si son enfocables mediante tabulación o si se referencian mediante relaciones IDREF (según las comprobaciones de elegibilidad del motor).

Resultado esperado. Cada elemento <svg> aplicable proporciona una alternativa textual mediante:

  • texto <title> no vacío, O
  • un nombre ARIA (aria-label / aria-labelledby).

Un elemento <desc> por sí solo NO satisface esto: según la especificación SVG Accessibility API Mappings §7.1, <desc> solo contribuye a la DESCRIPCIÓN accesible, nunca al NOMBRE accesible. Un <svg> con solo un <desc> y sin <title>/nombre ARIA sigue siendo "aplicable" (desc es una señal de intención del autor) pero no supera la comprobación.

Ejemplos

pass
<svg role="img"><title>Close</title></svg>

`<title>` proporciona el nombre accesible para un SVG con un rol img explícito.

fail
<svg role="img"></svg>

No hay `<title>`, `<desc>` ni nombre ARIA.

Reglas relacionadas

Ver código fuente