Mode sans média : les images ne sont pas affichées, et celles qui sont chargées à la demande ne sont pas téléchargées. Poids de cette page : —.

Balises hn : le plan des titres d’une page

À partir de l’adresse d’une page ou de son code HTML, l’outil affiche ses titres h1 à h6 dans l’ordre, tels qu’un lecteur d’écran les annonce.

Exemple : https://www.example.org

Ou collez du code HTML
Une page entière ou un extrait, lu dans votre navigateur sans les feuilles de style. Un titre ne sort du plan que par hidden, aria-hidden, noscript, un details fermé, un role autre que heading, ou un display: none ou visibility: hidden écrit dans style.

Résultat

Exemple : le plan d’une page de démonstration. Donnez une adresse ou collez du code pour le remplacer.

9 titres lus par un lecteur d’écran : rien à signaler.

  • 9 titres lus Par un lecteur d’écran
  • 1 titre principal (h1) Unique
  • 0 saut de niveau Aucun
  • 0 titre vide Aucun
  • 1 masqués ou non lus 1 masqué

Les titres ne sont qu’un des 13 thèmes du RGAA. Le pré-audit gratuit vérifie toute la page : contrastes, images, formulaires, liens… Lancer le pré-audit gratuit

Ce qui demande votre attention

  • Rien à signaler Aucun titre vide, aucun saut de niveau, et un titre principal. Reste à juger si chaque titre décrit bien sa section.

Le plan des titres, dans l’ordre de lecture

Le retrait suit le niveau du titre. Un titre signalé porte un « ! » s’il est à corriger, un « ? » s’il est à examiner.

  1. h2 Navigation principale masqué à l’écran, lu par un lecteur d’écran
  2. h1 Cours de poterie pour adultes
  3. h2 Les formules
  4. h3 Initiation en une séance
  5. h3 Cycle de dix séances
  6. h2 Infos pratiques
  7. h3 Horaires
  8. h3 Accès
  9. h2 Nous contacter

Outil gratuit Critère 9.1

En bref

Il sépare ce qui est à corriger, comme un titre vide, de ce qui est seulement à examiner, comme un saut de niveau.

  • Les titres h1 à h6 et les éléments role="heading", avec le texte qu’un lecteur d’écran annonce : le texte des images compris, aria-label pris en compte.
  • Par adresse, la page est ouverte dans un navigateur sur notre serveur, scripts compris : les titres ajoutés par JavaScript sont lus, et ceux que le style retire de la lecture sont signalés.
  • Un code collé est lu dans votre navigateur : rien n’est envoyé.
  • À corriger : un titre vide, un role="heading" sans aria-level valide. À examiner : un saut de niveau, l’absence de h1, un titre très long.
  • Un saut de niveau ou une page sans h1 ne rendent pas le critère 9.1 non conforme, tant que la hiérarchie reste cohérente.

Limites du verdict : l’outil lit le code des titres, pas leur sens. Il ne dit pas si la hiérarchie suit la logique du contenu, si chaque titre décrit bien sa section, ni si un texte qui a l’aspect d’un titre est codé comme tel (test 9.1.3). Il ne lit pas les titres des iframes et s’arrête aux 500 premiers titres. Pour un code collé, il ne lit pas les composants web (shadow DOM) et, sans les feuilles de style, il ne voit pas les titres masqués par une classe CSS.

Toute la page à vérifier ? Lancer l’analyseur gratuit

Ce que demande le critère 9.1

Le critère 9.1 du RGAA 4.1.2 demande que, dans chaque page, l’information soit structurée par une utilisation appropriée des titres. Il compte trois tests :

  • 9.1.1 : la hiérarchie entre les titres est pertinente ;
  • 9.1.2 : le contenu de chaque titre est pertinent ;
  • 9.1.3 : chaque passage de texte qui constitue un titre est codé avec une balise h1 à h6, ou avec role="heading" associé à aria-level.

Les trois tests demandent un jugement : est-ce que l’ordre des titres suit la logique du contenu, est-ce qu’un titre décrit bien sa section ? L’outil prépare ce jugement en montrant le plan tel qu’il est codé. Il ne peut pas le rendre à votre place.

Ce qui est à corriger, ce qui est à examiner

L’entrée « Titre » du glossaire tranche deux questions qui reviennent sans cesse. Une stricte hiérarchie est une bonne pratique, mais un saut de niveau n’invalide pas le critère tant que la hiérarchie reste cohérente : un h3 peut suivre un h1. Et la hiérarchie n’a pas obligatoirement de h1. Ces deux cas sont donc présentés comme des points à examiner, pas comme des fautes.

Deux cas sont, eux, à corriger :

  • Un titre vide. Un lecteur d’écran annonce un titre, puis rien. Son contenu ne peut pas être pertinent au sens du test 9.1.2. C’est souvent une balise laissée par un constructeur de pages, ou une icône sans texte de remplacement.
  • Un role="heading" sans aria-level. Le test 9.1.3 demande les deux attributs ensemble, et la spécification WAI-ARIA 1.2 rend aria-level obligatoire sur ce rôle. Une balise h1 à h6 reste plus simple : la note technique du critère la dit préférable. L’outil le relève par adresse comme dans un code collé.

Un titre de plus de 120 caractères est aussi relevé, comme point à examiner. Le glossaire cite les balises h utilisées « à seule fin de créer un effet typographique » parmi les usages interdits par le critère 8.9 : un paragraphe mis en gras par un h3 en est l’exemple courant.

Le RGAA, le standard HTML et le référencement ne disent pas la même chose

Le standard HTML est plus strict que le RGAA sur un point : un titre ne doit descendre que d’un niveau à la fois par rapport au précédent, et au moins un titre devrait être de niveau 1. Une page qui saute du h2 au h4 n’est donc pas conforme au HTML, même si elle peut l’être au RGAA. Remonter de plusieurs niveaux, du h4 au h2, est permis partout.

Côté référencement, le guide de démarrage de Google dit qu’un ordre sémantique des titres sert les lecteurs d’écran, mais que leur ordre ne compte pas pour la recherche Google, et qu’il n’y a pas de nombre idéal de titres. Les règles qu’on lit souvent, un seul h1 obligatoire, au moins deux h2, ne viennent ni du RGAA ni de Google.

Ce que lit l’outil

Par adresse, la page est ouverte dans Chromium, sur notre serveur, scripts compris. Les titres et leur nom viennent de l’arbre d’accessibilité du navigateur, celui que reçoivent les lecteurs d’écran : le texte d’une image par son alt, un aria-label à la place du texte. Chaque titre est rangé dans un de ces trois cas :

  • lu et affiché ;
  • lu mais masqué à l’écran, par exemple un h2 « Navigation principale » réservé aux lecteurs d’écran. Le glossaire le considère comme présent : il compte dans le plan ;
  • présent dans le code mais pas lu comme titre : retiré de la lecture par display: none, hidden ou aria-hidden="true", ou lu comme simple texte quand un role, comme role="presentation" ou role="button", lui ôte son rôle de titre. Il n’entre pas dans le plan, ni dans le calcul des sauts.

Par adresse, les titres des composants web (shadow DOM ouvert) sont lus ; ils ne le sont pas dans un code collé. Dans les deux modes, les titres des iframes ne sont pas lus, et l’analyse s’arrête aux 500 premiers titres, ce que le résultat indique.

Pour un code collé, rien ne quitte votre navigateur. Sans les feuilles de style, l’outil ne voit pas une classe qui masque un titre : seuls l’attribut hidden, aria-hidden, noscript et un display: none ou visibility: hidden écrit dans l’attribut style le retirent de la lecture, ainsi qu’un details fermé, comme le fait le navigateur. Un role autre que heading sur une balise h1 à h6, comme role="presentation", lui retire son rôle de titre : son texte est lu, mais plus comme un titre. L’outil ne lit pas non plus le texte ajouté en CSS par ::before.

Corriger un plan de titres

  • Partez du contenu, pas de l’aspect : un titre est un titre parce qu’il annonce une section. La taille se règle en CSS, sur n’importe quel niveau.
  • Dans un CMS, cherchez l’origine des titres vides et des niveaux inattendus dans le thème : widgets de barre latérale, pied de page et blocs réutilisables y posent souvent des h2 ou des h4 sans rapport avec la page.
  • Lisez la liste « Les titres, dans l’ordre du code » comme une table des matières : si elle ne permet pas de comprendre la page, la hiérarchie n’est pas pertinente, avec ou sans saut.
  • Confirmez avec un lecteur d’écran : NVDA affiche la liste des titres avec NVDA+F7 (Insert+F7 par défaut), VoiceOver sur Mac avec le rotor (Ctrl+Option+U).

Sources

RGAA 4.1.2, critère 9.1 (information structurée par des titres) ; RGAA 4.1.2, glossaire : Titre ; RGAA 4.1.2, critère 8.9 (balises utilisées à des fins de présentation) ; RGAA 4.1.2, glossaire : Uniquement à des fins de présentation ; WCAG 2.1, critère de succès 1.3.1 Info and Relationships, en anglais ; WCAG 2.1, critère de succès 2.4.6 Headings and Labels, en anglais ; Technique H42 des WCAG : titres codés en h1 à h6, en anglais ; HTML Living Standard : titres et plan du document, en anglais ; WAI-ARIA 1.2 : le rôle heading, en anglais ; Guide de l’utilisateur de NVDA : liste des éléments (NVDA+F7) ; Apple, utiliser le rotor de VoiceOver sur Mac ; Google Search Central, guide de démarrage du référencement .

Page mise à jour le 11 novembre 2026.

Questions fréquentes

Que sont les balises hn ?

Ce sont les six balises de titre du HTML, de h1 à h6. Le chiffre donne le niveau : h1 pour le titre de la page, h2 pour une grande partie, h3 pour une sous-partie, et ainsi de suite. Les lecteurs d’écran s’en servent pour lister les titres et sauter de section en section, comme on parcourt une table des matières.

Peut-on mettre plusieurs h1 sur une page ?

Le RGAA ne l’interdit pas, et le standard HTML non plus. Le standard HTML recommande seulement qu’au moins un titre soit de niveau 1. Un seul h1, qui dit de quoi parle la page, reste le plan le plus lisible ; l’outil compte les h1 sans en faire un défaut.

Un saut de niveau, de h2 à h4, est-il une erreur ?

Pas pour le RGAA : son glossaire précise qu’un saut n’invalide pas le critère 9.1 tant que la hiérarchie reste cohérente, et qu’un h1 n’est pas obligatoire. Le standard HTML, lui, demande de ne descendre que d’un niveau à la fois. Corriger le saut est donc une bonne pratique, à décider au cas par cas.

Un titre masqué à l’écran compte-t-il ?

Oui. Le glossaire du RGAA considère comme présents les titres cachés visuellement en CSS, par exemple un h2 « Navigation principale » lu seulement par les lecteurs d’écran. Un titre retiré par display: none, hidden ou aria-hidden="true" n’est en revanche plus lu du tout : l’outil le montre à part.

L’ordre des balises hn compte-t-il pour Google ?

Selon le guide de démarrage du référencement de Google, des titres dans l’ordre servent les lecteurs d’écran, mais leur ordre ne compte pas pour la recherche Google, et il n’existe pas de nombre idéal de titres. Un plan clair sert d’abord les lecteurs, et aide aussi à comprendre la page.

Pourquoi l’outil trouve-t-il des titres que je ne vois pas ?

Il lit ce que reçoit un lecteur d’écran, pas ce qui est affiché. Un menu ou une fenêtre peut contenir des titres masqués à l’écran, et un thème peut en ajouter dans un bloc invisible. À l’inverse, un texte en gros caractères dans une balise p ou div n’est pas un titre : il n’apparaît pas dans le plan.

Adresse ou code collé : lequel choisir ?

L’adresse lit la page comme un navigateur, scripts et feuilles de style compris : elle voit les titres ajoutés par JavaScript et ceux masqués par une classe CSS. Elle lit aussi les composants web (shadow DOM ouvert). Le code collé ne quitte pas votre navigateur : utile pour une page en préparation, ou derrière une connexion, avec le code copié depuis l’inspecteur du navigateur.

Un audit RGAA, critère par critère

Un outil vérifie un point. L’audit teste à la main les 106 critères sur chaque page de l’échantillon et livre la déclaration d’accessibilité. À partir de 1 500 € HT pour un échantillon de 8 pages.

Voir l’audit RGAA Poser une question

À lire sur le sujet

Outils complémentaires

Tous les outils gratuits