Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 717 minDébutant

Accessibilité dès la conception : RGAA, WCAG 2.2 et EAA

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • dire qui doit rendre ses services numériques accessibles en 2026 ;
  • appliquer dès la maquette les exigences des WCAG 2.2 ;
  • calculer et vérifier un rapport de contraste ;
  • annoter une maquette pour l'accessibilité.

4 exercices corrigés

Concevoir une interface accessible, c'est prendre dès la maquette les décisions qui permettront à toute personne, quel que soit son handicap, d'utiliser l'application : contrastes suffisants, information jamais portée par la seule couleur, cibles assez grandes, focus visible, ordre de lecture logique, textes alternatifs, messages compréhensibles. Ce chapitre fait le point sur les obligations en vigueur en novembre 2026 (RGAA, European Accessibility Act), présente les exigences des WCAG 2.2 qui se décident à la conception, montre comment calculer un contraste et comment annoter une maquette pour l'accessibilité.

Pourquoi décider l'accessibilité dans la maquette

L'accessibilité se vérifie dans le code, mais elle se gagne ou se perd bien avant. Une palette de couleurs trop pâle, un statut indiqué par un simple point de couleur, un planning qui ne fonctionne qu'au glisser-déposer, des icônes sans libellé : une fois dessinés et validés par le client, ces choix sont codés tels quels, et les corriger plus tard coûte cher. Les développeurs du cours HTML et CSS apprennent à coder une page accessible ; ce chapitre s'adresse à celui qui conçoit l'écran.

Les situations à garder en tête sont variées : une personne aveugle qui utilise un lecteur d'écran (NVDA ou JAWS sous Windows, VoiceOver sur Mac et iPhone, TalkBack sur Android) et navigue au clavier ou par gestes ; une personne malvoyante qui agrandit l'affichage, comme Brigitte et son zoom à 150 % ; une personne daltonienne, qui ne distingue pas certaines couleurs ; une personne qui ne peut pas utiliser de souris et navigue au clavier ou à la commande vocale ; une personne qui a des difficultés de lecture ou de concentration. S'y ajoutent les situations temporaires (un bras dans le plâtre) et de contexte (le soleil sur l'écran du téléphone de Mathis, les mains prises de Noah). Ce qui est indispensable pour certains est utile à tous.

Ce que dit la loi en 2026

Deux textes imposent aujourd'hui l'accessibilité numérique en France.

L'article 47 de la loi du 11 février 2005 vise les services publics en ligne et les entreprises dont le chiffre d'affaires en France dépasse 250 millions d'euros. Ils doivent rendre leurs sites, applications mobiles et progiciels conformes au RGAA (référentiel général d'amélioration de l'accessibilité), publier une déclaration d'accessibilité et un schéma pluriannuel. Le cours présence en ligne détaille ces obligations et la déclaration.

L'European Accessibility Act (directive (UE) 2019/882, transposée en France en 2023) s'applique depuis le 28 juin 2025 à des produits et services destinés aux consommateurs, quelle que soit la taille de l'entreprise, à une exception près. Les services concernés sont notamment :

  • le commerce électronique ;
  • les services bancaires aux consommateurs ;
  • les éléments des services de transport de voyageurs (sites, applications, billets électroniques, informations) ;
  • les livres numériques et leurs logiciels de lecture ;
  • les services de communications électroniques et l'accès aux services de médias audiovisuels.

L'obligation porte sur les sites web et sur les applications mobiles qui fournissent ces services. Les microentreprises qui fournissent des services (moins de 10 personnes et un chiffre d'affaires annuel ou un total de bilan d'au plus 2 millions d'euros) en sont exemptées.

Et Prêt'Matos ? Application interne d'une PME de 14 salariés, il n'entre ni dans l'article 47 ni dans l'European Accessibility Act. Mais un salarié en situation de handicap doit pouvoir faire son travail : l'employeur doit prendre les mesures appropriées pour cela (article L5213-6 du Code du travail), et une application interne inaccessible est un obstacle qu'il devra lever. Concevoir accessible dès le départ coûte peu ; rendre accessible après coup coûte cher.

Les WCAG 2.2 en bref

Les WCAG (Web Content Accessibility Guidelines) sont le standard international du W3C. La version 2.2, publiée en octobre 2023 et mise à jour en décembre 2024, compte des critères de succès rangés sous quatre principes : le contenu doit être perceptible, utilisable, compréhensible et robuste. Chaque critère a un niveau : A (minimum), AA (le niveau exigé par la loi, en France comme en Europe) et AAA (renforcé). Ils s'appliquent aux sites web, et la norme EN 301 549 les étend aux applications mobiles, aux logiciels de bureau et aux documents.

La version 2.2 a ajouté neuf critères, dont six de niveau A ou AA, presque tous liés à la conception, et retiré le critère 4.1.1 (analyse syntaxique), devenu inutile :

Critère ajouté en 2.2NiveauCe qu'il demande
2.4.11 Focus non masquéAAL'élément qui a le focus clavier n'est pas entièrement caché par un bandeau collant ou un pied de page fixe
2.5.7 Mouvements de glissementAATout ce qui se fait en glissant (glisser-déposer, curseur) se fait aussi par de simples clics ou appuis
2.5.8 Taille de la cibleAALes cibles font au moins 24 × 24 pixels CSS, ou sont assez espacées (exceptions : liens dans un texte, contrôles natifs du navigateur)
3.2.6 Aide cohérenteALe moyen d'obtenir de l'aide (contact, page d'aide) est au même endroit sur toutes les pages
3.3.7 Saisie redondanteAUne information déjà saisie dans le même processus n'est pas redemandée, ou est proposée pré-remplie
3.3.8 Authentification accessibleAASe connecter n'exige pas un test cognitif (retenir, recopier, résoudre) sans alternative : le copier-coller et les gestionnaires de mots de passe fonctionnent

Les trois autres (2.4.12, 2.4.13 et 3.3.9) sont de niveau AAA.

Ce qui se décide dans la maquette

Voici les exigences des WCAG que le concepteur tranche avant le développeur. Pour chacune, la règle, le critère et ce que cela donne sur Prêt'Matos.

À décider dans la maquetteRègleCritère WCAGSur Prêt'Matos
Le contraste du texte4,5:1 pour le texte courant ; 3:1 pour le grand texte (24 px, ou 18,66 px en gras)1.4.3 (AA)Texte #1f2937 sur blanc : 14,68:1
Le contraste des composants3:1 pour les contours des champs, les icônes utiles, l'indicateur de focus1.4.11 (AA)Contour des champs #6b7280 : 4,83:1
La couleurJamais le seul moyen de transmettre une information1.4.1 (A)Statut « En retard » écrit dans un badge, pas un point rouge
La taille des ciblesAu moins 24 × 24 px ; viser 44 × 44 px sur écran tactile2.5.8 (AA)Boutons de 48 px de haut sur la tablette de la logistique
Le focus clavierToujours visible, jamais caché par un élément fixe2.4.7 (AA), 2.4.11 (AA)Contour vert de 3 px autour de l'élément actif ; en-tête non collant sur mobile
L'ordreL'ordre de tabulation et de lecture suit l'ordre visuel logique1.3.2 (A), 2.4.3 (A)Matériel, dates, motif, puis bouton
Les titres et les zonesUn titre de page, une hiérarchie de titres, des zones (en-tête, navigation, contenu)1.3.1 (A), 2.4.6 (AA)Chaque écran a un titre principal qui dit sa tâche
Les images et les icônesUn texte alternatif pour les images utiles, un nom pour chaque bouton-icône1.1.1 (A), 4.1.2 (A)La photo du matériel décrite par sa désignation ; le bouton corbeille nommé « Annuler la réservation du 24/03 »
Le zoom et la redistributionLisible à 200 %, sans défilement horizontal à 320 px de large1.4.4 (AA), 1.4.10 (AA)Le planning devient une liste par jour sur petit écran
Le glisser-déposerUne alternative en clics2.5.7 (AA)Déplacer une réservation dans le planning : glisser, ou bouton « Changer les dates »
Les formulairesLibellés visibles, erreurs identifiées en texte, suggestions de correction3.3.1 (A), 3.3.2 (A), 3.3.3 (AA)Les règles du chapitre 6
L'aideAu même endroit sur chaque page3.2.6 (A)« Contacter la logistique » toujours en bas du menu
La connexionPas d'épreuve cognitive ; copier-coller autorisé3.3.8 (AA)Connexion par le compte de l'entreprise, sans CAPTCHA
Les mouvementsCe qui bouge seul peut être mis en pause ; rien ne clignote plus de trois fois par seconde2.2.2 (A), 2.3.1 (A)Pas de carrousel automatique ; au-delà du niveau AA, les transitions respectent aussi le réglage « réduire les animations » du système

Calculer un rapport de contraste

Le rapport de contraste compare la luminance relative (la clarté perçue, entre 0 pour le noir et 1 pour le blanc) des deux couleurs. Il va de 1:1 (deux couleurs identiques) à 21:1 (noir sur blanc).

text
1. Pour chaque canal R, G, B (de 0 à 255) :   c = valeur / 255
   puis    c ≤ 0,04045  →  c' = c / 12,92
           sinon        →  c' = ((c + 0,055) / 1,055) ^ 2,4

2. Luminance relative :   L = 0,2126 × R' + 0,7152 × G' + 0,0722 × B'

3. Rapport de contraste : (L_claire + 0,05) / (L_foncée + 0,05)

Pour le gris #767676 (118 sur chacun des trois canaux) : c = 118 / 255 ≈ 0,4627, puis c' = (0,5177 / 1,055)^2,4 ≈ 0,1812 ; les trois canaux étant égaux, L ≈ 0,1812. Sur fond blanc (L = 1), le rapport vaut (1 + 0,05) / (0,1812 + 0,05) = 1,05 / 0,2312 ≈ 4,54:1. C'est conforme pour le texte courant, de justesse ; le gris #777777, à peine plus clair, tombe à 4,48:1 et ne l'est plus. Un rapport se compare au seuil sans l'arrondir : 4,48 n'est pas « environ 4,5 ».

Personne ne calcule cela à la main au quotidien : les outils de développement des navigateurs affichent le rapport quand on inspecte un texte, et des outils gratuits comme Colour Contrast Analyser le donnent en pointant deux couleurs à l'écran. Mais savoir d'où vient le chiffre permet de comprendre pourquoi un vert vif qui « se voit bien » échoue avec du texte blanc.

Voici la palette proposée au départ pour Prêt'Matos, et ce que l'équipe en a gardé :

UsageCouleursRapportVerdict
Texte courant#1f2937 sur blanc14,68:1Conforme
Bouton principal, première idéeTexte blanc sur vert vif #16a34a3,30:1Grand texte seulement : refusé pour un bouton en 16 px
Bouton principal retenuTexte blanc sur vert #1d6b436,49:1Conforme
Messages d'erreur, première idée#ef4444 sur blanc3,76:1Non conforme pour du texte courant
Messages d'erreur retenus#b91c1c sur blanc6,47:1Conforme
Texte d'exemple dans les champs#9ca3af sur blanc2,54:1Non conforme : de toute façon, une aide sous le libellé est préférable
Contour des champs, première idée#d1d5db sur blanc1,47:1Non conforme (3:1 exigé pour un composant)
Contour des champs retenu#6b7280 sur blanc4,83:1Conforme

Annoter une maquette pour l'accessibilité

Une maquette montre l'apparence ; elle ne dit pas tout ce que le développeur doit coder. Ajoute des annotations d'accessibilité, dans la marge ou sur un calque à part :

  • la structure : le titre principal de l'écran, les sous-titres et leur niveau, les zones (en-tête, navigation, contenu principal) ;
  • l'ordre de tabulation, numéroté sur les éléments interactifs, quand il n'est pas évident ;
  • le texte alternatif de chaque image utile, et « décorative » pour les autres ;
  • le nom accessible de chaque bouton qui n'a qu'une icône (« Annuler la réservation du 24/03 », pas « corbeille ») ;
  • les comportements du focus : où il va quand une fenêtre s'ouvre, quand elle se ferme, après l'envoi d'un formulaire ;
  • les annonces pour les lecteurs d'écran : « Réservation enregistrée » lu automatiquement, « Chargement… » annoncé.

Ces annotations font gagner du temps à tout le monde : le développeur sait quoi coder, le testeur sait quoi vérifier, et la recette ne découvre pas les problèmes à la fin. Les chapitres 10 et 11 montrent leur traduction en HTML et React, puis en React Native et WinForms.

Tester tôt, et pas seulement avec un outil

Trois vérifications se font sur la maquette ou le prototype, avant le code :

  1. Les contrastes, avec un outil de mesure.
  2. La lecture en niveaux de gris : imprime ou affiche l'écran sans couleurs ; si une information disparaît (le statut, l'erreur), c'est qu'elle reposait sur la couleur seule.
  3. Le parcours au clavier, sur un prototype codé ou en le simulant : dans quel ordre passe-t-on ? Voit-on toujours où l'on est ?

Les outils automatiques (Lighthouse, axe DevTools, WAVE) détectent une partie des défauts seulement : ils voient qu'une image a un texte alternatif, pas que ce texte est pertinent. Rien ne remplace une navigation au clavier et quelques minutes avec un lecteur d'écran. Le cours HTML et CSS montre comment mener ces vérifications.

Exercices

Exercice 1 sur 4 Qui doit être accessible ? Réussi À revoir

Pour chaque service, dis s'il est soumis à l'article 47 de la loi de 2005, à l'European Accessibility Act, ou à aucun des deux, et justifie.

  1. Le site de vente en ligne d'une entreprise de 30 salariés qui réalise 6 millions d'euros de chiffre d'affaires.
  2. L'application mobile d'une banque pour ses clients particuliers.
  3. Prêt'Matos, l'application interne de prêt de matériel de Sorbier Logistique.
  4. La boutique en ligne d'une artisane qui travaille seule et réalise 120 000 euros de chiffre d'affaires.
  5. Le site d'une commune, avec son formulaire d'inscription à la cantine.
Voir la réponseMasquer la réponse de l'exercice 1
  1. European Accessibility Act : c'est un service de commerce électronique pour les consommateurs, et l'entreprise n'est pas une microentreprise (30 salariés).
  2. European Accessibility Act : services bancaires aux consommateurs ; les applications mobiles sont visées. (Si la banque réalise plus de 250 millions d'euros de chiffre d'affaires en France, l'article 47 s'applique aussi.)
  3. Aucun des deux : ce n'est ni un service public ni un service aux consommateurs, et Sorbier Logistique est loin des 250 millions d'euros. L'accessibilité reste nécessaire pour un salarié en situation de handicap, au titre des obligations de l'employeur.
  4. Aucun des deux : c'est du commerce électronique, mais une microentreprise qui fournit un service en est exemptée. Rendre sa boutique accessible reste une bonne idée commerciale.
  5. Article 47 de la loi de 2005 : c'est un service public en ligne. RGAA, déclaration d'accessibilité et schéma pluriannuel.

Tu avais trouvé ?

Exercice 2 sur 4 Calculer un contraste Réussi À revoir

  1. La luminance relative du gris #777777 est d'environ 0,1845. Calcule son rapport de contraste sur fond blanc et dis s'il convient pour du texte courant.
  2. La luminance relative de l'orange #f59e0b est d'environ 0,4389. Un bouton orange doit-il avoir un texte blanc ou noir ? Calcule les deux rapports.
  3. Le texte d'un bouton fait 24 pixels. Le rapport de contraste avec son fond est de 3,3:1. Est-ce conforme ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. (1 + 0,05) / (0,1845 + 0,05) = 1,05 / 0,2345 ≈ 4,48:1. C'est inférieur à 4,5:1 : non conforme pour du texte courant (même si la différence ne se voit pas à l'œil, le seuil est un seuil).
  2. Texte blanc : (1 + 0,05) / (0,4389 + 0,05) = 1,05 / 0,4889 ≈ 2,15:1, non conforme. Texte noir (L = 0) : (0,4389 + 0,05) / (0 + 0,05) = 0,4889 / 0,05 ≈ 9,78:1, conforme. Sur un orange clair, le texte doit être noir (ou très foncé).
  3. Oui : à 24 pixels, c'est du grand texte, pour lequel le seuil est 3:1. Mais le même bouton en 16 pixels ne le serait plus.

Tu avais trouvé ?

Exercice 3 sur 4 Une maquette à corriger Réussi À revoir

La maquette du planning de la logistique présente les défauts suivants. Pour chacun, cite l'exigence des WCAG concernée et propose une correction.

  1. Les prêts en retard sont signalés par une pastille rouge, les prêts du jour par une pastille verte.
  2. Pour changer les dates d'une réservation, on fait glisser son bloc dans le planning.
  3. Les boutons d'action sont des icônes de 20 × 20 pixels, sans texte.
  4. Un en-tête collant de 120 pixels reste en haut de l'écran pendant le défilement.
  5. Le style « focus » des boutons n'a pas été dessiné.
Voir la réponseMasquer la réponse de l'exercice 3
  1. Utilisation de la couleur (1.4.1) : ajouter un texte (« En retard », « Aujourd'hui ») ou une icône différente, et vérifier le contraste des badges.
  2. Mouvements de glissement (2.5.7) : proposer aussi un bouton « Changer les dates » qui ouvre un formulaire, utilisable au clic et au clavier.
  3. Taille de la cible (2.5.8), et nom des composants (4.1.2) : agrandir les cibles (au moins 24 × 24 pixels, 44 sur la tablette), ajouter un libellé visible ou au minimum un nom accessible annoté sur la maquette (« Enregistrer le retour de PC-07 »).
  4. Focus non masqué (2.4.11) : en tabulant vers le bas de la page, l'élément actif peut passer sous l'en-tête. Réduire l'en-tête, le rendre non collant sur petit écran, ou réserver la place nécessaire au défilement.
  5. Focus visible (2.4.7) et contraste des composants (1.4.11) : dessiner l'état « focus » dans le design system, par exemple un contour de 3 pixels contrasté à au moins 3:1.

Tu avais trouvé ?

Exercice 4 sur 4 Annoter un écran Réussi À revoir

Liste les annotations d'accessibilité à ajouter sur la maquette de l'écran ECR5 « Mes réservations » (titre, liste des réservations avec un bouton-icône « corbeille » pour annuler, fenêtre de confirmation, message de succès).

Voir la réponseMasquer la réponse de l'exercice 4

Une liste possible :

  • Structure : titre principal « Mes réservations » ; sous-titres « En cours » et « À venir » de niveau 2 ; la liste est une vraie liste.
  • Nom accessible du bouton corbeille : « Annuler la réservation de VP-01 du 24/03 » (le nom doit dire quel élément est concerné, car tous les boutons se ressemblent).
  • Focus à l'ouverture de la fenêtre de confirmation : sur son titre ou sur le bouton le moins dangereux (« Garder la réservation ») ; la fenêtre se ferme avec Échap ; le focus ne sort pas de la fenêtre tant qu'elle est ouverte.
  • Focus à la fermeture : il revient sur un élément logique (la réservation suivante, ou le titre de la liste si elle est vide).
  • Annonce du message « Réservation annulée » aux lecteurs d'écran, sans déplacer le focus.
  • Badges de statut en texte, contrastés.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Évaluer une interface : évaluation heuristique, test utilisateur et SUSRevoir le sommaire du cours