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
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.
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ègle | Sévérité et priorité | Ce qui est détecté | Sources | Limites |
|---|---|---|---|---|
A11Y-004v1.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-006v1.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-007v1.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-003v1.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-001v1.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-001v1.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-002v1.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-003v1.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-001v1.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-002v1.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-003v1.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-001v1.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-001v1.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-001v1.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-004v1.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-005v1.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-006v1.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-007v1.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-002v1.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-003v1.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-007v1.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-002v2.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ègle | Sévérité et priorité | Ce qui est détecté | Sources | Limites |
|---|---|---|---|---|
LMK-001v1.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-004v1.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-001v1.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-002v1.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-003v1.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ègle | Sévérité et priorité | Ce qui est détecté | Sources | Limites |
|---|---|---|---|---|
A11Y-001v1.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-002v1.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-003v1.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-005v1.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-008v1.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-001v1.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-002v1.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-004v1.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-002v1.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-003v1.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-005v1.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-006v1.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-001v1.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-005v1.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ègle | Sévérité et priorité | Ce qui est détecté | Sources | Limites |
|---|---|---|---|---|
HN-006v1.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-003v1.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-004v1.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ègle | Sévérité et priorité | Ce qui est détecté | Sources | Limites |
|---|---|---|---|---|
IDX-001v1.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-002v1.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-003v1.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-004v1.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.
- Contrôles indispensables (10) :
A11Y-001,A11Y-002,A11Y-003,IMG-001,DOC-001,DOC-002,DOC-004,DOC-006,LMK-002,LMK-003. - Poids égaux : aucune donnée publiée ne justifie de pondérer un contrôle plus qu'un autre, et ces poids ne prétendent refléter aucun critère de Google.
- Un contrôle non applicable (par exemple les images, s'il n'y a pas d'image) est retiré du dénominateur.
- Seules les erreurs confirmées font échouer un contrôle : une recommandation ou une information ne baisse pas l'indice.
- Le score parfait est impossible si un contrôle indispensable a échoué. L'indice n'est pas calculé sur un document tronqué.
- Il porte sur le HTML initial seulement. Les vérifications non effectuées ci-dessous restent à faire, quel que soit l'indice.
Vérifications non effectuées dans cette version
- DOM rendu après JavaScript : L'hébergement n'exécute pas de navigateur. Seul le HTML initial reçu est analysé ; le contenu ajouté par JavaScript n'est pas vu.
- Validation de conformité HTML complète : Le Nu Html Checker (W3C) n'est pas intégré à cette version. Les contrôles de conformité de l'outil sont un sous-ensemble documenté, pas une validation complète.
- Erreurs d'analyse syntaxique : Balises mal imbriquées, fermetures orphelines ou attributs dupliqués sont corrigés silencieusement par le parseur, comme dans un navigateur : l'outil ne les signale pas. Le Nu Html Checker les voit.
- Contrôles dépendant du CSS : Contrastes, éléments masqués par CSS, ordre visuel et texte généré par ::before ne sont pas connus sans rendu.
- Comportement au clavier et à la souris : L'ordre de tabulation réel, les pièges à focus et les interactions ne se testent qu'en usage.
- Pertinence des textes : La justesse d'une alternative d'image, d'un titre ou d'un intitulé de lien demande un humain.