Navigation au clavier complète
Skip link visible au focus. Ordre de tabulation logique sur toutes les pages. Touche Escape pour fermer le menu mobile, focus retourné au burger. Piège de focus dans la lightbox galerie.
CS 2.1.1 · 2.1.2 · 2.4.3Un site web complet pour dog-sitter et pension canine : 7 pages HTML / CSS / JS natif, responsive dès 320 px, conçu avec une attention rigoureuse à l'accessibilité numérique. Aucune dépendance, aucun framework.
Chaque page est sémantiquement structurée, interconnectée et immédiatement personnalisable. Navigation cohérente et responsive sur l'ensemble du site.
01
Hero avec photo et statistiques flottantes, présentation d'Amy, aperçu des 3 services, témoignages, bande CTA.
02
Certifications ACACED, formation comportementaliste, timeline professionnelle animée, valeurs et philosophie.
03
Pension canine, dog-sitting, promenades. Tarifs et formules, FAQ accordéon accessible, zones d'intervention.
04
Grille de photos filtrable (4 catégories), lightbox accessible au clavier avec piège de focus et navigation fléchée.
05
Formulaire complet (FormSubmit), disponibilités, coordonnées, zones d'intervention, validation en temps réel.
06
Confirmation de soumission, liens de retour, navigation cohérente. Page de redirection FormSubmit intégrée.
07
1 fichier CSS partagé avec custom properties. 2 fichiers JS modulaires : main.js et galerie.js.
Chaque choix technique a été guidé par les critères WCAG 2.1. Le template vise la conformité AA sur toutes les pages, avec plusieurs critères AAA intégrés dès la conception.
Skip link visible au focus. Ordre de tabulation logique sur toutes les pages. Touche Escape pour fermer le menu mobile, focus retourné au burger. Piège de focus dans la lightbox galerie.
CS 2.1.1 · 2.1.2 · 2.4.3Indicateur de focus de 3 px, décalage de 3 px sur tous les éléments interactifs. Deux styles distincts : brun foncé sur fond clair, beige sable sur fond brun. Visible en High Contrast Mode Windows.
CS 2.4.7 · 2.4.11 AAA
Landmarks nav,
main,
footer.
Hiérarchie de titres stricte H1→H3. Listes sémantiques, tableaux avec
caption et scope.
Palette warm beige / brun profond avec ratios mesurés. Texte principal sur fond crème : 13,9:1. Brun foncé sur blanc : 8,1:1. La couleur n'est jamais le seul moyen de transmettre une information.
CS 1.4.1 · 1.4.3 · 1.4.6 AAA
Labels associés via for/id,
messages d'erreur role="alert",
aria-invalid et
aria-describedby sur les champs en erreur.
autocomplete sur tous les champs personnels.
Filtres avec aria-pressed et live region
annonçant le nombre de résultats. Lightbox avec
role="dialog",
aria-modal, navigation au clavier
et restauration du focus à la fermeture.
Toutes les animations respectent
prefers-reduced-motion :
transitions désactivées à 0,01 ms. IntersectionObserver vérifie la
préférence avant d'appliquer les effets d'entrée au scroll.
Hauteur de ligne ≥ 1,7×, letter-spacing en
em,
word-spacing défini. Taille de base en
rem
pour respecter les préférences utilisateur jusqu'à 200 % sans perte de contenu.
Live regions aria-live="polite"
pour les filtres galerie, les erreurs de formulaire et le statut d'envoi.
aria-busy sur le bouton de soumission,
aria-current="page" sur les liens actifs.
Chaque combinaison texte / fond a été mesurée avec l'algorithme de luminance relative WCAG 2.x. Le niveau AAA exige 7:1 pour le texte courant et 4,5:1 pour le grand texte.
| Couleur texte | Fond | Ratio | Niveau | Usage dans le template |
|---|---|---|---|---|
| #2d2015 | #faf6f0 | 13,9:1 | AAA ✓ | Texte principal sur fond crème |
| #5c3d20 | #ffffff | 8,1:1 | AAA ✓ | Brun foncé sur blanc — titres, liens actifs |
| #4a3528 | #faf6f0 | 8,9:1 | AAA ✓ | Texte secondaire sur fond crème |
| #ffffff | #5c3d20 | 8,1:1 | AAA ✓ | Blanc sur brun — boutons, footer, CTA |
| #3a6348 | #e8f0eb | 7,3:1 | AAA ✓ | Vert sur fond vert clair — étiquettes section |
| #5c3d20 | #f5ede0 | 7,9:1 | AAA ✓ | Brun sur fond warm — badges, location tag |
Critères couverts dans le template. Les mentions AAA signalent les critères dépassant le niveau AA visé.
alt sur images, emoji cachés avec aria-hidden
autocomplete sur tous les champs
rem, lisible sans perte à 200 %
prefers-reduced-motion respecté
<title> descriptif et unique sur chaque page
aria-label si nécessaire
lang="fr" sur <html>
role="alert"
aria-expanded, aria-current, aria-pressed
Mobile-first. CSS Grid, Flexbox et clamp()
garantissent une mise en page fluide. Aucun scroll horizontal sous
320 px (WCAG 1.4.10). Burger menu avec piège de focus complet.
Aucun framework, aucun bundler, aucun gestionnaire de paquets. Ouvrez un fichier HTML dans votre navigateur : ça fonctionne immédiatement.
clamp()