Accéder au contenu principalAccéder à la navigationAccéder au pied de page
Page d'accueil IncluddyPage d'accueil Includdy
  • FAQ
  • Blog
  • Glossaire
  • Contact
Includdy

Rendons le web accessible à tous

Produit

  • Scan automatique
  • Correction guidée
  • Collaboration

Ressources

  • FAQ
  • Blog
  • Glossaire
  • Plan du site

Légal

  • CGU
  • CGV
  • Mentions légales
  • Politique de confidentialité

© 2026 Includdy. Tous droits réservés.

  1. Accueil
  2. Glossaire
  3. En-tête de colonne ou de ligne

En-tête de colonne ou de ligne


Dans un tableau de données, un en-tête de colonne ou de ligne est la cellule qui sert d'intitulé aux autres cellules de cette colonne ou de cette ligne. En HTML, c'est la balise <th> qui remplit ce rôle. Sans elle, un lecteur d'écran restitue les cellules sans contexte : l'utilisateur entend des valeurs sans savoir à quoi elles correspondent.


Quand vous parcourez un tableau des yeux, vous faites des allers-retours entre les cellules et leurs en-têtes sans y penser. Un lecteur d'écran fait pareil, à condition que le code lui indique quelles cellules sont des en-têtes. Sans cette information, il lit des chiffres bruts, sans contexte. « 120 €. » 120 € de quoi ?

#<th> et l'attribut scope

La balise <th> marque une cellule comme en-tête. L'attribut scope précise sa portée : col pour une colonne, row pour une ligne.

<table>
  <caption>Ventes par région</caption>
  <thead>
    <tr>
      <th scope="col">Région</th>
      <th scope="col">T1</th>
      <th scope="col">T2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Nord</th>
      <td>120 €</td>
      <td>145 €</td>
    </tr>
    <tr>
      <th scope="row">Sud</th>
      <td>98 €</td>
      <td>110 €</td>
    </tr>
  </tbody>
</table>

Avec ce balisage, un lecteur d'écran annonce « Nord, T1 : 120 € » quand l'utilisateur navigue dans la cellule. Sans les <th>, il annonce « 120 € ». Rien d'autre.

Pour les tableaux simples où l'en-tête est en première ligne ou première colonne, <th> seul suffit. L'ajout de scope lève l'ambiguïté quand le tableau a des en-têtes dans les deux dimensions, ce qui est la recommandation du W3C.

#Le piège du <td> déguisé

L'erreur la plus courante : mettre le texte d'en-tête dans un <td> et le styler en gras avec du CSS. Visuellement, le résultat est identique. Pour un lecteur d'écran, la cellule reste une cellule de données ordinaire. L'association avec les autres cellules n'existe pas.

<!-- ❌ Ressemble à un en-tête, mais n'en est pas un -->
<td><strong>Région</strong></td>
 
<!-- ✅ En-tête reconnu par les technologies d'assistance -->
<th scope="col">Région</th>

Autre piège : placer l'attribut scope sur un <td>. L'attribut est réservé à <th>. Sur un <td>, il n'a aucun effet.

#Tableaux complexes : quand scope ne suffit plus

Quand un tableau contient des cellules fusionnées ou des sous-contextes, scope atteint ses limites. Il faut alors associer chaque cellule de données à ses en-têtes via les attributs id et headers, comme le détaille Access42. Le RGAA y consacre plusieurs critères dans sa thématique 5.

La meilleure stratégie reste de simplifier : scinder un tableau complexe en plusieurs tableaux simples. Les utilisateurs de lecteurs d'écran s'y retrouveront mieux. Tous les autres aussi.

#En résumé

Un en-tête de tableau, c'est une balise <th>, pas un <td> en gras. Ajoutez scope="col" ou scope="row" dès que le tableau a des en-têtes dans les deux directions. Et si votre tableau nécessite id/headers, demandez-vous s'il ne serait pas plus clair en deux tableaux.

Retour au glossaire

Partagez cet article

Partagez cet article

Pour aller plus loin

Tableau de données

Un tableau de données est un élément HTML qui organise des informations en lignes et en colonnes, où chaque cellule entretient une relation logique avec ses en-têtes. Contrairement à un tableau de mise en forme (utilisé pour disposer des éléments visuellement), un tableau de données exige un balisage sémantique (balises <th>, attribut scope, élément <caption>) pour que les lecteurs d'écran restituent le contexte de chaque valeur.

Tableau de données complexe

Un tableau de données complexe est un tableau HTML dont certains en-têtes ne couvrent pas toute leur ligne ou colonne, typiquement à cause de cellules fusionnées ou de sous-groupes d'en-têtes. L'attribut scope ne suffit plus : il faut associer chaque cellule à ses en-têtes via les attributs id et headers. Quand c'est possible, scinder le tableau en plusieurs tableaux simples reste la meilleure solution.

Légende

En accessibilité web, une légende est un texte visible qui identifie un contenu groupé. HTML propose trois balises selon le contexte : <caption> pour les tableaux, <figcaption> pour les figures, et <legend> pour les groupes de champs dans un formulaire.