RGAA Lab

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

Chaque page web est-elle définie par un type de document ?

Sans type de document, le navigateur bascule en mode de compatibilité : le rendu et l'arbre d'accessibilité ne sont plus ceux qu'attendent les technologies d'assistance, et personne ne peut prédire ce qui sera restitué.

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.1.1
    Pour chaque page web, le type de document (balise doctype) est-il présent ?
  2. 8.1.2
    Pour chaque page web, le type de document (balise doctype) est-il valide ?
  3. 8.1.3
    Pour chaque page web possédant une déclaration de type de document, celle-ci est-elle située avant la balise <html> dans le code source ?

Comment le vérifier

  1. Afficher le code source envoyé par le serveur, pas l'inspecteur : c'est le source qui porte la déclaration.
  2. Vérifier qu'elle est présente, qu'elle est valide (<!DOCTYPE html> pour HTML5) et qu'elle précède la balise <html>.
  3. Contrôle rapide en console : document.compatMode vaut CSS1Compat en mode standard, BackCompat sinon.
  4. Sur un site à gabarits, vérifier plusieurs pages : l'oubli est presque toujours local à un gabarit particulier.

Ce que notre outil fait

Détecté automatiquement

Notre moteur tranche seul sur ce critère : un échec est une non-conformité, avec la preuve qui va avec.

L'extension lit document.doctype et conclut seule sur la présence et le nom. Une déclaration placée après <html> est purement ignorée par l'analyseur du navigateur : elle apparaît comme absente, ce qui donne le bon verdict mais pas la bonne explication — c'est le source qui vous dira laquelle des deux erreurs vous avez.

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.

  • Un <!DOCTYPE html PUBLIC …> hérité de XHTML n'est pas invalide en soi, mais il fait cohabiter deux jeux de règles avec du balisage HTML5 : c'est le signe d'un gabarit jamais repris.
  • Une page servie dans un cadre a son propre document : elle se vérifie séparément.

À lire avec