valid-lang

El atributo lang del elemento debe ser sintácticamente válido

automaticWCAG 3.1.2 (AA)confianza: highgravedad: moderateunderstandable

Comprueba que cualquier elemento (que no sea el <html> raíz) con un atributo lang no vacío usa una etiqueta de idioma sintácticamente válida.

Ámbito de aplicación. Se aplica a cualquier elemento que no sea el <html> raíz con un atributo lang no vacío Y al menos algo de texto, sin espacios en blanco, al que ese elemento efectivamente aplica su idioma, según ACT de46e4:

  • El texto/alt descendiente está gobernado únicamente por el ancestro más cercano que lleva lang; un descendiente anidado con su propio lang no vacío define un nuevo ámbito para todo lo que hay dentro de él, de modo que ese subárbol deja de contar para la aplicabilidad del elemento exterior (cuenta para la del elemento anidado, si ese también se está evaluando).
  • Un atributo alt no vacío en img/area/input[type=image] cuenta como texto al que se aplica ese idioma, igual que un nodo de texto.
  • El texto (o alt) que CSS mantiene fuera del árbol de renderizado (display:none, el atributo hidden, ...) no cuenta. aria-hidden y el posicionamiento fuera de pantalla NO eximen al texto, según los propios ejemplos fallidos de ACT para ambos casos; solo el no renderizado real lo hace.

Resultado esperado. El valor de lang coincide con una sintaxis de etiqueta de idioma BCP47 válida. WCAG 3.1.2 (Idioma de las partes) exige que, cuando el idioma de un pasaje difiere del idioma predeterminado de la página, se identifique de forma programática. Una etiqueta no válida no llega a identificar ningún idioma real.

Ejemplos

pass
<p lang="fr">Bonjour</p>

"fr" es una etiqueta de idioma BCP 47 sintácticamente válida.

fail
<p lang="xyz123!!">???</p>

El valor no tiene una sintaxis BCP 47 válida.

Ver código fuente