HTML5 : sémantique et structure
⏱ 50 minHTML (HyperText Markup Language) définit la structure d'une page web. HTML5 introduit des balises sémantiques qui donnent du sens au contenu.
Structure d'une page HTML5 complète
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CodeGraft Academy</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<nav>
<a href="/">Accueil</a>
<a href="/parcours">Parcours</a>
</nav>
</header>
<main>
<article>
<h1>Introduction au Machine Learning</h1>
<p>Le ML permet aux machines d'apprendre depuis les données.</p>
</article>
<aside>Ressources complémentaires</aside>
</main>
<footer>© 2026 CodeGraft Academy</footer>
</body>
</html>
Balises sémantiques clés : <header>, <nav>, <main>, <article>, <section>, <aside>, <footer>.
Formulaires — essentiels pour les applications :
<form action="/submit" method="POST">
<input type="email" name="email" required placeholder="ton@email.com">
<input type="password" name="mdp" minlength="8">
<select name="niveau">
<option value="debutant">Débutant</option>
<option value="avance">Avancé</option>
</select>
<button type="submit">S'inscrire</button>
</form>
Ressource : MDN Web Docs (référence absolue) — https://developer.mozilla.org/fr/docs/Web/HTML
✍️ Exercices de la leçon
2 exercicesFais-les dans l'ordre, dans un vrai fichier .py — pas dans ta tête. Ne déplie la correction qu'après avoir écrit quelque chose, même faux.
Exercice A — Une page projet en HTML sémantique
Application directe · Tu appliques ce que tu viens de lire.
Crée une page HTML5 complète présentant un projet ML : titre, description, métriques obtenues, auteur, et un formulaire de contact.
Contraintes :
1. structure sémantique complète — header, nav, main, article, aside, footer
2. un seul h1 sur la page, et une hiérarchie de titres sans trou (pas de h3 sans h2 au-dessus)
3. chaque champ du formulaire associé à son label
4. lang="fr" et la balise viewport
Passe ensuite la page au [validateur du W3C](https://validator.w3.org/) : elle doit sortir sans erreur.
Exercice B — Sortir de la soupe de div
Page blanche · Aucun squelette : à toi de choisir la méthode.
Page blanche. Refonte et démonstration.
Voici une page qui « marche » visuellement :
<div class="top">
<div class="menu">
<div class="lien" onclick="go('/')">Accueil</div>
<div class="lien" onclick="go('/blog')">Blog</div>
</div>
</div>
<div class="contenu">
<div class="gros-titre">Mon article</div>
<div class="texte">Le contenu de l'article…</div>
<div class="petit-titre">Commentaires</div>
</div>
<div class="bas">© 2026</div>
- 1.réécris-la en HTML sémantique
- 2.prouve que ta version est meilleure — trouve au moins trois différences concrètes et vérifiables
- 3.teste la navigation au clavier uniquement, sans souris, sur les deux versions
- 4.explique pourquoi
onclicksur undivest un problème et pas seulement un choix de style
Le point 3 est le cœur de l'exercice. Débranche ta souris pour de vrai.