En-têtes irréguliers

Conception avec des en-têtes irréguliers

Un tableau est irrégulier lorsqu’un ou plusieurs de ses en-têtes englobent plusieurs colonnes ou rangées.

HTML introduit des attributs et des éléments destinés à représenter les relations entre ces en-têtes couvrant des rangées ou des colonnes et les cellules de données qu’ils définissent.

L'attribut scope

Lorsqu’un en-tête couvre plusieurs colonnes, ajouter l’attribut scope="colgroup" à l’élément <th>. Voir l’en-tête A dans le tableau ci-dessous.

Lorsqu’un en-tête s’étend sur plusieurs rangées, ajouter l’attribut scope="rowgroup" à l’élément th. Voir l’en-tête B dans le tableau ci-dessous.

Pour les en-têtes de colonne solo, ajouter l’attribut scope="col" à l’élément <th>. Voir les en-têtes A1, A2, A3 dans le tableau ci-dessous.

Pour les en-têtes de rangée solo, ajouter l’attribut scope="row" à l’élément <th>. Voir les en-têtes B1 et B2 dans le tableau ci-dessous.

Tableau comportant un en-tête de colonne et un en-tête de rangée
  A
A1 A2 A3
B B1      
B2      

Le support du lecteur d’écran pour l’attribut scope="rowgroup" est pire que le support pour l’attribut scope="colgroup". Lorsque cela est possible, concevoir des tableaux qui utilisent scope="colgroup" et éviter scope="rowgroup".

Voir le HTML
<table class="table table-bordered">
   <caption>Tableau comportant un en-tête de colonne et un en-tête de rangée</caption>
   <thead class="bg-primary">
      <tr>
        <td colspan="2" rowspan="2">&nbsp;</td>
        <th colspan="3" scope="colgroup">A</th>
      </tr>
      <tr>
        <th scope="col">A1</th>
        <th scope="col">A2</th>
        <th scope="col">A3</th>
      </tr>
   </thead>
   <tbody>
      <tr>
        <th rowspan="2" class="bg-primary" scope="rowgroup">B</th>
        <th class="bg-primary" scope="row">B1</th>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <th class="bg-primary" scope="row">B2</th>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
   </tbody>
</table>

Éléments définissant le groupe

Les tableaux irréguliers définissent également leurs colonnes individuelles et colonnes recouvrantes avec, respectivement, les éléments <col> et <colgroup>. Ces éléments sont les premiers enfants de l’élément du tableau et sont énumérés dans l’ordre dans lequel les colonnes apparaissent dans le tableau. L’attribut span de l’élément <colgroup> contient le nombre de colonnes recouvertes.

Les tableaux irréguliers définissent des groupes de rangées en utilisant les éléments <thead>, <tbody> et <tfoot>. L’élément <tbody> définit un nouveau groupe de rangées pour chaque utilisation, alors que <thead> et <tfoot> le font aussi, mais ne peuvent être utilisés qu’une seule fois par tableau.

  Bon exemple : Tableau avec en-têtes recouvrant des colonnes et des rangées

Dans cet exemple, « Pays » et « Propriété » sont des colonnes, chacune identifiée avec un élément <col>. « Scenario » couvre les colonnes, identifiées avec un élément <colgroup span="3">. Les en-têtes « Canada » et « É.-U. » et leurs rangées respectives sont emboîtés dans un élément <tbody>.

Scénarios de propriété, Canada c. États-Unis
Pays Propriété Scénario
A B C
Canada Achat probable très improbable S. O.
Location improbable très improbable très improbable
É.-U. Achat improbable très improbable très improbable
Location probable très probable S. O
Voir le HTML
<table class="table table-bordered">
   <col> 
   <col> 
   <colgroup span="3"></colgroup> 
   <caption>Scénarios de propriété, Canada c. États-Unis</caption> 
   <thead> 
      <tr class="bg-success"> 
         <th scope="col" rowspan="2">Pays</th> 
         <th scope="col" rowspan="2">Propriété</th> 
         <th scope="colgroup" colspan="3">Scénario</th> 
      </tr> 
      <tr class="bg-success"> 
         <th scope="col">A</th> 
         <th scope="col">B</th> 
         <th scope="col">C</th> 
      </tr> 
   </thead> 
   <tbody>  
      <tr> 
         <th scope="rowgroup" rowspan="2" class="bg-success">Canada</th> 
         <th scope="row" class="bg-success">Achat</th> 
         <td>probable</td> 
         <td>très improbable</td> 
         <td>S. O.</td> 
      </tr> 
      <tr> 
         <th scope="row" class="bg-success">Location</th> 
         <td>improbable</td> 
         <td>très improbable</td> 
         <td>très improbable</td> 
      </tr> 
   </tbody> 
   <tbody> 
      <tr> 
         <th scope="rowgroup" rowspan="2" class="bg-success">É.-U.</th> 
         <th scope="row" class="bg-success">Achat</th> 
         <td>improbable</td> 
         <td>très improbable</td> 
         <td>très improbable</td> 
      </tr> 
      <tr> 
         <th scope="row" class="bg-success">Location</th> 
         <td>probable</td> 
         <td>très probable</td> 
         <td>S. O</td> 
      </tr> 
   </tbody> 
</table>

Ressources WCAG connexes

Ressources WCAG connexes

Critères de succès

Techniques

Haut de la page