> For the complete documentation index, see [llms.txt](https://cours.davidannebicque.fr/mmi-noumea/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cours.davidannebicque.fr/mmi-noumea/accessibilite-s1/seance-1.md).

# Séance 1

## Les tableaux

### Les balises

* `table`
  * Définition du tableau en lui même, contiendra l'ensemble des balises suivantes
  * <https://www.w3schools.com/html/html_tables.asp>
* `tr` (table row)
  * Déclaration d'une nouvelle ligne
* `td` (table data)
  * Déclaration d'une cellule de contenu, toujours dans un tr
* `th` (table heading)
  * Déclaration d'une cellule d'en-tête (de ligne ou de colonne), toujours dans un tr)
* `thead`
  * Bloc contenant une en-tête d'un tableau, contient ensuite des lignes et des cellules
* `tbody`
  * Bloc contenant le corps d'un tableau, contient ensuite des lignes et des cellules
* `tfoot`
  * Bloc contenant le pied de page d'un tableau, contient ensuite des lignes et des cellules
* `caption`
  * La légende du tableau pour décrire son contenu
  * <https://www.w3schools.com/tags/tag_caption.asp>

Les détails dans la documentation : <https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Advanced>

### Fusionner des cellules ou des lignes

#### Colspan

permet de fusionner des cellules sur plusieurs colonnes

* `<td colspan="3">contenu</td>` fusionnera 3 cellules en une seule colonne.
* Exemple

<figure><img src="https://1283878026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F66pWwTmIg5XgNOy9cbWG%2Fuploads%2FnCc3d7i82Ipa0gTpR0Dw%2Fcap1.png?alt=media&amp;token=22c2b73f-cde0-4f08-8a68-b598f91e21d4" alt=""><figcaption><p>Colspan</p></figcaption></figure>

```html
    <table>
        <tr>
            <td colspan="2">A</td>
        </tr>
        <tr>
            <td>B</td>
            <td>C</td>
        </tr>
    </table>
```

#### Rowspan

permet de fusionner des cellules sur plusieurs lignes

* `<td rowspan="4">contenu</td>` fusionnera 4 cellules en une seule cellule occupant 4 lignes.
* Exemple

<figure><img src="https://1283878026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F66pWwTmIg5XgNOy9cbWG%2Fuploads%2FkmssfD4onnQxo2qq8ycF%2Fcap2.png?alt=media&amp;token=36bd0c94-714b-4c8e-a5c9-4cdf69699d54" alt=""><figcaption><p>rowspan</p></figcaption></figure>

```html
<table>
    <tr>
        <td rowspan="2">A</td>
        <td>B</td>
    </tr>
    <tr>
        <td>C</td>
    </tr>
</table>
```

### Exemple

Le code HTML ci-dessous&#x20;

```html
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <table>
        <caption>Tableau des produits commandés</caption>
        <thead>
            <tr>
                <th>Code produit</th>
                <th>Prix Unitaire</th>
                <th>Quantité</th>
                <th>Prix Total</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th>ABC123</th>
                <td>12.23 €</td>
                <td>1</td>
                <td>12.23 €</td>
            </tr>
            <tr>
                <th>CDE456</th>
                <td>14.00 €</td>
                <td>2</td>
                <td>28.00 €</td>
            </tr>
            <tr>
                <th>CDE786</th>
                <td>10.00 €</td>
                <td>4</td>
                <td>40.00 €</td>
            </tr>
            <tr>
                <th>CFG456</th>
                <td>21.00 €</td>
                <td>2</td>
                <td>42.00 €</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th colspan="3">Total</th>
                <th>122.23 €</th>
            </tr>
        </tfoot>
    </table>
</body>
</html>
```

va produire sans CSS le résultat ci-dessous

<figure><img src="https://1283878026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F66pWwTmIg5XgNOy9cbWG%2Fuploads%2FAlfhOiMKa1HlnPlyn0It%2Fcap3.png?alt=media&amp;token=4d767706-1b01-452f-ada3-f63e2dc23f2c" alt=""><figcaption></figcaption></figure>

### L'intérêt

Ce que dit l'accessibilité : <https://www.w3.org/WAI/tutorials/tables/>

### Le CSS

Un tableau bien construit peut plus facilement être mis en forme, sans devoir ajouter des classes CSS partout.

On peut directement mettre en forme les tr, td et th, mais aussi plus spécifiquement les tr, td et th qui sont dans le thead, le tfoot ou encore le tbody.

On peut éventuellement coupler cela à une classe ou un id sur la table et différencier, facilement plusieurs tableaux

### Qualité du Web

{% embed url="<https://checklists.opquast.com/fr/assurance-qualite-web/les-cellules-des-tableaux-de-donnees-sont-reliees-a-leurs-en-tetes>" %}

{% embed url="<https://checklists.opquast.com/fr/assurance-qualite-web/les-titres-des-tableaux-de-donnees-sont-renseignes>" %}

{% embed url="<https://checklists.opquast.com/fr/assurance-qualite-web/la-linearisation-des-tableaux-utilises-pour-la-mise-en-page-ne-nuit-pas-a-la-comprehension-des-contenus>" %}

{% embed url="<https://checklists.opquast.com/fr/assurance-qualite-web/les-tableaux-de-donnees-ne-sont-pas-simules-a-laide-de-texte-mis-en-forme>" %}

{% embed url="<https://checklists.opquast.com/fr/assurance-qualite-web/les-tableaux-de-donnees-ne-sont-pas-remplaces-par-des-images>" %}

### Exercices

Reproduire le tableau ci-dessous en utilisant les bonnes balises et en ajoutant le CSS nécessaire sans utiliser de class ou d'ID.

<figure><img src="https://1283878026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F66pWwTmIg5XgNOy9cbWG%2Fuploads%2FIpO66Rn1DVaLIka1Zev4%2Fcap4.png?alt=media&amp;token=c6931449-9efa-4f6d-82d7-07d7418220cf" alt=""><figcaption><p>Exemple à reproduire</p></figcaption></figure>

Rappel :&#x20;

L'ajout d'une feuille de style se fait avec la balise link dans le head de votre page html

```html
<head>
    ...
    <link rel="stylesheet" href="votreFichier.css">
    ...
</head>
```
