Module HTML.6 – Listes & tableaux
Objectif
Maîtriser les listes (<ul>, <ol>, <li>) et les tableaux (<table>, <thead>, <tbody>) avec les bonnes pratiques pour structurer des données de manière accessible et sémantique.
Théorie
Listes non ordonnées (<ul>)
Syntaxe :
<ul>
<li>Élément 1</li>
<li>Élément 2</li>
<li>Élément 3</li>
</ul>
Utilisation :
- Menu de navigation
- Liste d'éléments sans ordre particulier
- Puces
Listes imbriquées :
<ul>
<li>Élément 1</li>
<li>Élément 2
<ul>
<li>Sous-élément 2.1</li>
<li>Sous-élément 2.2</li>
</ul>
</li>
<li>Élément 3</li>
</ul>
Listes ordonnées (<ol>)
Syntaxe :
<ol>
<li>Premier élément</li>
<li>Deuxième élément</li>
<li>Troisième élément</li>
</ol>
Attributs :
<!-- Commencer à 5 -->
<ol start="5">
<li>Élément 5</li>
<li>Élément 6</li>
</ol>
<!-- Ordre inversé -->
<ol reversed>
<li>Élément 3</li>
<li>Élément 2</li>
<li>Élément 1</li>
</ol>
<!-- Type de numérotation -->
<ol type="A">
<li>Élément A</li>
<li>Élément B</li>
</ol>
Types :
1: Chiffres (défaut)A: Lettres majusculesa: Lettres minusculesI: Chiffres romains majusculesi: Chiffres romains minuscules
Listes de description (<dl>)
Syntaxe :
<dl>
<dt>Terme 1</dt>
<dd>Définition 1</dd>
<dt>Terme 2</dt>
<dd>Définition 2</dd>
</dl>
Utilisation :
- Glossaires
- Définitions
- Métadonnées
Tableaux : Structure de base
Structure minimale :
<table>
<tr>
<td>Cellule 1</td>
<td>Cellule 2</td>
</tr>
<tr>
<td>Cellule 3</td>
<td>Cellule 4</td>
</tr>
</table>
Éléments :
<table>: Conteneur du tableau<tr>: Ligne (table row)<td>: Cellule de données (table data)<th>: Cellule d'en-tête (table header)
Tableaux : Structure complète
Structure recommandée :
<table>
<caption>Titre du tableau</caption>
<thead>
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
<th>Colonne 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Donnée 1</td>
<td>Donnée 2</td>
<td>Donnée 3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Total</td>
<td colspan="2">100</td>
</tr>
</tfoot>
</table>
Éléments :
<caption>: Titre du tableau<thead>: En-tête<tbody>: Corps<tfoot>: Pied
Attributs des cellules
colspan : Fusionner colonnes
<tr>
<td colspan="2">Cellule sur 2 colonnes</td>
<td>Cellule normale</td>
</tr>
rowspan : Fusionner lignes
<tr>
<td rowspan="2">Cellule sur 2 lignes</td>
<td>Cellule 1</td>
</tr>
<tr>
<td>Cellule 2</td>
</tr>
scope : Portée des en-têtes
<thead>
<tr>
<th scope="col">Nom</th>
<th scope="col">Âge</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Jean</th>
<td>30</td>
</tr>
</tbody>
Valeurs :
col: En-tête de colonnerow: En-tête de lignecolgroup: Groupe de colonnesrowgroup: Groupe de lignes
Accessibilité des tableaux
Bonnes pratiques :
- Utiliser
<caption>pour le titre - Utiliser
<th>pour les en-têtes - Utiliser
scopesur les<th> - Utiliser
<thead>,<tbody>,<tfoot> - Éviter les tableaux pour la mise en page (utiliser CSS)
Exemple accessible :
<table>
<caption>Liste des étudiants</caption>
<thead>
<tr>
<th scope="col">Nom</th>
<th scope="col">Prénom</th>
<th scope="col">Note</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Dupont</th>
<td>Jean</td>
<td>15/20</td>
</tr>
</tbody>
</table>
Exercices guidés
Exercice 1 : Listes de base
Créez :
- Une liste non ordonnée avec 5 éléments
- Une liste ordonnée avec 5 éléments
- Une liste de description avec 3 termes
Exercice 2 : Listes imbriquées
Créez une liste imbriquée :
- Menu principal avec sous-menus
- Utilisez
<ul>et<ol>imbriqués
Exercice 3 : Tableau simple
Créez un tableau avec :
- 3 colonnes
- 4 lignes de données
- En-têtes avec
<th>
Exercice 4 : Tableau complet
Créez un tableau avec :
<caption><thead>,<tbody>,<tfoot>scopesur les en-têtes- Fusion de cellules (
colspan/rowspan)
Exercice 5 : Tableau accessible
Créez un tableau accessible avec :
- Toutes les bonnes pratiques
- Testez avec un screen reader (si possible)
❌ Erreurs fréquentes
Erreur 1 : Utiliser des divs pour les listes
❌ Mauvais :
<div class="liste">
<div>Élément 1</div>
<div>Élément 2</div>
</div>
✅ Bon :
<ul>
<li>Élément 1</li>
<li>Élément 2</li>
</ul>
Pourquoi : Sémantique et accessibilité.
Erreur 2 : Tableaux pour la mise en page
❌ Mauvais :
<table>
<tr>
<td>Colonne gauche</td>
<td>Colonne droite</td>
</tr>
</table>
✅ Bon :
<div class="container">
<div class="colonne-gauche">Colonne gauche</div>
<div class="colonne-droite">Colonne droite</div>
</div>
Pourquoi : Utiliser CSS pour la mise en page, pas les tableaux.
Erreur 3 : Oublier les en-têtes de tableau
❌ Mauvais :
<table>
<tr>
<td>Nom</td>
<td>Âge</td>
</tr>
</table>
✅ Bon :
<table>
<thead>
<tr>
<th scope="col">Nom</th>
<th scope="col">Âge</th>
</tr>
</thead>
</table>
Pourquoi : Accessibilité (screen readers).
Erreur 4 : Pas de caption
❌ Mauvais :
<table>
<thead>...</thead>
</table>
✅ Bon :
<table>
<caption>Liste des étudiants</caption>
<thead>...</thead>
</table>
Pourquoi : Contexte pour les screen readers.
Erreur 5 : Oublier scope
❌ Mauvais :
<th>Nom</th>
✅ Bon :
<th scope="col">Nom</th>
Pourquoi : Indique la portée de l'en-tête.
🚀 Mini-projet
Mission : Créer un tableau de données complet
Créez une page tableau.html avec :
Contenu :
- Un tableau avec
<caption> - Structure complète (
<thead>,<tbody>,<tfoot>) - En-têtes avec
scope - Fusion de cellules (
colspan/rowspan) - Données réalistes (ex: notes d'étudiants, budget, etc.)
Accessibilité :
- Toutes les bonnes pratiques
- Testez avec navigation clavier
- Vérifiez la structure sémantique
Critères :
- ✅ Structure de tableau complète
- ✅ Accessibilité (caption, scope, th)
- ✅ Fusion de cellules appropriée
- ✅ Données cohérentes
Objectif : Maîtriser les listes et tableaux de manière professionnelle et accessible.
Validation : Vous pouvez passer au module suivant quand vous maîtrisez les listes, tableaux et avez créé un tableau accessible complet.