Tableaux complexes

Un tableau de données complexe est un tableau dont les cellules d'entête s'étendent sur plusieurs colonnes et/ou lignes. Plusieurs éléments et attributs peuvent être utilisés pour définir la structure et les relations de l'entête et des cellules de données.

Structure du tableau de données complexe

Tableaux de données complexes

Les tableaux de données devront respecter les règles d’accessibilité suivantes :

  • Le tableau de données aura un titre, celui-ci doit être balisé avec l’élément HTML <caption> 
  • un groupe de lignes est défini par les éléments thead, tbody et tfoot :
    • Les éléments thead et tfoot ne peuvent être utilisés qu’une seule fois dans un tableau ;
    • Un tableau peut avoir n’importe quel nombre d’éléments tbody ; chaque élément tbody définissant un groupe de lignes.
    • Les lignes d’entête seront encadrées par les balises <thead>...</thead> 
    • Les lignes de données seront encadrées par les balises <tbody>...</tbody> 
  • Les cellules d’entête de ligne et de colonne seront encadrées par les balises <th>...</th>.
  • colgroup et col peuvent être utilisé pour grouper et identifier des colonnes au sein d’un tableau.
  • On implémentera l’attribut scope sur les balises <th> :
    • si la cellule d’entête porte sur la ligne complète, on écrira <th scope="row">
    • si la cellule d’entête porte sur la un groupe de lignes et s’applique à toutes ses cellules, on écrira <th scope="rowgroup">
    • si la cellule d’entête porte sur la colonne entière, on écrira <th scope="col">
    • si la cellule d’entête porte sur un groupe de colonne et concerne toutes ses cellules, on écrira <th scope="colgroup">
  • Une autre façon de coder le tableau consiste à utiliser les attributs headers et id ; headers sera appliqué sur la cellule de données et contriendra les id des cellules d’entête correspondantes.

Résumé du tableau de données complexe

Lorsque le tableau de données est complexe, il est important d’en proposer un résumé. Différentes techniques peuvent être utilisées pour fournir ce résumé aux utilisateurs.

caption

L’élément caption, qui propose un titre de tableau, peut fournir également le résumé qui décrit la composition du tableau.

Visuel

Disponibilité des logements
La première colonne indique le nombre de chambre, les autres colonnes indiquent le type de logement et le nombre de logement disponible.
Studio Appartement Maison Villa avec piscine
Paris
1 chambre 11 20 25 -

HTML

<table>
<caption>Disponibilité des logements<br>
  <span>La première colonne indique le nombre de chambre, les autres colonnes indiquent le type de logement et le nombre de logement disponible.</span>
</caption>
...
</table>

aria-describedby

aria-describedby fera référence à l’id d’un élément HTML qui présentera le résumé du tableau. Une bonne pratique consiste à proposer ce résumé à proximité du tableau.

<p id="description">La première colonne indique le nombre de chambre, les autres colonnes indiquent le type de logement et le nombre de logement disponible.</p>
<table aria-describedby="description">
<caption>Disponibilité des logements</caption>
...
</table>

Exemples de tableaux complexes

Test de l’accessibilité du tableau

On veillera à ce que tous les contenus et toutes les fonctionnalités du tableau soient disponibles quelle que soit la taille de l’écran.
En particulier, on veillera à ne pas supprimer de fonctionnalités (menus, systèmes de filtres, cartes interactives, etc.) et/ou de contenus (tableaux de données, vidéos, etc.) sur les vues responsive.
On veillera aussi à ce que le contenu linéarisé du tableau reste compréhensible. Pour cela, avec l’extension de navigateur « web developper » cliquer :

  • sur « Misceallanous »
  • puis sur « Linearize page ».

remarque

Le critère 10.11 du RGAA mentionne Pour chaque page web, lorsque le contenu dont le sens de lecture est horizontal est affiché dans une fenêtre réduite à une largeur de 320px, l’ensemble des informations et des fonctionnalités sont-elles disponibles sans aucun défilement horizontal (hors cas particuliers) ?. Les tableaux font partie des cas particuliers où l'ascenseur horizontal peut être affiché.