← Retour aux coursProgrammation

HTML donne du sens au contenu avant même qu’il soit stylé.

Apprends à construire une page sémantique, accessible, structurée pour les navigateurs, les moteurs de recherche et les technologies d’assistance.

Niveau · débutantLecture · 30 minPratique · incluse
Illustration de code HTML
PrérequisAucun
ObjectifUne page sémantique complète
RéférenceMDN Web Docs

Objectifs d’apprentissage

  • écrire la structure minimale d’un document HTML ;
  • choisir les éléments selon leur sens plutôt que leur apparence ;
  • créer liens, images, listes et formulaires accessibles ;
  • comprendre le rôle du head, des métadonnées et de l’attribut lang ;
  • éviter les erreurs qui rendent une page difficile à utiliser ou à maintenir.

1. La structure minimale

<!doctype html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Mon projet</title>
  </head>
  <body>
    <h1>Titre principal</h1>
    <p>Mon premier contenu.</p>
  </body>
</html>

<!doctype html> indique un document HTML moderne. L’attribut lang="fr" aide notamment les lecteurs d’écran à prononcer correctement le contenu. Le head contient les métadonnées ; le body, le contenu affiché.

2. La sémantique : le bon élément pour le bon rôle

Un élément HTML doit décrire ce que représente le contenu. Un bouton doit être un <button>, un lien une balise <a>, un titre un élément <h1> à <h6>. Cette discipline apporte gratuitement une partie du comportement clavier, de l’accessibilité et de la compréhension machine.

<header>

En-tête d’une page ou d’une section.

<nav>

Groupe principal de liens de navigation.

<main>

Contenu principal unique de la page.

<article> / <section>

Contenu autonome ou regroupement thématique.

3. Titres, paragraphes et hiérarchie

Les titres structurent le document. Le plus important n’est pas leur taille visuelle mais leur relation logique. Utilise généralement un h1 principal puis des h2 pour les grandes sections, et descends de niveau lorsque le contenu est réellement imbriqué.

Erreur fréquenteChoisir h3 parce qu’il « a la bonne taille ». La taille appartient au CSS ; le niveau du titre appartient à la structure.

4. Liens et images

Un bon texte de lien doit annoncer la destination : « Lire le guide CSS » est plus utile que « cliquez ici ». Pour les images, l’attribut alt décrit la fonction ou l’information portée par l’image.

<a href="/cours/css.html">Lire le cours CSS</a>
<img src="diagramme.png" alt="Schéma des couches d’une application web">

Une image purement décorative peut avoir alt="" afin de ne pas ajouter du bruit aux technologies d’assistance.

5. Listes et tableaux

Utilise <ul> pour une liste sans ordre, <ol> lorsqu’il existe une séquence, et les éléments de tableau uniquement pour de vraies données tabulaires.

<table>
  <caption>Résultats</caption>
  <thead>
    <tr><th scope="col">Nom</th><th scope="col">Score</th></tr>
  </thead>
  <tbody>...</tbody>
</table>

6. Formulaires accessibles

Chaque champ doit avoir un libellé compréhensible. Le name identifie la donnée envoyée, le type décrit le type d’entrée, et les attributs natifs comme required, minlength ou autocomplete peuvent améliorer l’expérience.

<label for="email">Adresse e-mail</label>
<input id="email" name="email" type="email" autocomplete="email" required>

Un placeholder ne doit pas remplacer un vrai label : il disparaît pendant la saisie et peut être difficile à interpréter.

8. Accessibilité : commencer par le HTML natif

  • conserver un ordre de source logique ;
  • rendre les actions utilisables au clavier ;
  • utiliser de vrais boutons et liens ;
  • associer les labels aux champs ;
  • écrire des textes alternatifs pertinents ;
  • ne pas dépendre uniquement de la couleur pour transmettre une information.

MDN insiste sur ce principe : un HTML sémantique apporte déjà de nombreux mécanismes d’accessibilité intégrés au navigateur.

9. Déboguer son HTML

Lis d’abord la structure dans les outils développeur du navigateur. Vérifie les balises mal imbriquées, les liens cassés, les images sans alternative et l’ordre des titres. Les validateurs HTML peuvent ensuite compléter cette vérification.

Mini-lab HTML

Change le contenu, vois le résultat

Modifie le titre puis applique-le à l’aperçu.

aperçu

Bonjour, explorateur du web !

Le HTML donne une structure au contenu.

Exercice — crée une page de profil

Construis uniquement en HTML une page contenant : un en-tête, une navigation, un main, une section « À propos », une liste de compétences, une image avec texte alternatif, un lien vers un projet et un formulaire de contact avec labels. Ne pense pas encore au CSS.

HTML sémantique · atelier progressif

Créer une page accessible sans dépendance

HTML décrit des rôles et une hiérarchie. Un titre principal <h1> indique le sujet, <main> délimite le contenu principal et une balise <button> correspond à une action. Un lien sert à naviguer ; un formulaire doit associer chaque champ à un label visible. Commencer par le HTML natif réduit la quantité de JavaScript nécessaire.

Pratique pas à pas

  1. Crée un fichier index.html dans un dossier de pratique, puis copie la structure ci-dessous.
  2. Ouvre le fichier dans un navigateur ; vérifie le titre de l’onglet, l’ordre des titres et le lien.
  3. Parcours la page uniquement au clavier avec Tab et Entrée. Ajoute ensuite une image avec un alt utile et un vrai formulaire de contact avec un label.

Exemple à essayer

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Mon premier portfolio</title>
</head>
<body>
  <header><a href="#contenu">Aller au contenu</a></header>
  <main id="contenu">
    <h1>Mes projets</h1>
    <p>Je découvre le développement web.</p>
    <a href="projets.html">Voir mes projets</a>
  </main>
</body>
</html>

Ce que tu dois observer : La page reste compréhensible sans feuille CSS. Le navigateur affiche un titre, un paragraphe et un lien avec un comportement de clavier natif.

Erreur fréquente : Utiliser des div partout ou employer un lien vide pour simuler un bouton : cela nuit à la navigation et à l’accessibilité.

Vérifie que tu as compris

Quel élément sert à l’action « Envoyer » dans un formulaire ?

Un bouton de type submit dans le formulaire : <button type="submit">Envoyer</button>.

Pourquoi faut-il utiliser des labels et du texte alternatif adaptés ?

Ils rendent les contrôles et images compréhensibles, notamment pour les lecteurs d’écran.

Une fois l’atelier réalisé et les questions comprises, valide cette étape dans ton parcours.

À retenir

  • HTML décrit la structure et le sens.
  • La sémantique améliore accessibilité, maintenance et compréhension machine.
  • Le CSS ne doit pas corriger une structure HTML mal choisie.
  • Un formulaire accessible commence par des labels et des contrôles natifs adaptés.
Pause active

Teste ta compréhension

Pourquoi préférer un vrai <button> à un <div> cliquable ?

Références

Cours suivant

Donner une forme au contenu avec CSS.

Continuer →