Aller au contenu
Damien Hernandez

Registre des règles de l'inspecteur

48 règles déterministes, version 1.0.0 (moteur 1.1.0). Chacune porte un identifiant stable, une nature, une sévérité par défaut, au moins une source normative ou documentaire, et ses limites de détection. Cette page est générée depuis le code du moteur : elle ne peut pas diverger de ce qui est réellement appliqué.

Sévérités

Erreur confirmée
Non-respect d'une exigence écrite d'une spécification (WHATWG, ARIA in HTML) ou d'un critère WCAG de niveau A, détecté sans ambiguïté dans le HTML reçu.
Avertissement
Situation probablement problématique, mais dont l'effet dépend d'un contexte que le HTML seul ne montre pas.
Recommandation
Bonne pratique documentée (WAI-ARIA Authoring Practices, techniques WCAG). Ne pas la suivre n'est pas une non-conformité.
Information
Constat neutre, utile pour la relecture (par exemple plusieurs h1, ce qui est conforme).
Vérification manuelle
La règle a repéré un cas que seul un humain peut trancher (pertinence d'une alternative, titre masqué).
Non testé
Contrôle impossible dans ce mode ou sur ce document ; listé à part dans chaque rapport.

Priorités d'action, version 1.0

Le rapport regroupe les constats par règle et leur donne une priorité d'action, distincte de la sévérité : une erreur de conformité sans effet documenté pour le visiteur peut rester en P2, tandis qu'un avertissement qui gêne l'usage au clavier peut passer en P1. La priorité de chaque règle est écrite à la main avec son motif (colonne « Sévérité et priorité ») ; aucun calcul automatique ni modèle de langage ne la décide.

P0 · Erreur critique confirmée
Erreur confirmée, de certitude élevée, qui fait échouer un critère WCAG de niveau A ou change le rendu de la page pour tous.
P1 · Correction importante
Problème confirmé avec un effet fonctionnel ou un risque documenté.
P2 · Amélioration recommandée
Optimisation structurelle, sémantique ou d'accessibilité, ou non-conformité sans effet documenté pour le visiteur.
À vérifier
Situation suspecte qu'un humain doit trancher. Tout constat non confirmé ou de certitude faible y descend, et un P0 de certitude moyenne descend en P1.
Observation sans action requise
Constat neutre (par exemple plusieurs h1, ce qui est conforme), affiché seulement avec le filtre « Toutes les observations ».

Aucun effort de correction n'est estimé : il dépend du gabarit, du CMS et de l'équipe, que l'outil ne connaît pas. Aucune priorité n'exprime un effet sur le classement Google.

Conformité HTML (22)

Règles de nature « Conformité HTML »
RègleSévérité et prioritéCe qui est détectéSourcesLimites
A11Y-004
v1.0
Erreur confirmée
P1 · Accessibilité détectable
Non-conformité : l'étiquette n'est reliée à aucun champ ; un clic dessus ne fait rien.
label for qui ne désigne pas un champ
L'attribut for d'un label cite un id absent ou un élément non étiquetable.
for doit être l'id d'un élément étiquetable du même document.
WHATWG HTML, 4.10.4 The label element Aucune.
A11Y-006
v1.0
Erreur confirmée
P1 · Accessibilité détectable
Rôle inconnu : ignoré par les technologies d'assistance (ACT 674b10).
Valeur de role inconnue
L'attribut role ne contient aucun rôle défini par WAI-ARIA (ni DPUB-ARIA, ni Graphics-ARIA).
Un rôle inconnu est ignoré ; la sémantique voulue n'est pas transmise (règle ACT 674b10).
W3C ACT, Role attribute has valid value (674b10)
W3C WAI-ARIA 1.2
Les rôles abstraits (landmark, widget…) sont aussi refusés, comme le prévoit WAI-ARIA.
A11Y-007
v1.0
Erreur confirmée
P1 · Accessibilité détectable
Attribut inconnu : ignoré, l'état ou la propriété voulue n'est pas exposée (ACT 5f99a7).
Attribut aria-* inconnu
Un attribut commence par aria- mais n'existe pas dans WAI-ARIA.
Un attribut ARIA inconnu est ignoré, souvent à cause d'une faute (règle ACT 5f99a7).
W3C ACT, ARIA attribute is defined in WAI-ARIA (5f99a7)
W3C WAI-ARIA 1.2
Liste de référence : WAI-ARIA 1.2 et attributs du brouillon 1.3 déjà pris en charge.
IMG-003
v1.0
Erreur confirmée
P1 · Accessibilité détectable
Non-conformité : sans alt, l'image nommée ou décorative est traitée de façon incohérente selon les navigateurs.
Attribut alt absent sur une image nommée, masquée ou déclarée décorative
Un img n'a pas d'attribut alt alors qu'il porte aria-label, title, role="presentation" ou aria-hidden="true". L'accessibilité peut être assurée, mais le HTML n'est pas conforme.
La spécification exige l'attribut alt sur img, sauf exceptions (image seule dans une figure légendée notamment). Un rôle presentation sans alt="" est refusé par ARIA in HTML.
WHATWG HTML, 4.8.4.4 Requirements for providing text to act as an alternative for images
W3C ARIA in HTML (règles d'usage des rôles par élément)
Les exceptions rares de la spécification (générateur incapable de fournir une alternative, courriel privé) ne sont pas détectables.
FIG-001
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : la légende n'est plus associée à la figure (nom accessible perdu).
figcaption mal placé ou multiple
Un figcaption n'est ni le premier ni le dernier enfant de son figure, ou un figure en contient plusieurs.
Le modèle de contenu de figure n'admet qu'un figcaption, en premier ou en dernier.
WHATWG HTML, 4.4.12 The figure element Un figure sans figcaption n'est PAS signalé : il est conforme.
TAB-001
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : les relations cellule-en-tête déclarées sont rompues pour les lecteurs d'écran.
Attribut headers qui ne désigne pas un th du même tableau
Un headers de cellule cite un id absent du tableau, ou qui n'est pas un th.
La spécification exige que headers liste des id d'éléments th du même tableau.
WHATWG HTML, 4.9.11 Attributes common to td and th elements Aucune.
TAB-002
v1.1
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : l'association des en-têtes de tableau est ignorée ou faussée.
Attribut scope invalide ou sur td
scope a une valeur hors row, col, rowgroup, colgroup, ou se trouve sur un td.
scope n'est défini que sur th, avec ces quatre valeurs ; sur td il est obsolète.
WHATWG HTML, 4.9.10 The th element
WHATWG HTML, 4.9.9 The td element
Aucune.
TAB-003
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : la légende peut ne plus nommer le tableau.
caption qui n'est pas le premier enfant du tableau
L'élément caption n'est pas le premier enfant de table.
Le modèle de contenu de table place caption en premier.
WHATWG HTML, 4.9.1 The table element Un tableau sans caption n'est PAS signalé : caption est recommandé, pas exigé.
LST-001
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : les lecteurs d'écran annoncent un nombre d'éléments de liste faux.
Enfant non permis dans ul ou ol
Un ul ou ol a un enfant direct autre que li, script ou template.
Le modèle de contenu de ul et ol n'admet que des li (et des éléments de script). Les lecteurs d'écran annoncent alors un nombre d'éléments faux.
WHATWG HTML, 4.4.7 The ul element
WHATWG HTML, 4.4.8 The li element
Aucune.
LST-002
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : l'élément de liste perd sa sémantique.
li hors d'une liste
Un li n'a pour parent ni ul, ni ol, ni menu.
La spécification n'autorise li que dans ul, ol ou menu.
WHATWG HTML, 4.4.8 The li element Un li dont le parent porte role="list" est accepté.
LST-003
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : les paires terme-définition sont mal exposées.
Enfant non permis dans dl
Un dl a un enfant direct autre que dt, dd, div (regroupant dt et dd), script ou template.
Le modèle de contenu de dl est strict : les paires terme et définition doivent rester lisibles comme telles.
WHATWG HTML, 4.4.9 The dl element Le contenu des div n'est pas contrôlé en profondeur en V1.
DET-001
v1.0
Erreur confirmée
P1 · Sémantique du contenu
Non-conformité : le navigateur ajoute un intitulé générique « Détails ».
details sans summary en premier enfant
Un élément details ne commence pas par un summary.
Le modèle de contenu de details commence par un summary. Sans lui, le navigateur affiche un libellé par défaut (« Détails ») qui ne décrit rien.
WHATWG HTML, 4.11.1 The details element Aucune.
TIME-001
v1.0
Erreur confirmée
P2 · Sémantique du contenu
Non-conformité sans effet fonctionnel documenté pour le visiteur : la date n'est simplement pas lisible par une machine.
Élément time sans date ou durée lisible par machine
Un élément time n'a pas d'attribut datetime et son texte n'est pas une date, une heure ou une durée au format de la spécification ; ou son attribut datetime n'est pas dans un de ces formats.
La spécification exige que la valeur (datetime, ou à défaut le contenu) suive une des microsyntaxes de date, d'heure ou de durée. Sinon la valeur machine est perdue.
WHATWG HTML, 4.5.14 The time element Contrôle syntaxique : la cohérence du jour (31 février) n'est pas vérifiée. Les formats de durée sont reconnus sous leurs deux formes (P2DT3H et 2d 3h).
DOC-001
v1.0, indispensable
Erreur confirmée
P0 · Structure HTML
Sans doctype standard, le navigateur rend la page en mode quirks : mise en page et comportements différents des autres pages, pour tous les visiteurs.
Doctype absent ou non standard
Le document ne commence pas par le doctype HTML (<!DOCTYPE html>), seuls des commentaires et des espaces pouvant le précéder.
La spécification exige un doctype en tête de document. Sans lui, les navigateurs passent en mode de compatibilité (quirks), ce qui change le rendu CSS.
WHATWG HTML, 13.1.1 The DOCTYPE Contrôle fait sur le texte reçu, avant toute exécution de JavaScript. Les anciens doctypes (HTML 4, XHTML) sont signalés : ils sont admis par les navigateurs mais ne sont pas conformes.
DOC-004
v1.0, indispensable
Erreur confirmée
P0 · Structure HTML
Échec du critère WCAG 2.4.2 (niveau A) et non-conformité : le titre nomme l'onglet, l'historique et les favoris.
Élément title absent, vide ou multiple
Le document doit contenir exactement un élément title, non vide, dans head.
La spécification demande un title dans la plupart des contextes et au plus un ; un titre de page descriptif est aussi un critère WCAG (2.4.2, niveau A).
WHATWG HTML, 4.2.2 The title element
WHATWG HTML, 4.2.1 The head element
WCAG 2.2, critère 2.4.2 Titre de page
W3C ACT, HTML page has non-empty title (2779a5)
La pertinence du titre n'est pas évaluée. Les documents iframe srcdoc ne sont pas concernés.
DOC-005
v1.0
Erreur confirmée
P1 · Structure HTML
Risque de caractères mal décodés si l'en-tête HTTP change (proxy, CDN, copie locale).
Déclaration d'encodage absente, tardive ou différente d'UTF-8
Sans BOM ni charset dans l'en-tête Content-Type, le document doit déclarer son encodage par une balise meta placée dans les 1 024 premiers octets, et cet encodage doit être UTF-8.
La spécification impose UTF-8 et une déclaration lisible par le pré-analyseur des navigateurs, sinon le texte peut être mal décodé.
WHATWG HTML, 4.2.5.4 Specifying the document's character encoding L'encodage réel des octets n'est pas vérifié caractère par caractère.
DOC-006
v1.0, indispensable
Erreur confirmée
P1 · Structure HTML
Non-conformité. L'effet fonctionnel n'existe que si l'id est référencé (label, aria-*, ancre) : il est alors signalé à part par A11Y-005 ou A11Y-004.
Identifiants (id) dupliqués
Plusieurs éléments portent le même attribut id.
La valeur d'un id doit être unique dans l'arbre. Les associations label/champ, aria-labelledby, les ancres et les en-têtes de tableau deviennent ambiguës.
WHATWG HTML, 3.2.6.1 The id attribute Les éléments ajoutés par JavaScript ne sont pas vus (mode HTML initial).
DOC-007
v1.0
Erreur confirmée
P1 · Structure HTML
Non-conformité : un id vide ou avec espace ne peut pas être ciblé de façon fiable par une ancre, un label ou un attribut ARIA.
Identifiant (id) vide ou contenant une espace
Un attribut id est vide ou contient un caractère d'espacement.
La spécification exige au moins un caractère et aucun espacement dans un id.
WHATWG HTML, 3.2.6.1 The id attribute Aucune.
LMK-002
v1.0, indispensable
Erreur confirmée
P0 · Landmarks
Non-conformité et ambiguïté pour les technologies d'assistance : deux régions principales concurrentes.
Plusieurs éléments main visibles
Le document contient plus d'un élément main sans attribut hidden.
La spécification interdit plus d'un main qui n'a pas l'attribut hidden.
WHATWG HTML, 4.4.14 The main element Un main masqué par CSS mais sans attribut hidden est compté comme visible, ce qui est la règle.
LMK-003
v1.0, indispensable
Erreur confirmée
P1 · Landmarks
Non-conformité (main dans article, aside, header, footer ou nav) ; la région principale reste exposée, mais dans un contexte faux.
Élément main mal placé
L'élément main a un ancêtre autre que html, body, div, form sans nom accessible, ou un élément personnalisé autonome.
La spécification n'autorise main qu'à une position « hiérarchiquement correcte ».
WHATWG HTML, 4.4.14 The main element Aucune.
LMK-007
v1.0
Erreur confirmée
P1 · Landmarks
Non-conformité ARIA in HTML : le rôle forcé masque la sémantique native de l'élément.
Rôle ARIA non permis sur un élément de structure
main, nav, header ou footer portent un rôle qu'ARIA in HTML n'autorise pas sur cet élément.
Un rôle non permis remplace la sémantique native par une sémantique contradictoire.
W3C ARIA in HTML (règles d'usage des rôles par élément)
W3C HTML Accessibility API Mappings (header, footer et rôles implicites)
Contrôle limité à main, nav, header et footer en V1.
HN-002
v2.0
Erreur confirmée
P1 · Hiérarchie des titres
Non-conformité signalée par le Nu Html Checker et rupture du plan pour la navigation par titres. Aucune pénalité Google documentée.
Saut de niveau de titre dans le plan du document
Un titre a un niveau supérieur de plus d'un cran au titre qui le précède dans le plan (par exemple h2 puis h4).
Depuis 2023, la spécification HTML exige que chaque titre du plan ait un niveau inférieur, égal ou supérieur d'un cran au titre précédent ; le Nu Html Checker le signale en erreur. C'est une non-conformité, pas une pénalité de référencement : aucun effet sur le classement Google n'est documenté.
WHATWG HTML, 4.3.11 Headings and outlines
WCAG 2.2, critère 1.3.1 Information et relations
Plan calculé sur le HTML initial (titres masqués compris, comme le fait la spécification), avec headingoffset et headingreset. Les titres ajoutés par JavaScript ne sont pas vus.

Structure sémantique (5)

Règles de nature « Structure sémantique »
RègleSévérité et prioritéCe qui est détectéSourcesLimites
LMK-001
v1.0
Recommandation
P2 · Landmarks
Recommandation : sans région principale, l'accès direct au contenu par landmark n'existe pas. Pas une non-conformité.
Aucune région principale identifiable
Le document n'a ni élément main ni role="main".
Une région principale permet aux technologies d'assistance d'atteindre directement le contenu. Ce n'est pas une exigence de conformité HTML, et rien n'indique un effet sur le classement Google.
WHATWG HTML, 4.4.14 The main element
W3C WAI-ARIA Authoring Practices, Landmark Regions
Un main ajouté par JavaScript n'est pas vu en mode HTML initial.
LMK-004
v1.0
Avertissement
P1 · Landmarks
La région principale vide dans le HTML initial annonce un contenu qui n'y est pas (souvent : contenu injecté par JavaScript).
Région principale vide
L'élément main (ou role="main") ne contient ni texte ni élément de contenu.
Une région principale vide dans le HTML reçu signale souvent un contenu injecté par JavaScript, à vérifier dans le DOM rendu.
WHATWG HTML, 4.4.14 The main element
W3C WAI-ARIA Authoring Practices, Landmark Regions
Le DOM rendu n'est pas disponible en V1 : le contenu injecté par JavaScript n'est pas vu.
SEC-001
v1.0
Recommandation
P2 · Sémantique du contenu
Recommandation : une section sans titre n'apporte pas de région nommée.
Section sans titre ni nom
Un élément section ne contient pas de titre et n'a pas de nom accessible.
La spécification décrit section comme un regroupement thématique « généralement avec un titre ». Une section sans titre n'est pas invalide : div peut convenir si le regroupement n'est que visuel.
WHATWG HTML, 4.3.3 The section element Un titre ajouté par JavaScript n'est pas vu.
SEC-002
v1.0
Avertissement
P2 · Sémantique du contenu
Élément vide : nettoyage du gabarit, sans effet fonctionnel documenté.
Section ou article vide
Un élément section ou article ne contient ni texte ni média.
Un élément de sectionnement vide n'apporte aucune structure et peut signaler un contenu injecté par JavaScript.
WHATWG HTML, 4.3.3 The section element
WHATWG HTML, 4.3.2 The article element
Le contenu injecté par JavaScript n'est pas vu en mode HTML initial.
SEC-003
v1.0
Recommandation
P2 · Sémantique du contenu
Recommandation : un article est censé être identifiable hors de son contexte.
Article sans titre
Un élément article ne contient aucun titre h1 à h6.
La spécification illustre article avec un titre qui l'identifie ; sans titre, un utilisateur de lecteur d'écran ne sait pas de quel contenu il s'agit.
WHATWG HTML, 4.3.2 The article element Un article de commentaire court peut légitimement être sans titre.

Accessibilité détectable statiquement (14)

Règles de nature « Accessibilité détectable statiquement »
RègleSévérité et prioritéCe qui est détectéSourcesLimites
A11Y-001
v1.0, indispensable
Erreur confirmée
P0 · Accessibilité détectable
Échec ACT c487ae (WCAG 2.4.4 et 4.1.2, niveau A) : le lien est annoncé sans destination.
Lien sans nom accessible
Un lien (a href) n'a ni texte, ni image avec alternative, ni aria-label, ni title.
Un lien sans nom est annoncé par son URL ou par « lien » seul (règle ACT c487ae, WCAG 2.4.4 et 4.1.2).
W3C ACT, Link has non-empty accessible name (c487ae) Un texte fourni par CSS ou une icône de police n'est pas vu. Les liens masqués sont ignorés.
A11Y-002
v1.0, indispensable
Erreur confirmée
P0 · Accessibilité détectable
Échec ACT 97a4e1 (WCAG 4.1.2, niveau A) : le bouton est annoncé sans action.
Bouton sans nom accessible
Un button (ou input type=button) n'a ni texte, ni aria-label, ni title.
Un bouton sans nom ne dit pas ce qu'il fait (règle ACT 97a4e1, WCAG 4.1.2).
W3C ACT, Button has non-empty accessible name (97a4e1) Un texte fourni par CSS n'est pas vu. Les boutons masqués sont ignorés. input type=submit ou reset reçoivent un libellé par défaut du navigateur et ne sont pas signalés.
A11Y-003
v1.0, indispensable
Erreur confirmée
P0 · Accessibilité détectable
Échec ACT e086e5 (WCAG 4.1.2 et 1.3.1, niveau A) : le champ est annoncé sans intitulé.
Champ de formulaire sans nom accessible
Un input, select ou textarea n'a ni label associé, ni aria-label, ni aria-labelledby, ni title, ni placeholder.
Un champ sans nom ne dit pas quoi saisir (règle ACT e086e5, WCAG 1.3.1 et 4.1.2).
W3C ACT, Form field has non-empty accessible name (e086e5)
WHATWG HTML, 4.10.4 The label element
Un placeholder compte comme nom (comme le font les navigateurs), mais il disparaît à la saisie : un label visible reste préférable.
A11Y-005
v1.0
Erreur confirmée
P1 · Accessibilité détectable
La relation ARIA déclarée (nom, description, contrôle) n'existe pas.
Référence ARIA vers un id inexistant
aria-labelledby, aria-describedby, aria-controls ou un autre attribut à identifiants cite un id absent du document.
La relation déclarée n'existe pas : un nom ou une description attendus ne seront pas lus.
W3C WAI-ARIA 1.2 Un id ajouté plus tard par JavaScript n'est pas vu ; le constat passe alors en vérification pour aria-controls et aria-activedescendant, souvent liés à des éléments dynamiques.
A11Y-008
v1.0
Avertissement
P1 · Accessibilité détectable
Au clavier, le focus atteint un élément que les lecteurs d'écran n'annoncent pas (ACT 6cfa84).
Élément focalisable dans une zone aria-hidden
Un lien, un bouton ou un champ actif se trouve dans un élément aria-hidden="true".
Le clavier peut atteindre un élément que le lecteur d'écran ne voit pas : focus « fantôme » (règle ACT 6cfa84).
W3C ACT, Element with aria-hidden has no content in sequential focus navigation (6cfa84) Un élément masqué par CSS (display:none) n'est pas focalisable : ce cas n'est pas connu sans rendu, d'où la sévérité d'avertissement.
IMG-001
v1.0, indispensable
Erreur confirmée
P0 · Accessibilité détectable
Échec ACT 23a2a8 (WCAG 1.1.1, niveau A) : le lecteur d'écran lit le nom du fichier ou rien.
Image sans attribut alt ni autre alternative
Un élément img n'a ni alt, ni aria-label, ni aria-labelledby, ni title, et n'est pas déclaré décoratif (role="presentation" ou "none").
Sans alternative, un lecteur d'écran lit souvent le nom du fichier. La spécification exige alt sauf exceptions rares (règle ACT 23a2a8, WCAG 1.1.1).
WHATWG HTML, 4.8.4.4 Requirements for providing text to act as an alternative for images
W3C ACT, Image has non-empty accessible name (23a2a8)
Les images en arrière-plan CSS et celles ajoutées par JavaScript ne sont pas vues. Une image dans figure avec figcaption sans alt reste signalée, mais en avertissement.
IMG-002
v1.0
Vérification manuelle
À vérifier · Accessibilité détectable
La pertinence d'une alternative textuelle demande un humain.
Alternative d'image à vérifier
L'attribut alt ressemble à un nom de fichier, ou une image est le seul contenu d'un lien avec alt vide.
La pertinence d'une alternative ne se décide pas automatiquement. Ces cas sont des indices fréquents d'alternative inutile ou manquante.
WHATWG HTML, 4.8.4.4 Requirements for providing text to act as an alternative for images Constat indicatif : seul un humain sait si l'image est informative.
TAB-004
v1.0
Vérification manuelle
À vérifier · Sémantique du contenu
Tableau de mise en page ou tableau de données : l'outil ne peut pas trancher.
Tableau de données possible sans cellule d'en-tête
Un tableau d'au moins deux lignes et deux colonnes n'a aucun th, ni role de présentation.
Si le tableau présente des données, ses en-têtes doivent être des th pour que les relations soient transmises (WCAG 1.3.1). S'il sert à la mise en page, role="presentation" le déclare. Le moteur ne peut pas trancher seul.
WCAG 2.2, critère 1.3.1 Information et relations
WHATWG HTML, 4.9.10 The th element
La distinction tableau de données ou de présentation est heuristique.
DOC-002
v1.0, indispensable
Erreur confirmée
P0 · Structure HTML
Échec du critère WCAG 3.1.1 (niveau A) : les lecteurs d'écran prononcent le texte avec une langue supposée.
Langue de la page non déclarée
L'élément html n'a pas d'attribut lang, ou cet attribut est vide.
La langue déclarée permet aux lecteurs d'écran de choisir la bonne prononciation (critère WCAG 3.1.1, niveau A).
WCAG 2.2, critère 3.1.1 Langue de la page
W3C ACT, HTML page has lang attribute (b5c3f8)
WHATWG HTML, 3.2.6.2 The lang and xml:lang attributes
La langue réelle du texte n'est pas comparée à la langue déclarée.
DOC-003
v1.0
Avertissement
P1 · Structure HTML
Une étiquette de langue invalide équivaut, pour les technologies d'assistance, à une langue non déclarée (ACT bf051a).
Code de langue syntaxiquement invalide
La valeur de lang sur l'élément html ne respecte pas la syntaxe d'une étiquette de langue BCP 47.
Une étiquette invalide équivaut, pour les technologies d'assistance, à une langue inconnue.
W3C ACT, HTML page lang attribute has valid language tag (bf051a)
WHATWG HTML, 3.2.6.2 The lang and xml:lang attributes
Contrôle syntaxique seulement : la sous-étiquette n'est pas confrontée au registre IANA.
LMK-005
v1.0
Recommandation
P2 · Landmarks
Recommandation APG : plusieurs régions du même type ne se distinguent pas dans la liste des landmarks.
Landmarks de même type sans nom distinct
Plusieurs régions de même rôle (navigation, complementary, region…) n'ont pas de nom accessible qui les distingue.
Quand plusieurs landmarks partagent un rôle, les pratiques WAI-ARIA recommandent de les nommer pour qu'un utilisateur de lecteur d'écran sache lequel il atteint. Ce n'est pas une erreur de conformité.
W3C WAI-ARIA Authoring Practices, Landmark Regions Les régions masquées par CSS ne sont pas exclues.
LMK-006
v1.0
Recommandation
P2 · Landmarks
Redondance sans effet fonctionnel : nettoyage du code.
Rôle ARIA redondant
Un élément porte explicitement le rôle qu'il a déjà implicitement (par exemple <nav role="navigation">).
ARIA in HTML demande de ne pas déclarer un rôle redondant. Sans effet négatif pour l'utilisateur, c'est du bruit à retirer.
W3C ARIA in HTML (règles d'usage des rôles par élément) Seuls les éléments dont le rôle implicite ne dépend pas du contexte sont contrôlés.
HN-001
v1.1
Avertissement
P1 · Hiérarchie des titres
Un titre vide apparaît dans la liste des titres des lecteurs d'écran sans rien annoncer (ACT ffd0e9).
Titre (h1 à h6) sans nom accessible
Un titre ne contient ni texte, ni image avec alternative, ni aria-label.
Un titre vide est annoncé « titre » sans contenu par les lecteurs d'écran et casse la navigation par titres (règle ACT ffd0e9).
W3C ACT, Heading has non-empty accessible name (ffd0e9)
WCAG 2.2, critère 1.3.1 Information et relations
Un texte ajouté par CSS (::before) ou par JavaScript n'est pas vu ; les titres masqués par hidden ou aria-hidden sont ignorés.
HN-005
v1.0
Vérification manuelle
À vérifier · Hiérarchie des titres
Le masquage peut être voulu (titre pour lecteurs d'écran seulement, onglet fermé) : seul un humain tranche.
Titres masqués aux technologies d'assistance
Des titres portent hidden ou aria-hidden="true" (ou sont dans un tel conteneur).
Un titre masqué peut être voulu (onglet fermé, menu replié) ou être une erreur qui retire un repère de navigation. Seule une vérification humaine tranche.
WCAG 2.2, critère 1.3.1 Information et relations Le masquage par CSS n'est pas connu.

Recommandation éditoriale (3)

Règles de nature « Recommandation éditoriale »
RègleSévérité et prioritéCe qui est détectéSourcesLimites
HN-006
v1.0
Recommandation
P2 · Hiérarchie des titres
Recommandation de la spécification (« should »), pas une exigence.
Aucun titre de niveau 1 dans le plan
Le document contient des titres, mais aucun de niveau 1.
La spécification recommande (« should ») qu'au moins un titre du plan soit de niveau 1. Ce n'est pas une exigence de conformité ; Google indique ne pas imposer de nombre de h1.
WHATWG HTML, 4.3.11 Headings and outlines
Google Search Central, SEO Starter Guide (titres)
Les titres ajoutés par JavaScript ne sont pas vus.
HN-003
v1.0
Information
Observation · Hiérarchie des titres
Plusieurs h1 sont conformes et Google n'impose pas de nombre : simple observation.
Plusieurs titres de niveau 1
Le document contient plusieurs h1 visibles.
Plusieurs h1 sont conformes à la spécification. Google indique qu'il n'y a pas de nombre imposé de h1. Le constat est informatif : vérifier que chaque h1 introduit bien une partie majeure.
WHATWG HTML, 4.3.11 Headings and outlines
Google Search Central, SEO Starter Guide (titres)
Aucune.
HN-004
v1.0
Recommandation
P2 · Hiérarchie des titres
Recommandation éditoriale : sans titre, la navigation par titres est impossible.
Aucun titre dans le document
Le document ne contient aucun h1 à h6 ni role="heading".
Les titres structurent la lecture et la navigation au clavier ou au lecteur d'écran (WCAG 1.3.1 et 2.4.6, techniques suffisantes). Une page applicative peut s'en passer.
WCAG 2.2, critère 1.3.1 Information et relations
WCAG 2.2, critère 2.4.6 En-têtes et étiquettes
WHATWG HTML, 4.3.11 Headings and outlines
Les titres injectés par JavaScript ne sont pas vus en mode HTML initial.

Récupération et indexabilité (4)

Règles de nature « Récupération et indexabilité »
RègleSévérité et prioritéCe qui est détectéSourcesLimites
IDX-001
v1.0
Information
À vérifier · Récupération et indexabilité
Un noindex peut être voulu ; s'il ne l'est pas, la page sortira de l'index. À confirmer avec la Search Console.
Directive noindex détectée
Une balise meta robots (ou googlebot) ou un en-tête X-Robots-Tag demande de ne pas indexer la page.
Google n'indexe pas une page qui porte noindex, à condition de pouvoir l'explorer pour lire la directive. Information, pas erreur : la directive peut être voulue.
Google Search Central, Robots meta tag et X-Robots-Tag L'outil ne sait pas si la page est réellement indexée : seule la Search Console du site le dit.
IDX-002
v1.0
Avertissement
P1 · Récupération et indexabilité
Google indique ignorer les indications canoniques contradictoires : la canonicalisation est laissée à son choix.
Plusieurs balises canonical
Le document déclare plus d'une URL canonique.
Google recommande une seule déclaration canonique ; en cas de conflit, les indications peuvent être ignorées.
Google Search Central, Spécifier une URL canonique L'en-tête HTTP Link rel=canonical n'est pas encore lu en V1.
IDX-003
v1.0
Information
À vérifier · Récupération et indexabilité
Une canonique vers une autre URL peut être voulue (variante, pagination, paramètres) : à confirmer.
Canonical vers une autre URL
L'URL canonique déclarée diffère de l'URL finale analysée.
La page indique qu'une autre URL la représente. C'est normal pour un doublon, à vérifier sur une page qui doit se positionner elle-même.
Google Search Central, Spécifier une URL canonique Google peut choisir une autre canonique que celle déclarée.
IDX-004
v1.0
Information
À vérifier · Récupération et indexabilité
Le blocage peut être voulu ; s'il ne l'est pas, Googlebot n'explore pas la page.
URL bloquée par robots.txt pour Googlebot
Le robots.txt de l'hôte interdit cette URL à Googlebot.
Une URL interdite n'est pas explorée ; Google peut tout de même l'indexer sans son contenu si des liens y mènent, et il ne lira pas un éventuel noindex.
RFC 9309, Robots Exclusion Protocol
Google Search Central, Robots meta tag et X-Robots-Tag
Interprétation selon la RFC 9309 (bibliothèque Protego). Google peut différer sur des cas limites.

Indice de qualité structurelle HTML, formule v1.0

Indice = 100 × (contrôles indispensables applicables sans erreur confirmée) ÷ (contrôles indispensables applicables), arrondi à l'entier.

Vérifications non effectuées dans cette version