9.3. Baliser les entêtes des tableaux de données complexes avec <th> et headers et id
Un tableau de données complexe est un tableau dans lequel les cellules d’entêtes ne s’appliquent pas systématiquement à la totalité des cellules de données d’une ligne ou d’une colonne.
Pour associer les entêtes aux données dans ce type de tableaux, utiliser les attributs id (identifiants) sur les cellules <th> et headers sur les cellules <td>.
Il s’agit ensuite de renseigner l’attribut headers avec les identifiants des cellules d’entêtes associées. Si plusieurs entêtes sont associés à une cellule de données, les identifiants doivent être séparés par des espaces dans headers.
Remarque
Dans le cas d’un tableau de données complexe, la balise <caption> doit fournir une explication de la structure et de la nature du tableau pour les lecteurs d’écran.
<table>
<caption>Températures moyennes mensuelles des 3 plus grandes villes de France et d'Espagne <span class="sr-only">(la première colonne indique le mois, et les autres colonnes indiquent les températures en fonction du pays et de la ville)</span></caption>
<tr>
<td></td>
<th id="col1" colspan="3">France</th>
<th id="col2" colspan="3">Espagne</th>
</tr>
<tr>
<td></td>
<th id="col3" headers="col1">Paris</th>
<th id="col4" headers="col1">Marseille</th>
<th id="col5" headers="col1">Lyon</th>
<th id="col6" headers="col2">Madrid</th>
<th id="col7" headers="col2">Barcelone</th>
<th id="col8" headers="col2">Valence</th>
</tr>
<tr>
<th id="row1">Juin</th>
<td headers="col1 col3 row1">22°C</td>
<td headers="col1 col4 row1">28°C</td>
<td headers="col1 col5 row1">26°C</td>
<td headers="col2 col6 row1">32°C</td>
<td headers="col2 col7 row1">26°C</td>
<td headers="col2 col8 row1">26°C</td>
</tr>
<tr>
<th id="row2">Juillet</th>
<td headers="col1 col3 row2">24°C</td>
<td headers="col1 col4 row2">30°C</td>
<td headers="col1 col5 row2">28°C</td>
<td headers="col2 col6 row2">34°C</td>
<td headers="col2 col7 row2">28°C</td>
<td headers="col2 col8 row2">30°C</td>
</tr>
</table>
| France | Espagne | |||||
|---|---|---|---|---|---|---|
| Paris | Marseille | Lyon | Madrid | Barcelone | Valence | |
| Juin | 22°C | 28°C | 26°C | 32°C | 26°C | 26°C |
| Juillet | 24°C | 30°C | 28°C | 34°C | 28°C | 30°C |
Attention
L’attribut headers ne doit pas être utilisé en combinaison de l’attribut scope.
Remarque
Une bonne pratique d’accessibilité consiste à respecter un ordre logique lorsque les valeurs des attributs id des cellules d’entêtes associées à une cellule de données sont intégrées dans l’attribut headers de cette dernière.
En effet, un lecteur d’écran (synthèse vocale et/ou plage braille) annoncera les entêtes dans cet ordre.
Commentaires
Laisser un commentaire
Mises à jour
- 03/09/2025
- Déplacement de cette fiche + ajout d’un nouvel exemple