Aller au contenu principal

Académie

Composer un composant accessible

Composants React accessibles avec Cursor et rules dédiées : sémantique, clavier, ARIA minimal, focus visible. Workflow agent et relecture manuelle pour dev.

Intermédiaire · 4 min

AccessibilitéCodeCursor

Prérequis

  • Projet React ou Next.js App Router avec composants Client et Server identifiés
  • Rule accessibilité dans `.cursor/rules/` (ou prête à être créée via `/create-rule`)
  • eslint-plugin-jsx-a11y activé dans le dépôt
  • Extension axe DevTools ou lecteur d’écran pour valider un parcours clavier

L’agent Cursor accélère le boilerplate React, mais produit encore trop de `<div onClick>` sans gestion clavier ou de champs sans label associé. En encodant vos exigences dans une rule `.mdc` et en imposant une relecture humaine systématique, vous livrez des composants utilisables au clavier et annoncés correctement aux lecteurs d’écran.

Cadrer le composant et la rule agent

Avant d’ouvrir le chat Agent, identifiez le composant cible (Accordion, Modal, Tabs) et les états à couvrir. Listez les composants existants du design system (@folder `src/components/ui`) pour éviter une réimplémentation parallèle.

Créez ou complétez `.cursor/rules/react-a11y.mdc` avec globs `**/*.tsx`. Le corps doit contenir des exemples / : bouton natif, lien avec `href`, formulaire avec `<label htmlFor>`. Référencez W3C WAI Forms plutôt que de recopier la spec.

Composer avec l’agent et itérer

Prompt type : « Composant Accordion accessible dans `@src/components/ui/accordion.tsx` : un seul panneau ouvert, touches Entrée/Espace sur le trigger, `aria-expanded`, `aria-controls`. Réutilise les tokens Tailwind du projet. »

Relisez le diff : chaque trigger interactif doit être un `<button>` ou un lien ; les icônes décoratives portent `aria-hidden="true"` ; le focus visible n’est pas supprimé par `outline-none` sans substitut.

Valider avant merge

Exécutez eslint-plugin-jsx-a11y sur le fichier modifié. Complétez par axe DevTools sur la page intégrée. Pour un composant critique (navigation, formulaire), une passe VoiceOver ou NVDA reste indispensable.

Erreurs fréquentes

Accepter un `<div role="button">` parce que le rendu visuel est correct : le clavier et les lecteurs d’écran perdent des comportements natifs (activation, disabled).

Empiler `aria-label`, label visible et `title` sur le même contrôle : annonces redondantes ou contradictoires.

Oublier `aria-live` ou `role="alert"` sur les messages d’erreur dynamiques après validation.

Copier un snippet shadcn sans vérifier la version : certains composants anciens utilisaient des patterns corrigés depuis.

Ce qu’il faut retenir

Rule `react-a11y.mdc` + exemples / = comportement agent reproductible.

Sémantique HTML native d’abord ; ARIA uniquement si la sémantique ne suffit pas.

Relecture humaine et test clavier systématiques avant merge.

L’agent accélère ; la conformité RGAA globale exige audit parcours et pages complètes.

FAQ

Non. Il réduit le temps d’implémentation des patterns (labels, focus, ARIA ciblé). La conformité globale exige audit page, parcours métier et recette experte avant mise en prod grand public.

Les comportements interactifs (clavier, focus trap, aria-live) exigent un Client Component. Structurez : shell Server pour le markup statique, îlot `'use client'` pour la logique d’état.

Ouvrez un `.tsx` couvert par le glob, lancez une tâche agent explicite et contrôlez Cursor Settings → Rules que `react-a11y.mdc` apparaît. Ajustez le frontmatter si la rule est ignorée.

Ces tutoriels pourraient vous intéresser

Travailler avec Agence Cosmos

Besoin d’aller plus loin qu’un tutoriel ? Nous cadrons, concevons et livrons des sites et produits digitaux mesurables.

Contact

Parlons d’une mission utile, réaliste et mesurable.

À partir du brief, vous recevez une proposition structurée : objectifs, périmètre, livrables, planning, risques et hypothèses. Nous priorisons la clarté dans les choix et la mise en production.

Vous préférez un message court ? utilisez le formulaire sur la page contact.

Étapes clés - projet web

  1. 01Brief & cadrage
  2. 02UX, UI & contenus
  3. 03Développement & intégration
  4. 04Recette, performance & qualité
  5. 05Mise en ligne & transfert

Ce que vous obtenez

Ressources

Notre agence met à disposition des ressources pour vous aider à monter en compétence sur vos outils favoris, quel que soit votre niveau.

Accéder à l’Académie
Agence Cosmos

Studio web à Bordeaux : design produit, développement sur mesure et IA utile pour des missions claires et mesurables.

Bordeaux, Nouvelle-Aquitaine, France

contact@agence-cosmos.fr

Certifications

Navigation

Expertises

Légal & confiance

© 2024 - 2026 Agence Cosmos. Tous droits réservés - orbite en maintenance continue.