RGAA Lab

RGAA 4.1.2 · Tableaux · Critère 5.8

Chaque tableau de mise en forme ne doit pas utiliser d’éléments propres aux tableaux de données. Cette règle est-elle respectée ?

Un tableau de mise en page qui porte des en-têtes ment au lecteur d'écran : il annonce une grille de données là où il n'y a qu'une disposition, et fait entendre des étiquettes qui ne veulent rien dire.

Ce que dit le référentiel

Transcription du RGAA 4.1.2, sans interprétation. C’est ce texte qui fait foi, et celui que vous citez dans un rapport.

  1. 5.8.1
    Chaque tableau de mise en forme (balise <table>) vérifie-t-il ces conditions ?
    • Le tableau de mise en forme (balise <table>) n’a pas d’attribut summary (sinon vide) et ne contient pas de balises <caption>, <th>, <thead>, <tfoot> ou de balises ayant un attribut WAI-ARIA role="rowheader", role="columnheader" ;
    • Les cellules du tableau de mise en forme (balises <td>) ne possèdent pas d’attributs scope, headers et axis.

Comment le vérifier

  1. Pour chaque tableau identifié comme étant de mise en forme, ouvrir son balisage.
  2. Vérifier l'absence de <caption>, <th>, <thead>, <tfoot>, et de tout role="columnheader" ou role="rowheader".
  3. Vérifier l'absence de summary non vide sur le <table>, et de scope, headers ou axis sur les <td>.
  4. Si l'un de ces éléments est présent, deux issues : soit le tableau porte en réalité des données — et c'est le 5.6 qu'il faut lire — soit il faut les retirer.

Ce que notre outil fait

Assisté

Le moteur repère les éléments concernés et vous pose la question. Il ne conclut pas à votre place.

L'outil sait lister les marques propres aux tableaux de données présentes dans un <table> donné. Ce qu'il ne sait pas, c'est si ce tableau est de mise en forme : la question précède l'analyse, et c'est vous qui y répondez.

Comment nous mesurons ce que l'outil sait faire · ce critère s'audite dans l'extension RGAA Lab.

Les pièges

Les erreurs qu’on rencontre vraiment, relevées au fil des audits.

  • Un gabarit d'e-mail collé dans une page traîne presque toujours un <thead> décoratif.
  • role="presentation" sur le <table> neutralise la sémantique à l'exécution, mais le test porte sur le balisage : les éléments doivent être retirés.

À lire avec