RGAA Lab

RGAA 4.1.2 · Éléments obligatoires · Critère 8.3

Dans chaque page web, la langue par défaut est-elle présente ?

Sans langue déclarée, un lecteur d'écran lit le français avec une voix anglaise : au mieux pénible, le plus souvent inintelligible.

Ce que dit le référentiel

Transcription du RGAA 4.1.2, sans interprétation. C’est ce texte qui fait foi, et celui que vous citez dans un rapport.

  1. 8.3.1
    Pour chaque page web, l’indication de langue par défaut vérifie-t-elle une de ces conditions ?
    • L’indication de la langue de la page (attribut lang et/ou xml:lang) est donnée pour l’élément html ;
    • L’indication de la langue de la page (attribut lang et/ou xml:lang) est donnée sur chaque élément de texte ou sur l’un des éléments parents.

Comment le vérifier

  1. Vérifier que l'élément html porte un attribut lang (ou xml:lang) avec une valeur non vide.
  2. À défaut, le référentiel admet une seconde voie : la langue indiquée localement, texte par texte ou par un parent qui les couvre. Il faut alors parcourir la page et vérifier qu'aucun contenu n'y échappe.
  3. Sur une page multilingue, la langue par défaut est celle du contenu majoritaire ; les autres passages relèvent du 8.7.

Ce que notre outil fait

Assisté

Le moteur repère les éléments concernés et vous pose la question. Il ne conclut pas à votre place.

La règle vérifie une chose : que html porte un lang non vide. Elle ne connaît pas la seconde voie de conformité admise par le test, où la langue est indiquée localement — une page conforme par cette voie fait donc échouer la règle. Son échec vous désigne une page à relire, il ne prononce pas la non-conformité.

Règles ACT du W3C mises en œuvre : b5c3f8

Comment nous mesurons ce que l'outil sait faire · ce critère s'audite dans l'extension RGAA Lab.

Les pièges

Les erreurs qu’on rencontre vraiment, relevées au fil des audits.

  • lang="" vaut absence. Un gabarit qui écrit lang="{{ locale }}" sans valeur produit exactement cela en production, alors que la préproduction va bien.
  • Le lang doit être sur html, pas sur body : un lecteur d'écran lit le titre de la page avant d'entrer dans le corps.

À lire avec