Module HTML.5 – Images & médias
Objectif
Maîtriser l'intégration d'images (<img>), comprendre les formats d'images, créer des images responsive, et intégrer vidéo/audio pour un contenu multimédia professionnel.
Théorie
Balise <img>
Syntaxe de base :
<img src="image.jpg" alt="Description de l'image">
Attributs essentiels :
src: Chemin vers l'image (obligatoire)alt: Texte alternatif (obligatoire pour l'accessibilité)
Attribut alt (obligatoire)
Rôle :
- Accessibilité (screen readers)
- Affichage si l'image ne charge pas
- SEO (moteurs de recherche)
Bonnes pratiques :
<!-- ✅ Bon : descriptif -->
<img src="chat.jpg" alt="Chat roux assis sur un canapé">
<!-- ❌ Mauvais : vide ou générique -->
<img src="chat.jpg" alt="">
<img src="chat.jpg" alt="image">
<img src="chat.jpg" alt="chat.jpg">
Règles :
- Décrire ce que l'image montre
- Être concis (100-125 caractères max)
- Si décorative :
alt=""(mais préférer CSS)
Formats d'images
JPEG (.jpg, .jpeg) :
- Photos, images complexes
- Compression avec perte
- Pas de transparence
PNG (.png) :
- Images avec transparence
- Graphiques, logos
- Compression sans perte (plus lourd)
GIF (.gif) :
- Animations simples
- Transparence (1 bit)
- Limité à 256 couleurs
WebP (.webp) :
- Format moderne (Google)
- Meilleure compression que JPEG/PNG
- Support transparence
- Support limité (fallback nécessaire)
SVG (.svg) :
- Vectoriel (scalable)
- Léger pour les icônes/logos
- Modifiable avec CSS/JS
Images responsive
srcset et sizes
srcset : Plusieurs sources selon la résolution
<img src="image-small.jpg"
srcset="image-small.jpg 300w,
image-medium.jpg 600w,
image-large.jpg 1200w"
sizes="(max-width: 600px) 300px,
(max-width: 1200px) 600px,
1200px"
alt="Description">
sizes : Taille d'affichage selon le viewport
<picture> : Contrôle total
<picture>
<source media="(min-width: 1200px)" srcset="image-large.jpg">
<source media="(min-width: 600px)" srcset="image-medium.jpg">
<img src="image-small.jpg" alt="Description">
</picture>
Avantages :
- Art direction (images différentes selon l'écran)
- Formats modernes avec fallback
<picture>
<source type="image/webp" srcset="image.webp">
<source type="image/jpeg" srcset="image.jpg">
<img src="image.jpg" alt="Description">
</picture>
Attributs importants
width et height
<img src="image.jpg" alt="Description" width="800" height="600">
Avantages :
- Réserve l'espace (évite le layout shift)
- Performance (CLS - Cumulative Layout Shift)
loading
<img src="image.jpg" alt="Description" loading="lazy">
Valeurs :
lazy: Chargement différé (images hors viewport)eager: Chargement immédiat (défaut)
decoding
<img src="image.jpg" alt="Description" decoding="async">
Valeurs :
async: Décodage asynchronesync: Décodage synchroneauto: Défaut (navigateur décide)
Vidéo : <video>
Syntaxe de base :
<video src="video.mp4" controls>
Votre navigateur ne supporte pas la vidéo.
</video>
Attributs :
<video src="video.mp4"
controls
autoplay
loop
muted
poster="thumbnail.jpg"
width="800"
height="600">
Votre navigateur ne supporte pas la vidéo.
</video>
Plusieurs formats (fallback) :
<video controls>
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
Votre navigateur ne supporte pas la vidéo.
</video>
Bonnes pratiques :
- Toujours inclure
controls - Fournir plusieurs formats
- Texte de fallback
posterpour la miniature
Audio : <audio>
Syntaxe :
<audio src="audio.mp3" controls>
Votre navigateur ne supporte pas l'audio.
</audio>
Plusieurs formats :
<audio controls>
<source src="audio.ogg" type="audio/ogg">
<source src="audio.mp3" type="audio/mpeg">
Votre navigateur ne supporte pas l'audio.
</audio>
Figure et Figcaption
<figure> : Conteneur pour média avec légende
<figure>
<img src="image.jpg" alt="Description">
<figcaption>Légende de l'image</figcaption>
</figure>
Avantages :
- Sémantique (légende associée)
- Accessibilité
- SEO
Exercices guidés
Exercice 1 : Image de base
Créez une page avec :
- Une image avec
srcetaltdescriptif - Testez avec
altvide (image décorative) - Testez avec image manquante (vérifiez l'affichage de
alt)
Exercice 2 : Formats d'images
Créez des images dans différents formats :
- JPEG pour une photo
- PNG pour un logo avec transparence
- SVG pour une icône
Exercice 3 : Images responsive
Créez une image responsive avec :
srcsetavec 3 taillessizesselon le viewport- Testez sur différentes tailles d'écran
Exercice 4 : Picture element
Créez un <picture> avec :
- Format WebP avec fallback JPEG
- Différentes images selon la taille d'écran
Exercice 5 : Vidéo et audio
Créez :
- Une vidéo avec contrôles et poster
- Un audio avec contrôles
- Utilisez
<figure>pour la vidéo avec légende
❌ Erreurs fréquentes
Erreur 1 : Oublier l'attribut alt
❌ Mauvais :
<img src="image.jpg">
✅ Bon :
<img src="image.jpg" alt="Description">
Pourquoi : Obligatoire pour l'accessibilité.
Erreur 2 : Alt non descriptif
❌ Mauvais :
<img src="chat.jpg" alt="image">
✅ Bon :
<img src="chat.jpg" alt="Chat roux assis sur un canapé">
Pourquoi : Le alt doit décrire l'image pour les screen readers.
Erreur 3 : Images non optimisées
❌ Mauvais :
<img src="photo-10mb.jpg" alt="Photo">
✅ Bon :
<img src="photo-optimized-200kb.jpg" alt="Photo">
Pourquoi : Performance (temps de chargement).
Erreur 4 : Pas de width/height
❌ Mauvais :
<img src="image.jpg" alt="Description">
✅ Bon :
<img src="image.jpg" alt="Description" width="800" height="600">
Pourquoi : Évite le layout shift (CLS).
Erreur 5 : Vidéo sans fallback
❌ Mauvais :
<video src="video.mp4" controls></video>
✅ Bon :
<video controls>
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
Votre navigateur ne supporte pas la vidéo.
</video>
Pourquoi : Compatibilité navigateurs.
🚀 Mini-projet
Mission : Créer une galerie d'images responsive
Créez une page gallery.html avec :
Contenu :
- 6 images avec
altdescriptifs - Images responsive avec
srcsetetsizes - Utilisation de
<figure>et<figcaption>pour chaque image - Une vidéo avec contrôles et poster
- Un audio avec contrôles
Optimisations :
- Images optimisées (formats appropriés)
widthetheightsur les imagesloading="lazy"pour les images hors viewport- Formats multiples pour vidéo/audio
Critères :
- ✅ Toutes les images ont un
altdescriptif - ✅ Images responsive (srcset/sizes)
- ✅ Utilisation de figure/figcaption
- ✅ Vidéo et audio avec fallback
- ✅ Performance optimisée
Objectif : Maîtriser l'intégration d'images et médias de manière professionnelle.
Validation : Vous pouvez passer au module suivant quand vous maîtrisez les images, vidéos, audio et avez créé une galerie responsive optimisée.