Checklist finale & Optimisation
â Checklist de validation
Section titled ââ Checklist de validationâ- Code valide (W3C Validator)
- Toutes les balises sont fermées
- Attributs
altsur toutes les images - Un seul
<h1>par page - HiĂ©rarchie de titres logique (h1 â h2 â h3)
- Pas dâIDs dupliquĂ©s
Erreurs fréquentes
- Balises non fermées :
<div>...</div>manquant altmanquant sur<img>- HiĂ©rarchie incorrecte : h1 â h3 (saute h2)
- IDs dupliquĂ©s (doivent ĂȘtre uniques)
- Attributs invalides
- Code valide (W3C CSS Validator)
- Pas de propriétés obsolÚtes
- Variables CSS bien définies dans
:root - Pas de code dupliqué
Optimisations CSS
/* â Ă Ă©viter - sĂ©lecteurs trop longs */body div.container ul li a.link { }
/* â
Préférer - classes simples */.nav-link { }
/* â Ăviter - propriĂ©tĂ©s rĂ©pĂ©tĂ©es */.btn-primary { background: #667eea; }.btn-secondary { background: #667eea; }
/* â
Préférer - variables */:root { --color-primary: #667eea; }.btn-primary { background: var(--color-primary); }JavaScript
Section titled âJavaScriptâ- Pas dâerreurs dans la console
- Scripts chargés avec
defer - Event listeners nettoyés si nécessaire
- Gestion des erreurs pour éléments manquants
// â
Bon - Vérifier l'existenceconst element = document.querySelector('.element');if (element) { element.addEventListener('click', handleClick);}⿠Checklist accessibilité
Section titled ââż Checklist accessibilitĂ©âNavigation au clavier
Section titled âNavigation au clavierâ- Tab : Navigation entre Ă©lĂ©ments
- Shift+Tab : Navigation arriĂšre
- Enter/Espace : Activation
- Escape : Fermer modals/menus
Tester la navigation clavier
- Ne pas utiliser la souris
- Appuyer sur Tab pour naviguer
- Vérifier que le focus est visible
- Tester tous les boutons avec Enter/Espace
- Tester les modals/menus avec Escape
Focus visible
Section titled âFocus visibleâ- Tous les liens/boutons ont un
:focusvisible - Outline personnalisé si supprimé
- Contraste suffisant pour le focus
/* â
Bon */a:focus,button:focus { outline: 2px solid var(--color-primary); outline-offset: 2px;}
/* â Mauvais */*:focus { outline: none; /* Rend inaccessible */}Contrastes
Section titled âContrastesâ- Texte/fond : ratio minimum 4.5:1
- Texte large (18px+) : ratio minimum 3:1
- Testé avec Contrast Checker
| Combinaison | Ratio | Résultat |
|---|---|---|
| Noir sur blanc | 21:1 | â Excellent |
| #333 sur #FFF | 12.6:1 | â Excellent |
| #666 sur #FFF | 5.7:1 | â Bon |
| #999 sur #FFF | 2.8:1 | â Insuffisant |
Outils dâaudit
Section titled âOutils dâauditâ- WAVE : Scanner dâaccessibilitĂ©
- Lighthouse : Audit complet
- Test au clavier manuel
- Test avec lecteur dâĂ©cran (optionnel)
⥠Optimisation
Section titled â⥠Optimisationâ| Format | Usage | Compression |
|---|---|---|
| JPEG | Photos | TinyJPG |
| PNG | Graphiques + transparence | TinyPNG |
| SVG | IcĂŽnes, logos | SVGOMG |
| WebP | Navigateurs modernes | Squoosh |
Checklist images :
- Taille appropriée (pas de 4000px affichés à 400px)
- Compressées
- Attributs
widthetheight -
loading="lazy"pour images bas de page
<img src="image.jpg" alt="Description" width="800" height="600" loading="lazy">Images responsives
<picture> <source srcset="image-small.jpg" media="(max-width: 600px)"> <source srcset="image-medium.jpg" media="(max-width: 1200px)"> <img src="image-large.jpg" alt="Description"></picture>Performance CSS
Section titled âPerformance CSSâ- Supprimer le CSS inutilisĂ©
- Regrouper les propriétés similaires
- Utiliser variables pour éviter répétition
- Minimiser les sélecteurs complexes
Performance JavaScript
Section titled âPerformance JavaScriptâ- Scripts avec
defer - Pas de JavaScript inline excessif
- Ăviter les librairies lourdes si inutiles
- Event delegation pour listes
// â Ajouter listener Ă chaque Ă©lĂ©mentitems.forEach(item => { item.addEventListener('click', handleClick);});
// â
Event delegationcontainer.addEventListener('click', (e) => { if (e.target.matches('.item')) { handleClick(e); }});đ SEO de base
Section titled âđ SEO de baseâ<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Titre unique (50-60 caractÚres) --> <title>Les Aventures de Léo - Chapitre 1</title>
<!-- Description (150-160 caractÚres) --> <meta name="description" content="Découvrez le premier chapitre des aventures de Léo, un garçon curieux qui part à l'aventure.">
<!-- Langue --> <html lang="fr">
<!-- Favicon --> <link rel="icon" href="/favicon.ico"></head>Checklist SEO :
- Titre unique par page (< 60 caractĂšres)
- Meta description (< 160 caractĂšres)
- Balise
<html lang="fr"> - Structure de titres logique (h1 â h2 â h3)
- URLs descriptives (
/chapitre-1pas/page?id=1) - Images avec
altdescriptifs
đ± Responsive
Section titled âđ± Responsiveâ- TestĂ© sur mobile, tablette, desktop
- Meta viewport présent
- Texte lisible (min 16px)
- Boutons tapables (min 44x44px)
- Navigation mobile fonctionnelle
<meta name="viewport" content="width=device-width, initial-scale=1.0">Tailles de breakpoints courantes
/* Mobile first */@media (min-width: 640px) { /* Tablette */ }@media (min-width: 1024px) { /* Desktop */ }@media (min-width: 1280px) { /* Large desktop */ }đŻ Checklist finale avant livraison
Section titled âđŻ Checklist finale avant livraisonâContenu
Section titled âContenuâ- Tous les liens fonctionnent
- Pas de texte âLorem ipsumâ
- Orthographe vérifiée
- Images chargées correctement
- Polices chargées correctement
Technique
Section titled âTechniqueâ- HTML valide (W3C)
- CSS valide (W3C)
- JavaScript sans erreurs console
- Accessibilité vérifiée (WAVE)
- Performance testée (Lighthouse)
Cross-browser
Section titled âCross-browserâ- Chrome â
- Firefox â
- Safari â
- Edge â
Responsive
Section titled âResponsiveâ- Mobile (< 640px) â
- Tablette (640-1024px) â
- Desktop (> 1024px) â
đ DĂ©ploiement
Section titled âđ DĂ©ploiementâOptions de dĂ©ploiement gratuites
- Netlify : Drag & drop, trĂšs simple
- Vercel : Optimisé pour frameworks modernes
- GitHub Pages : Hébergement gratuit via Git
- Surge : Déploiement en ligne de commande
đ FĂ©licitations !
Section titled âđ FĂ©licitations !âVous avez terminĂ© le cours MM2B ! Vous maĂźtrisez maintenant :
â HTML sĂ©mantique et accessibilitĂ© â Graphisme CSS â Layouts responsive â InteractivitĂ© et animations
Prochaines étapes : Continuez à pratiquer, explorez des frameworks modernes, et surtout : créez vos propres projets !