Que fait Système d'États Interactifs ?
Objectif
La compétence Système d'États Interactifs fournit un cadre pour définir comment les composants d'interface utilisateur répondent aux entrées utilisateur. Elle garantit que chaque élément interactif (boutons, liens, champs de saisie, cartes) dispose d'un retour visuel clair, cohérent et accessible dans tous les modes d'interaction (souris, clavier, tactile). Ce système élimine l'ambiguïté pour les développeurs et garantit une sensation réactive de haute qualité pour l'utilisateur final.
Cas d'Utilisation
- Définir le comportement des composants pour un système de design ou une bibliothèque d'interface utilisateur.
- Auditer un site existant pour détecter les interactions « mortes » ou non réactives.
- Assurer la conformité WCAG 2.2 pour les indicateurs de focus, la taille des cibles et les affordances interactives.
- Standardiser les motifs de retour (par exemple, toutes les actions destructrices se comportent de la même manière).
Quand NE PAS Utiliser
- Contenu Statique : Éléments purement informatifs qui n'ont aucune interaction par clic, toucher ou clavier.
- Conception d'Animation Expérimentale : Lorsque l'objectif est une animation complexe et non standard plutôt qu'un retour d'état fonctionnel.
- Valeurs Par Défaut du Navigateur : Si le projet repose strictement sur des éléments natifs du navigateur non stylisés (bien que cela soit rare pour les conceptions de sites professionnels).
Entrées
- Inventaire des Composants : Liste de tous les éléments interactifs dans la conception.
- Système de Couleurs de la Marque : Échelles de couleurs primaires, secondaires et sémantiques existantes.
- Cible d'Accessibilité : (par exemple, Niveau AA WCAG) qui dicte les ratios de contraste pour les états.
Sorties
- Matrice d'États : Une carte complète montrant les états Par Défaut, Survol, Focus, Actif et Désactivé pour chaque composant.
- Directives d'Interaction : Règles pour les transitions, la temporisation (ms) et les fonctions d'assouplissement.
- Spécification d'Accessibilité : Définitions explicites pour les anneaux de focus et les indices visuels uniquement au clavier.
Flux de Travail
1. Identifier les Éléments Interactifs
Catégoriser les éléments par leur type d'interaction :
- Actions : Boutons, liens, éléments de menu.
- Saisies : Champs de texte, cases à cocher, boutons radio, listes déroulantes.
- Conteneurs : Cartes cliquables, en-têtes d'accordéon, onglets.
2. Définir la Palette d'États
Déterminer comment les variables visuelles changent par état :
- Survol (Souris) : Léger changement de couleur d'arrière-plan, de bordure ou d'élévation (ombre).
- Focus (Clavier) : Un anneau ou contour à contraste élevé. Doit être distinct de l'état de survol.
- Actif/Enfoncé : « Compression » visuelle (par exemple, léger assombrissement ou réduction d'échelle) pour indiquer un clic/toucher réussi.
- Désactivé : Opacité réduite et suppression des indices interactifs (changement du curseur).
- Visité (Liens) : Une couleur distincte pour les liens déjà navigués (essentiel pour les sites riches en contenu).
3. Établir la Logique de Focus
Concevoir un « Style de Focus Global » qui garantit que les utilisateurs du clavier savent toujours où ils se trouvent.
- Règle : L'indicateur de focus doit avoir un ratio de contraste d'au moins 3:1 par rapport à l'arrière-plan ET par rapport à l'état non focalisé du composant.
- Règle (WCAG 2.2 SC 2.4.11) : L'indicateur de focus ne doit jamais être complètement masqué par d'autres contenus (par exemple, un en-tête fixe recouvrant un élément focalisé lors du défilement). Au moins une partie de l'indicateur doit toujours rester visible.
4. Optimiser pour le Tactile (Mobile)
Étant donné que les états de survol n'existent pas sur les appareils tactiles :
- Assurez-vous que les états
actiffournissent un retour immédiat. - Vérifiez que les cibles tactiles respectent WCAG 2.2 SC 2.5.8 (minimum 24x24px), et préférez 44x44px lorsque la disposition le permet pour une portée confortable du pouce.
- Supprimez les informations dépendantes du survol (utilisez des info-bulles sur appui ou des étiquettes persistantes).
5. Documenter les Transitions
Définir comment le changement se produit :
- Durée : 150 ms à 250 ms est standard pour les changements d'état.
- Assouplissement :
ease-in-outoucubic-bezier(0.4, 0, 0.2, 1).
Règles de Décision
- Persistance de l'État : Les indicateurs de focus doivent rester visibles tant que l'élément a le focus.
- Affordance Avant Tout : Les éléments interactifs doivent sembler « cliquables » dans leur état par défaut (par exemple, les boutons doivent avoir plus de poids visuel que les balises non cliquables).
- Pas d'États Uniquement par Couleur : Ne pas se fier uniquement à la couleur pour indiquer un état (par exemple, un état d'erreur doit inclure une icône ou un changement d'épaisseur de bordure).
- Retour Immédiat : Les réponses interactives doivent sembler instantanées (temps de démarrage <100 ms).
Contraintes
- Accessibilité : Les indicateurs de focus ne peuvent pas être « masqués » via le CSS
outline: nonesans fournir une alternative robuste. - Réactivité : Les états doivent fonctionner sur les petits écrans sans dépendre du survol de la souris.
- Performance : Évitez les ombres de boîte lourdes ou les filtres complexes sur les états qui se déclenchent fréquemment (comme le survol) pour éviter les secousses de mise en page.
Modèles d'Échec Courants
- Le Focus « Invisible » : Suppression de l'anneau de focus par défaut du navigateur sans le remplacer, rendant le site inutilisable pour les utilisateurs de clavier.
- Logique Uniquement au Survol : Placer des informations ou actions critiques dans un état de survol, les rendant inaccessibles sur mobile.
- États Actifs Vagues : Boutons qui ne changent pas lorsqu'on clique dessus, incitant les utilisateurs à cliquer plusieurs fois.
- États Désactivés Confusants : Éléments qui semblent désactivés mais sont en réalité cliquables, ou vice versa.
Critères de Validation
- Chaque élément interactif a un état Survol, Focus et Actif défini.
- Les indicateurs de Focus respectent l'exigence de contraste 3:1 et ne sont jamais complètement masqués par d'autres contenus (WCAG 2.2 SC 2.4.11).
- Les cibles tactiles mesurent au moins 24x24px (WCAG 2.2 SC 2.5.8), 44x44px préféré.
- Aucune information critique n'est cachée derrière une interaction uniquement au survol.
- Les états désactivés sont visuellement distincts et ont
pointer-events: none(ou logique équivalente). - Le système inclut une directive claire de transition/ animation pour les états.