Pour chaque image utilisée comme CAPTCHA, une solution d’accès alternatif au contenu ou à la fonction du CAPTCHA est-elle présente ?
Un utilisateur aveugle sait qu’un CAPTCHA est présent — son lecteur d’écran lui annoncera « Code de sécurité à saisir » si vous avez correctement renseigné l’attribut alt (critère 1.4). Mais le savoir ne suffit pas : encore faut-il pouvoir le résoudre. Un CAPTCHA visuel sans alternative, c’est une porte fermée à clé.
Le critère 1.5 exige qu’à chaque CAPTCHA image corresponde au moins une autre voie d’accès à la fonctionnalité protégée. Cette alternative peut être un CAPTCHA non graphique (défi audio, question mathématique, question logique) ou un mécanisme entièrement différent permettant d’accomplir la même action sans passer par le défi visuel (contact avec un opérateur humain, authentification par compte).
Ne confondez pas 1.4 et 1.5. Le critère 1.4 demande que l’image du CAPTCHA porte un alt décrivant son but. Le critère 1.5 demande qu’une alternative au défi lui-même existe. On peut avoir un alt irréprochable et rater 1.5 si aucune autre voie n’est proposée. En audit, les deux critères sont souvent en échec simultanément.
2 tests pour confirmer qu'un accès alternatif au CAPTCHA est proposé
Alternative non graphique au CAPTCHA image
- Repérez tous les éléments
<img>,<area>,<object>,<embed>,<svg>,<canvas>ou ceux portantrole="img"qui servent de CAPTCHA ou d’image-test dans la page. - Pour chacun, vérifiez qu’au moins l’une des deux conditions suivantes est remplie :
- Un CAPTCHA non graphique est proposé (défi audio, question mathématique, question logique), ou
- Un autre moyen d’accéder à la fonctionnalité sécurisée est disponible (formulaire de contact, numéro de téléphone, authentification par compte).
- Si aucune alternative n’est présente pour au moins l’un de ces éléments, le test échoue.
Alternative non graphique au CAPTCHA <input type="image">
- Repérez tous les éléments
<input type="image">utilisés comme CAPTCHA ou image-test dans la page. - Pour chacun, vérifiez qu’au moins l’une des deux conditions suivantes est remplie :
- Un CAPTCHA non graphique est proposé (défi audio, question mathématique, question logique), ou
- Un autre moyen d’accéder à la fonctionnalité sécurisée est disponible (formulaire de contact, numéro de téléphone, authentification par compte).
- Si aucune alternative n’est présente pour au moins l’un de ces boutons-images, le test échoue.
Exemples
❌ Non conforme : CAPTCHA visuel sans aucune alternative
<form action="/inscription" method="post">
<label for="email">Adresse e-mail</label>
<input type="text" id="email" name="email">
<img src="/captcha/generer" alt="Code de sécurité à saisir">
<label for="code-captcha">Saisissez le code affiché</label>
<input type="text" id="code-captcha" name="captcha">
<button type="submit">Créer mon compte</button>
</form>L’image a bien un alt — le critère 1.4 est respecté. Mais il n’existe aucune alternative au défi visuel lui-même. Un utilisateur aveugle ou ayant une déficience visuelle sévère ne peut pas déchiffrer l’image distordue et se retrouve dans l’impossibilité de créer un compte. Critère 1.5 en échec.
✅ Conforme : CAPTCHA visuel avec alternative audio et accès opérateur
<form action="/inscription" method="post">
<label for="email">Adresse e-mail</label>
<input type="text" id="email" name="email">
<img src="/captcha/generer" alt="Code de sécurité visuel">
<label for="code-captcha">Saisissez le code affiché</label>
<input type="text" id="code-captcha" name="captcha">
<a href="/captcha/audio">Écouter le code audio à la place</a>
<p>
Vous ne pouvez pas résoudre ce défi ?
<a href="/contact">Contactez notre équipe pour créer votre compte</a>.
</p>
<button type="submit">Créer mon compte</button>
</form>Deux alternatives sont proposées : un CAPTCHA audio (défi non graphique) et un lien vers un opérateur humain. Un utilisateur aveugle choisira l’audio ; un utilisateur sourd-aveugle pourra contacter l’équipe. Chaque profil de handicap dispose d’une voie d’accès réelle. Critère 1.5 validé.
Astuces et pièges
⚠️ Confondre le critère 1.4 et le critère 1.5
Le critère 1.4 concerne l’alternative textuelle sur l’image du CAPTCHA (l’alt qui décrit sa fonction). Le critère 1.5 concerne l’alternative au défi lui-même. On peut avoir un alt parfait et rater 1.5 si aucune autre voie d’accès n’existe. En audit, les deux sont souvent en échec simultanément — mais il faut les corriger séparément.
⚠️ Un CAPTCHA audio seul ne couvre pas tous les profils
Un défi audio est une alternative valide pour les utilisateurs aveugles, mais pas pour les utilisateurs sourds-aveugles ou ceux qui n’ont pas de sortie sonore disponible. Pour couvrir tous les profils, combinez défi audio et accès via opérateur humain (formulaire de contact, adresse e-mail, numéro de téléphone).
💡 Supprimer le CAPTCHA est aussi une alternative valide
Les WCAG le reconnaissent explicitement : si vous remplacez un CAPTCHA visuel par un mécanisme invisible (honeypot, analyse comportementale, rate limiting côté serveur, mCaptcha), il n’y a plus de défi à rendre accessible. Cloudflare Turnstile, par exemple, opère via un challenge JavaScript en arrière-plan sans jamais afficher d’image à déchiffrer. C’est la solution la plus propre, et elle satisfait 1.5 par construction.
⚠️ <input type="image"> utilisé comme CAPTCHA
C’est rare mais ça arrive : certains systèmes anciens utilisent un bouton-image pour soumettre un code CAPTCHA. Le test 1.5.2 couvre ce cas spécifiquement. Les exigences d’alternative sont identiques à 1.5.1 — la différence porte uniquement sur le type d’élément HTML à inspecter lors de l’audit.
⚠️ Les CAPTCHA non graphiques ne sont pas concernés
Le critère 1.5 ne s’applique qu’aux CAPTCHA fondés sur une image. Une question de logique (« Combien font 3 plus 4 ? ») ou un CAPTCHA purement textuel ne nécessite pas d’alternative au sens de ce critère — vous êtes déjà dans la solution.
Questions fréquentes
Pourquoi Google reCAPTCHA v2 est-il souvent non conforme au critère RGAA 1.5 ?
Pas automatiquement. reCAPTCHA v2 affiche parfois une grille d’images à identifier (feux de circulation, passages piétons). Si cette grille apparaît, c’est un CAPTCHA visuel qui doit avoir une alternative accessible. Google propose un mode accessibilité avec défi audio, mais il faut vérifier que ce mode est bien activé et fonctionnel dans votre implémentation. reCAPTCHA v3, qui opère en arrière-plan sans interaction visible, est préférable du point de vue du critère 1.5.
Pourquoi un lien « Contactez-nous » ne suffit pas comme alternative CAPTCHA conforme au RGAA ?
Oui, à condition qu’il permette réellement d’accomplir la même action que celle protégée par le CAPTCHA. Si le CAPTCHA protège un formulaire d’inscription, le lien de contact doit permettre de créer un compte via un opérateur humain. Un lien vers la page d’accueil ou vers une FAQ générale ne constitue pas une alternative valide.
Comment identifier les CAPTCHA non conformes lors d'un audit d'accessibilité RGAA ?
Cherchez les éléments <img>, <svg>, <canvas>, role="img" et <input type="image"> qui accompagnent un champ de saisie de code ou qui s’inscrivent dans un formulaire sécurisé. Désactiver les images dans le navigateur (Firefox : Outils → Options → Contenu) aide à isoler visuellement les zones CAPTCHA. Pour chacune, testez si la page propose un autre chemin pour soumettre le formulaire sans résoudre le défi graphique.
Comment le critère RGAA 1.5 s'applique-t-il aux CAPTCHA tiers intégrés via iframe ?
Oui. La responsabilité incombe au propriétaire du site, pas au fournisseur du composant. Si vous intégrez hCaptcha ou reCAPTCHA via une iframe, vous devez vous assurer que le fournisseur propose un mode accessible et que ce mode est activé dans votre configuration. Si ce n’est pas possible, ajoutez votre propre alternative en dehors de l’iframe — un lien vers un formulaire de contact, par exemple.