Aller au contenu principal

Accessibilite WordPress : guide RGAA complet

Guide complet pour rendre votre site WordPress accessible et conforme au RGAA : themes, Gutenberg, plugins, navigation et checklist.

20 min de lectureDebutant

1. WordPress et l'accessibilité

WordPress est bien plus qu'un simple outil de blog. Avec plus de 40% des sites web mondiaux construits sur cette plateforme, WordPress représente plus de 80% de parts de marché parmi les systèmes de gestion de contenu (CMS). Des sites gouvernementaux aux boutiques e-commerce, des blogs personnels aux portails d'entreprise, WordPress est partout.

Cette omniprésence pose un enjeu majeur : si WordPress n'est pas accessible, c'est une part considérable du web qui exclut les personnes en situation de handicap. La bonne nouvelle, c'est que WordPress dispose d'une équipe dédiée à l'accessibilité (WordPress Accessibility Team) qui travaille activement à améliorer le CMS. Le core de WordPress intègre des fonctionnalités d'accessibilité : landmarks ARIA, skip links dans les thèmes par défaut, gestion du focus dans l'interface d'administration, et support des lecteurs d'écran.

Cependant, l'arrivée de Gutenberg (l'éditeur de blocs) a soulevé des débats importants dans la communauté. Lors de son lancement en 2018, de nombreux problèmes d'accessibilité ont été signalés : navigation au clavier défaillante, manque de support pour les lecteurs d'écran, et complexité accrue de l'interface d'édition. Depuis, des améliorations significatives ont été apportées, mais des défis persistent, notamment avec les blocs tiers et les patterns complexes.

L'accessibilité d'un site WordPress dépend de trois facteurs : le core (généralement bon), le thème (variable), et les plugins (souvent problématiques). Ce guide couvre chacun de ces aspects pour vous aider à atteindre la conformité RGAA.

2. Erreurs courantes d'accessibilité sur WordPress

Avant d'aborder les bonnes pratiques, identifions les erreurs les plus fréquentes sur les sites WordPress. Les connaître vous permettra de les éviter ou de les corriger en priorité.

2.1 Choisir un thème non accessible

C'est l'erreur la plus impactante. Le répertoire WordPress.org propose des milliers de thèmes, mais seule une fraction porte le tag accessibility-ready. Un thème non accessible peut introduire des problèmes structurels difficiles à corriger : absence de skip links, contrastes insuffisants, navigation impossible au clavier, hiérarchie de titres cassée, absence de landmarks ARIA. Corriger ces problèmes dans un thème tiers implique souvent de surcharger massivement le CSS et les templates, ce qui revient presque à créer un thème enfant complet.

2.2 Plugins qui injectent du markup non accessible

Les plugins WordPress injectent du HTML directement dans le front-end. Un slider sans alternatives textuelles, un popup sans gestion du focus, un menu mega sans attributs ARIA, un chatbot sans accessibilité clavier — chaque plugin non accessible dégrade l'ensemble du site. Le problème est aggravé par le fait que la plupart des plugins ne sont pas audités pour l'accessibilité, et que les utilisateurs n'ont pas toujours les compétences pour évaluer la qualité du markup généré.

2.3 Contenu WYSIWYG sans structure

L'éditeur visuel de WordPress permet aux rédacteurs de formater du texte facilement. Mais trop souvent, la mise en forme est purement visuelle : du texte en gras au lieu de titres, des retours à la ligne au lieu de paragraphes, du texte coloré pour simuler des liens. Le contenu résultant manque de structure sémantique, ce qui le rend incompréhensible pour les lecteurs d'écran. Les titres sont utilisés pour leur apparence (grande taille) plutôt que pour leur rôle hiérarchique, cassant la structure du document.

2.4 Images sans texte alternatif dans la médiathèque

WordPress fournit un champ "Texte alternatif" dans la médiathèque, mais il n'est pas obligatoire. De nombreux contributeurs uploadent des images sans jamais remplir ce champ. Résultat : des centaines d'images avec un attribut alt vide ou absent, rendant le contenu visuel invisible pour les utilisateurs de lecteurs d'écran. Le problème est amplifié par les images mises en avant (featured images) qui sont rarement accompagnées d'un texte alternatif.

2.5 Formulaires de contact sans labels

Les formulaires sont un point critique de l'accessibilité. Beaucoup de sites WordPress utilisent des formulaires où les champs s'appuient uniquement sur des placeholders comme étiquettes visuelles, sans véritable élément <label> associé programmatiquement. Certains plugins génèrent des formulaires avec des <label> visuellement présents mais non reliés au champ par l'attribut for, ce qui rompt l'association pour les technologies d'assistance.

3. Bonnes pratiques

3.1 Choisir un thème accessible

Le choix du thème est la décision la plus structurante pour l'accessibilité de votre site. Sur le répertoire WordPress.org, filtrez par le tag accessibility-ready. Ce label garantit que le thème a passé une revue incluant les critères suivants :

  • Navigation complète au clavier sans piège
  • Présence de skip links (liens d'évitement)
  • Contrastes de couleurs suffisants (ratio 4.5:1 minimum)
  • Formulaires avec labels correctement associés
  • Hiérarchie de titres logique (un seul h1, pas de saut de niveau)
  • Landmarks ARIA ou éléments HTML5 sémantiques (header, nav, main, footer)
  • Styles de focus visibles sur tous les éléments interactifs

Parmi les thèmes accessibility-ready reconnus : Twenty Twenty-Four (thème par défaut) et Flavor (starter theme minimaliste, disponible aussi en Blocktheme). Si vous développez un thème sur mesure, utilisez-les comme base.

3.2 Blocs Gutenberg et accessibilité

L'éditeur de blocs génère du HTML relativement propre pour les blocs natifs. Voici les bonnes pratiques à suivre :

Hiérarchie des titres : utilisez les blocs Titre en respectant la hiérarchie. Le h1 est réservé au titre de la page (géré par le thème). Commencez vos sections par h2, puis h3, etc. Ne sautez jamais un niveau (pas de h2 suivi d'un h4).

Images et texte alternatif : le bloc Image de Gutenberg propose un champ "Texte alternatif" dans le panneau latéral. Renseignez-le systématiquement. Si l'image est décorative, indiquez-le explicitement pour générer un alt="".

Blocs Liste : privilégiez les blocs Liste natifs plutôt que de simuler des listes avec des tirets dans un bloc Paragraphe. Le bloc Liste génère de vrais éléments <ul> ou <ol> qui sont correctement interprétés par les technologies d'assistance.

3.3 Menus de navigation accessibles

WordPress génère les menus via la fonction wp_nav_menu(). Par défaut, le balisage est correct mais minimaliste. Pour un menu pleinement accessible avec sous-menus, vous devez personnaliser le Walker class :

Ce pattern suit les recommandations du WAI-ARIA Authoring Practices Guide (Disclosure Navigation Menu). Le JavaScript associé doit : basculer aria-expanded au clic ou à l'appui sur Entrée/Espace, fermer le sous-menu avec Échap, et gérer le focus au clavier.

3.4 Formulaires accessibles : comparatif des plugins

Les formulaires sont un point critique du RGAA (thématique 11). Voici un comparatif des trois plugins les plus populaires :

Comparatif d'accessibilité des plugins de formulaire WordPress
CritèreContact Form 7Gravity FormsWPForms
Labels HTMLManuel (shortcode)AutomatiqueAutomatique
aria-describedby erreursNon natifOuiPartiel
aria-requiredManuelOuiOui
Focus sur erreurNonOuiPartiel
aria-live messagesOui (v5.7+)OuiPartiel
Score global a11yMoyenBonMoyen

Si vous utilisez Contact Form 7, ajoutez manuellement les attributs d'accessibilité :

3.5 Médiathèque : imposer le texte alternatif

Le texte alternatif n'est pas obligatoire par défaut dans WordPress. Pour l'imposer dans votre workflow, plusieurs approches sont possibles :

Approche plugin : installez WP Accessibility qui ajoute une alerte lorsqu'une image sans texte alternatif est inseree. Vous pouvez aussi utiliser le plugin Require Alt Text qui bloque purement et simplement la publication si des images n'ont pas de texte alternatif.

Approche code : ajoutez un filtre dans votre thème pour détecter les images sans alt :

Approche workflow : formez vos contributeurs à renseigner le texte alternatif au moment de l'upload plutôt qu'après coup. Intégrez cette étape dans votre charte éditoriale et votre processus de validation de contenu.

3.6 CSS personnalisé pour l'accessibilité

Même avec un thème accessibility-ready, des ajustements CSS sont souvent nécessaires. Voici les styles essentiels à ajouter ou vérifier :

Si votre thème ne propose pas de skip link, ajoutez-le manuellement dans le header.php de votre thème enfant, juste après l'ouverture du <body> :

4. Critères RGAA clés pour WordPress

Parmi les 106 critères du RGAA 4.1.2, certains sont particulièrement pertinents pour les sites WordPress. Voici les critères à vérifier en priorité :

Critère 1.1 — Images porteuses d'information

Chaque image porteuse d'information a-t-elle une alternative textuelle ?

Impact WordPress : chaque image insérée via la médiathèque ou un bloc Gutenberg doit avoir un attribut alt descriptif. Les images de fond CSS porteuses d'information doivent disposer d'une alternative accessible. Les images décoratives doivent avoir un alt="" explicite. Vérifiez aussi les images générées par les plugins (sliders, galeries, icônes).

Critère 8.1 — Validité du code HTML

Chaque page web est-elle définie par un type de document ?

Impact WordPress : WordPress génère automatiquement le <!DOCTYPE html> via le header.php. Cependant, certains plugins et thèmes peuvent injecter du HTML invalide. Utilisez le validateur W3C régulièrement. Gutenberg génère des commentaires HTML pour délimiter les blocs — ceux-ci n'affectent pas la validité.

Critère 8.2 — Langue par défaut

Pour chaque page, le code source génère-t-il l'indication de langue ?

Impact WordPress : WordPress ajoute automatiquement l'attribut lang sur la balise <html> en fonction de la langue du site configurée dans Réglages > Général. Vérifiez que la bonne langue est sélectionnée. Pour les sites multilingues (WPML, Polylang), chaque version linguistique doit avoir le bon attribut lang.

Critère 9.1 — Hiérarchie des titres

Dans chaque page, la hiérarchie entre les titres est-elle pertinente ?

Impact WordPress : le h1 est généralement géré par le thème (titre de la page/article). Le contenu Gutenberg doit commencer par des h2. Les widgets de la sidebar et du footer introduisent souvent des titres qui cassent la hiérarchie. Vérifiez l'ensemble de la page, pas seulement le contenu principal. Utilisez l'extension HeadingsMap pour visualiser la structure.

Critère 11.1 — Labels de formulaires

Chaque champ de formulaire a-t-il une étiquette ?

Impact WordPress : les formulaires natifs de WordPress (recherche, commentaires, connexion) ont généralement des labels corrects. Le problème vient des plugins de formulaire. Vérifiez que chaque <input>, <select> et <textarea> possede un <label> avec un attribut for correspondant a l'id du champ.

Critère 12.1 — Systèmes de navigation

Chaque ensemble de pages dispose-t-il d'au moins deux systèmes de navigation ?

Impact WordPress : WordPress offre nativement plusieurs systèmes de navigation : menu principal, fil d'Ariane (via plugin ou thème), plan du site (sitemap), moteur de recherche. Assurez-vous que votre site en propose au moins deux parmi : menu de navigation, moteur de recherche, plan du site. Le widget recherche WordPress est intégré — vérifiez qu'il est présent et accessible.

Critère 12.7 — Liens d'évitement

Dans chaque page, un lien d'évitement ou d'accès rapide à la zone de contenu principal est-il présent ?

Impact WordPress : les thèmes accessibility-ready incluent un skip link. Si votre thème n'en a pas, ajoutez-le dans le header.php du thème enfant. Le lien doit être le premier élément focusable de la page, pointer vers l'ancre du contenu principal (#main-content), être visible au focus clavier, et utiliser un texte explicite ("Aller au contenu principal").

5. Plugins recommandés

Ces plugins vous aident à améliorer et maintenir l'accessibilité de votre site WordPress :

WP Accessibility

Le plugin de référence, développé par Joe Dolson, membre de l'équipe WordPress Accessibility. Il corrige automatiquement de nombreux problèmes courants :

  • Ajout de skip links si le theme n'en a pas
  • Suppression de l'attribut tabindex sur les éléments non interactifs
  • Ajout d'attributs lang sur les citations en langue étrangère
  • Correction des labels de formulaire de recherche et commentaires
  • Toolbar utilisateur pour ajuster la taille du texte et le contraste
  • Verification des images sans texte alternatif

Sa11y

Un outil d'assurance qualité qui affiche les erreurs d'accessibilité directement dans le front-end du site, visible uniquement par les administrateurs connectés :

  • Detection des images sans alt, des liens vides, des contrastes insuffisants
  • Vérification de la hiérarchie des titres avec un panneau visuel
  • Avertissements sur les liens dont le texte n'est pas explicite ("cliquez ici")
  • Interface non intrusive avec des annotations directement sur la page
  • Idéal pour les équipes éditoriales non techniques

One Click Accessibility

Un plugin léger qui ajoute une toolbar d'accessibilité côté utilisateur :

  • Ajustement de la taille de police
  • Mode contraste élevé
  • Mode niveaux de gris
  • Soulignement des liens
  • Police lisible (sans serif)

Attention : ce type de toolbar ne remplace pas une véritable mise en conformité. C'est un complément, pas une solution. Les overlays d'accessibilité sont controversés dans la communauté.

Starter Themes accessibles

Plutôt que des plugins, envisagez de partir d'un starter theme accessible pour vos projets custom. Starter Theme Flavor est un thème minimaliste, accessible par design, conçu pour être étendu. Les thèmes par défaut de WordPress (Twenty Twenty-Four, Twenty Twenty-Three) sont aussi de bonnes bases, chacun étant testé pour l'accessibilité par l'équipe core.

6. Checklist accessibilité WordPress

Utilisez cette checklist pour vérifier l'accessibilité de votre site WordPress. Elle couvre les points les plus critiques liés au RGAA :

Thème et structure

  • Le thème porte le tag accessibility-ready ou a été audité manuellement
  • Un skip link est present et visible au focus
  • Les landmarks sont presents : <header>, <nav>, <main>, <footer>
  • L'attribut lang est correct sur <html>
  • La hiérarchie des titres est logique (h1 unique, pas de saut)

Navigation

  • Tous les éléments interactifs sont accessibles au clavier
  • Les styles de focus sont visibles sur tous les liens et boutons
  • Il n'y a pas de piège clavier (on peut toujours naviguer en avant et en arrière)
  • Au moins deux systèmes de navigation sont présents (menu, recherche, sitemap)
  • Les sous-menus sont navigables au clavier avec aria-expanded

Contenu

  • Toutes les images informatives ont un texte alternatif pertinent
  • Les images decoratives ont alt=""
  • Les contrastes de couleur respectent le ratio 4.5:1 (texte normal) et 3:1 (grand texte)
  • Les liens ont un intitule explicite (pas de "cliquez ici" ou "en savoir plus")
  • Les videos ont des sous-titres et une transcription

Formulaires

  • Chaque champ a un label associe via for/id
  • Les champs obligatoires sont indiques de maniere accessible (aria-required)
  • Les messages d'erreur sont liés aux champs par aria-describedby
  • Le focus est déplacé vers le premier champ en erreur après soumission

Plugins et widgets

  • Chaque plugin a été testé pour l'accessibilité de son output HTML
  • Les sliders et carousels sont navigables au clavier et pausables
  • Les popups et modales gèrent correctement le focus trap
  • Les widgets de sidebar n'introduisent pas de sauts dans la hierarchie des titres

Questions fréquentes

WordPress est-il accessible par defaut ?

Le coeur de WordPress applique deja plusieurs bonnes pratiques, mais le resultat final depend surtout du theme, des plugins et du contenu publie.

Qu'est-ce que le tag accessibility-ready sur WordPress.org ?

C'est un indicateur utile pour partir d'un theme deja verifie sur des points essentiels comme le clavier, les contrastes et la hierarchie des titres.

Gutenberg est-il accessible ?

Le contenu genere par les blocs natifs est globalement correct, mais l'experience d'edition et certains blocs tiers demandent encore de la vigilance.

Comment forcer l'ajout d'un texte alternatif sur les images dans WordPress ?

Vous pouvez combiner formation editoriale, plugins de controle et validations personnalisees cote publication.

Quel plugin de formulaire est le plus accessible pour WordPress ?

Gravity Forms reste souvent la reference pratique, a condition de verifier le rendu final dans votre theme.

Comment tester l'accessibilite de mon site WordPress ?

Combinez audit automatique, navigation clavier, lecteur d'ecran et revue des templates generes par les plugins critiques.

Les page builders sont-ils accessibles ?

Ils degradent souvent la semantique HTML. Gutenberg ou un theme sur mesure restent preferables pour viser une conformite serieuse.

Combien coute la mise en accessibilite d'un site WordPress ?

Le cout varie selon le niveau de personnalisation, les plugins actifs et la qualite du theme. Plus l'empilement est complexe, plus la correction sera couteuse.

Testez l'accessibilite de votre site WordPress

RGAA Scanner analyse automatiquement votre site WordPress et detecte les non-conformites RGAA avec un rapport detaille et des recommandations en quelques secondes.

Scanner mon site gratuitement