Rule 5.7.4

Summary

This rule checks that headers attributes on table cells (<td> or <th>) reference existing ids.

Business description

Criterion

5.7

Test

5.7.4

Description

Pour chaque contenu de balise <td> ou <th> associée à un ou plusieurs en-têtes possédant un attribut id, la balise vérifie-t-elle ces conditions ?

  • La balise possède un attribut headers.
  • L’attribut headers possède la liste des valeurs d’attribut id des en-têtes associés.

Particular cases (criterion 5.7)

Dans le cas de tableaux de données ayant des en-têtes sur une seule ligne ou une seule colonne, les en-têtes peuvent être structurés à l’aide de balise <th> sans attribut scope.

Technical notes (criterion 5.7)

Si l’attribut headers est implémenté sur une cellule déjà reliée à un en-tête (de ligne ou de colonne) avec l’attribut scope (avec la valeur col ou row), c’est l’en-tête ou les en-têtes référencés par l’attribut headers qui seront restitués aux technologies d’assistance. Les en-têtes reliés avec l’attribut scope seront ignorés.

Level

A

Technical description

Scope

Page

Decision level

Semi-Decidable

Algorithm

Selection

Set1

All <td> and <th> elements in the page:

td, th

Set2

All <td> and <th> elements with a headers attribute:

td[headers], th[headers]

Process

Test1

For each element in Set2, check that all ids referenced in the headers attribute exist in the page.

For each element returning false in Test1, raise a MessageA.

MessageA: Headers attribute references non-existent id
  • code: HeadersIdNotFound
  • status: Failed
  • parameter: tag name
  • present in source: yes

Test2

For each element in Set1, raise a MessageB for manual verification.

MessageB: Check table headers association
  • code: CheckTableHeadersAssociation
  • status: Pre-Qualified (NMI)
  • parameter: tag name
  • present in source: yes

Analysis

Not Applicable

Set1 is empty (no <td> or <th> elements in the page).

Failed

At least one element in Set2 has a headers attribute that references a non-existent id (Test1 returns false for at least one element).

Pre-Qualified

All other cases:

  • Set1 is not empty AND
  • All elements in Set2 have headers attributes referencing existing ids (or Set2 is empty)

Manual verification is required to check that the headers association is correct and complete.

Files