Skip to content

Phase 6 — Accessibilité et inclusion

Principe clé

« Le pouvoir du Web est dans son universalité. L'accès par tous, quel que soit le handicap, en est un aspect essentiel. » — Tim Berners-Lee, inventeur du World Wide Web

L'accessibilité n'est pas une option, c'est une nécessité pour un web inclusif.

Pourquoi l'accessibilité ?

StatistiqueImpact
15% de la population mondialevit avec un handicap (OMS)
8% des hommessont daltoniens
100% des utilisateursbénéficient d'un site accessible

L'accessibilité aide bien plus que les personnes handicapées :

PermanentTemporaireContextuel
AveugleCataracte post-opPlein soleil
SourdOtiteEnvironnement bruyant
Bras amputéBras dans le plâtreParent avec bébé
Trouble cognitifManque de sommeilStress, distraction

WCAG — la référence

Les Web Content Accessibility Guidelines définissent 4 principes (POUR) et 3 niveaux.

PrincipeDescriptionExemple
PerceptiblePrésentable de manière perceptibleTexte alternatif pour les images
OpérableUtilisableNavigation au clavier
UnderstandableCompréhensibleLangage clair
RobusteInterprétable par les technologiesHTML valide
NiveauExigenceUsage
AMinimum absoluÉviter les barrières majeures
AAStandard recommandéObjectif pour la plupart des sites
AAAMaximumSites spécialisés (santé, gouvernement)

Visez AA minimum

C'est l'exigence légale dans de nombreux pays.

Vision et contraste

Règles WCAG

ÉlémentAAAAA
Texte normal (< 18px)4.5:17:1
Grand texte (≥ 18px ou 14px bold)3:14.5:1
Éléments graphiques / UI3:13:1
Exemples de combinaisons
CombinaisonRatioNiveau
Noir (#000) sur Blanc (#FFF)21:1✅ AAA
Gris foncé (#333) sur Blanc12.6:1✅ AAA
Bleu (#1976D2) sur Blanc6.1:1✅ AA
Gris moyen (#767676) sur Blanc4.5:1✅ AA (limite)
Gris clair (#999) sur Blanc2.8:1❌ Insuffisant

Outil : WebAIM Contrast Checker.

Taille de texte

ÉlémentMinRecommandé
Corps de texte16px18px
Texte secondaire14px16px
Légendes, notes12px14px
Boutons16px16px+

Unités relatives

Utilisez rem ou em pour permettre le zoom utilisateur. Évitez px sur le texte.

css
body { font-size: 100%; }  /* 16px par défaut */
h1 { font-size: 2.5rem; }  /* 40px, scalable */
p { font-size: 1rem; }     /* 16px, scalable */

Daltonisme

8% des hommes et 0,5% des femmes sont atteints — principalement de la confusion rouge/vert.

Les 4 types de daltonisme
TypePrévalenceConfusion
Deutéranopie5% ♂Rouge/Vert (vert)
Protanopie1% ♂Rouge/Vert (rouge)
Tritanopie0.01%Bleu/Jaune
AchromatopsieTrès rareVision en gris

Ne jamais utiliser la couleur seule

Ajoutez toujours un indicateur complémentaire : icône, texte, motif, soulignement.

Information❌ Couleur seule✅ Couleur + alternative
ErreurTexte rougeTexte rouge + icône ⚠️
SuccèsTexte vertTexte vert + icône ✓
LienTexte bleuTexte bleu + souligné
ObligatoireBordure rougeBordure + astérisque *
GraphiqueCouleurs différentesCouleurs + motifs / formes

Combinaisons sûres pour les daltoniens

Préférez bleu + orange, bleu + jaune, noir + jaune, violet + jaune. Évitez rouge + vert, rouge + orange, vert + marron, bleu + violet.

De nombreux utilisateurs naviguent sans souris : handicap moteur, lecteurs d'écran, power users.

RègleDescription
Focus visibleL'élément actif doit être identifiable
Ordre logiqueTab suit l'ordre visuel
Pas de piègeToujours pouvoir sortir d'un élément
Skip linksLien « Aller au contenu » au début de page
css
/* ❌ Mauvais : supprime le focus */
:focus { outline: none; }

/* ✅ Bon : focus visible au clavier uniquement */
:focus-visible {
  outline: 3px solid #1976D2;
  outline-offset: 2px;
}

Test rapide

Naviguez votre page avec Tab seulement, sans souris. Si vous perdez le focus ou ne pouvez pas activer un bouton avec Entrée, c'est un bug d'accessibilité.

Textes alternatifs (alt)

Toute image qui transmet une information doit avoir un alt descriptif.

html
<!-- ❌ Mauvais : pas d'alt, ou alt vide / inutile pour image informative -->
<img src="graphique-ventes.png">
<img src="graphique-ventes.png" alt="">
<img src="graphique-ventes.png" alt="graphique">

<!-- ✅ Bon : description de l'information -->
<img src="graphique-ventes.png"
     alt="Ventes en hausse de 25% au T3 2024 par rapport au T2">

<!-- ✅ Image décorative : alt vide -->
<img src="decoration-fleur.png" alt="">
Type d'imageAlt text
Photo informativeDécrire le contenu / le message
Graphique, diagrammeDécrire les données ou conclusions
Bouton / lien imageDécrire l'action
LogoNom de l'entreprise
Image décorativealt="" (vide) ou en CSS

Structure sémantique

Utilisez les bonnes balises HTML : les lecteurs d'écran s'appuient dessus.

html
<!-- ❌ Mauvais : tout en div -->
<div class="header">
  <div class="nav">...</div>
</div>
<div class="main">
  <div class="title">Titre</div>
</div>

<!-- ✅ Bon : sémantique -->
<header>
  <nav>...</nav>
</header>
<main>
  <article>
    <h1>Titre</h1>
  </article>
</main>

Hiérarchie des titres : h1h2h3, sans saut de niveau. Un seul <h1> par page.

Formulaires accessibles

Chaque champ doit avoir un label associé (pas juste un placeholder).

html
<!-- ❌ Mauvais : label non associé -->
<label>Email</label>
<input type="email">

<!-- ✅ Bon : label avec for + id -->
<label for="email">Email</label>
<input type="email" id="email">
Messages d'erreur accessibles (ARIA)
html
<label for="email">Email</label>
<input type="email"
       id="email"
       aria-describedby="email-error"
       aria-invalid="true">
<span id="email-error" role="alert">
  ⚠️ Veuillez entrer une adresse email valide
</span>

ARIA — quand l'utiliser

Règle d'or

N'utilisez pas ARIA si HTML natif suffit. Préférez <button> à <div role="button">.

Attributs ARIA utiles
AttributUsage
aria-labelLabel invisible pour les lecteurs d'écran
aria-labelledbyRéférence un élément comme label
aria-describedbyRéférence une description
aria-hidden="true"Cache aux lecteurs d'écran
aria-live="polite"Annonce les mises à jour dynamiques
aria-expandedIndique si un élément est déplié

3 règles ARIA :

  1. N'utilisez pas ARIA si HTML natif suffit
  2. Ne changez pas la sémantique native
  3. Tout élément interactif doit être utilisable au clavier

Checklist de la Phase 6

Contraste et couleurs

  • Ratio ≥ 4.5:1 (texte normal) / ≥ 3:1 (grand texte)
  • Information jamais transmise par la couleur seule
  • Site testé avec un simulateur de daltonisme

Texte et lisibilité

  • Taille minimum 16px (corps de texte)
  • Unités relatives (rem, em)
  • Texte zoomable à 200% sans perte d'information
  • Interligne ≥ 1.5

Images et médias

  • Toutes les images informatives ont un alt pertinent
  • Images décoratives : alt="" ou en CSS
  • Vidéos sous-titrées (si applicable)
  • Site entièrement navigable au clavier
  • Focus visible sur tous les éléments interactifs
  • Ordre de tabulation logique
  • Zones cliquables ≥ 48×48px (voir Phase 4)

Structure et sémantique

  • HTML sémantique utilisé (header, nav, main...)
  • Hiérarchie des titres respectée (h1 → h2 → h3)
  • Formulaires avec labels associés
  • Messages d'erreur accessibles

Prochaine étape

Les critères d'accessibilité sont définis. Passez à la Phase 7 — Outils de test pour découvrir comment vérifier tout cela.

Documentation pour les cours de développement web