Un ordinateur posé sur des galets.

Créer un tableau en HTML

Publié le

Dans cet article, nous allons découvrir comment créer des tableaux en HTML de manière accessible et structurée. Nous verrons comment utiliser les balises <table>, <tr>, <td> et <th>, ainsi que les bonnes pratiques pour rendre vos tableaux lisibles et accessibles.

Qu'est-ce qu'un tableau HTML ?

Les tableaux HTML permettent d'organiser des données en lignes et colonnes. Ils sont particulièrement utiles pour présenter des informations structurées comme des horaires, des statistiques, des comparaisons de produits ou des résultats de recherche.

Étape 1 : La structure de base d'un tableau

Un tableau HTML commence toujours par la balise <table>. Voici les éléments pour créer un tableau simple :

<table>
    <tr>
        <th>Nom</th>
        <th>Âge</th>
        <th>Ville</th>
    </tr>
    <tr>
        <td>Marie</td>
        <td>28</td>
        <td>Paris</td>
    </tr>
    <tr>
        <td>Pierre</td>
        <td>35</td>
        <td>Lyon</td>
    </tr>
</table>

Explication des éléments

  • <table> : L'élément conteneur qui englobe tout le tableau. C'est la structure principale qui regroupe toutes les lignes et cellules.
  • <tr> (table row) : Définit une ligne dans le tableau. Chaque ligne contient des cellules qui peuvent être des en-têtes ou des données.
  • <th> (table header) : Définit une cellule d'en-tête. Par défaut, le texte est en gras et centré. Les en-têtes sont importantes pour l'accessibilité car ils permettent aux lecteurs d'écran d'identifier la structure du tableau.
  • <td> (table data) : Définit une cellule de données ordinaire. C'est là que vous placez le contenu principal de votre tableau.

Résultat

Nom Âge Ville
Marie 28 Paris
Pierre 35 Lyon

Étape 2 : Structurer avec thead, tbody et tfoot

Pour améliorer la sémantique et l'accessibilité de vos tableaux, il est recommandé d'utiliser les éléments de regroupement :

<table>
    <thead>
        <tr>
            <th>Produit</th>
            <th>Prix</th>
            <th>Quantité</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Ordinateur</td>
            <td>899 €</td>
            <td>5</td>
        </tr>
        <tr>
            <td>Souris</td>
            <td>29 €</td>
            <td>15</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="2">Total</td>
            <td>20 articles</td>
        </tr>
    </tfoot>
</table>

Explication des éléments de regroupement

  • <thead> : Regroupe les lignes d'en-tête du tableau. Cet élément aide les navigateurs et les lecteurs d'écran à identifier la section d'en-tête, ce qui est particulièrement utile pour les longs tableaux où l'en-tête peut être répété lors de l'impression.
  • <tbody> : Contient le corps principal du tableau avec les données. Il permet de séparer clairement le contenu des données des en-têtes et du pied de page.
  • <tfoot> : Définit le pied du tableau, généralement utilisé pour les totaux ou les résumés. Il peut être placé avant ou après le tbody dans le code, mais sera toujours affiché en bas du tableau.
  • colspan : Attribut qui permet à une cellule de s'étendre sur plusieurs colonnes. Dans l'exemple, la cellule "Total" s'étend sur 2 colonnes.

Résultat

Produit Prix Quantité
Ordinateur 899 € 5
Souris 29 € 15
Total 20 articles

Étape 3 : Ajouter un caption pour l'accessibilité

L'élément <caption> fournit un titre descriptif pour votre tableau :

<table>
    <caption>Horaires d'ouverture de la bibliothèque</caption>
    <thead>
        <tr>
            <th>Jour</th>
            <th>Heures</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Lundi - Vendredi</td>
            <td>9h00 - 18h00</td>
        </tr>
        <tr>
            <td>Samedi</td>
            <td>10h00 - 16h00</td>
        </tr>
        <tr>
            <td>Dimanche</td>
            <td>Fermé</td>
        </tr>
    </tbody>
</table>

Résultat

Horaires d'ouverture de la bibliothèque
Jour Heures
Lundi - Vendredi 9h00 - 18h00
Samedi 10h00 - 16h00
Dimanche Fermé

Étape 4 : Utiliser rowspan et colspan

Ces attributs permettent de fusionner des cellules horizontalement ou verticalement :

<table>
    <tr>
        <th rowspan="2">Nom</th>
        <th colspan="2">Contact</th>
    </tr>
    <tr>
        <th>Email</th>
        <th>Téléphone</th>
    </tr>
    <tr>
        <td>Sophie</td>
        <td>sophie@email.com</td>
        <td>01 23 45 67 89</td>
    </tr>
</table>

Explication

  • rowspan="2" : La cellule s'étend sur 2 lignes verticalement
  • colspan="2" : La cellule s'étend sur 2 colonnes horizontalement

Résultat

Nom Contact
Email Téléphone
Sophie sophie@email.com 01 23 45 67 89

Bonnes pratiques pour l'accessibilité

  • Utilisez toujours des éléments <th> pour les en-têtes de colonnes et de lignes
  • Ajoutez un <caption> pour décrire le contenu du tableau
  • Structurez vos tableaux avec <thead>, <tbody> et <tfoot>
  • Utilisez l'attribut scope sur les <th> pour clarifier les relations (scope="col" ou scope="row")
  • Évitez d'utiliser des tableaux pour la mise en page, réservez-les aux données tabulaires
  • Assurez-vous que vos tableaux sont responsive et lisibles sur mobile

Sources

Un homme assi à son bureau au milieu des post-it La gestion d'état : le système nerveux de vos applications

Comprendre la gestion d'état : rôle, défis et principes (source unique de vérité, immuabilité, architecture). Exemples concrets et Redux expliqué simplement.

Un homme assis derrière un ordinateur avec du code à l'écran Les API Web expliquées simplement

Comprendre les API web, leur fonctionnement et leur utilisation au quotidien. Un guide pratique pour curieux et développeurs.

Dessin d'un explorateur de fichiers avec une structure de dossiers bien organisée d'un côté et mal organisé de l'autre Nommer ses dossiers et fichiers : évitez les pièges courants

Découvrez les erreurs à éviter lors du nommage de vos dossiers et fichiers dans un projet web : espaces, accents, caractères spéciaux, noms génériques...