Guides pratiques

Choisir les liens, boutons et actions d’une interface

Un lien mène à une destination ; un bouton déclenche une action. Cette distinction aide la personne à anticiper le résultat, à naviguer au clavier et à utiliser les fonctions du navigateur. La forme ou la couleur d’une commande ne remplace pas son rôle.

Voir la méthode

Ordinateur portable, téléphone et carnet ouverts sur une table blanche
Illustration

Décrire le résultat dans le libellé

Les modèles lien et bouton du W3C distinguent destination et action. « Consulter les tarifs » peut mener à une page ; « Envoyer la demande » soumet un formulaire. Conservez cette distinction même lorsque les deux commandes ont une apparence similaire.

Rédigez le libellé avec un verbe et un objet lorsqu’ils clarifient la conséquence. Des liens « En savoir plus » répétés demandent un contexte identifiable. Pour une suppression ou un paiement, indiquez clairement ce qui est concerné. Une icône seule a besoin d’un nom accessible cohérent avec la fonction affichée.

Choisir les états d’attente et d’indisponibilité

Dans un formulaire, l’élément button HTML doit avoir un type adapté : une action secondaire ne doit pas soumettre le formulaire par accident. L’attribut disabled rend une commande native indisponible ; aria-disabled annonce un état mais ne bloque pas lui-même l’action.

Expliquez pourquoi une action importante n’est pas disponible et comment le devenir. Un bouton désactivé sans explication peut laisser le visiteur chercher une erreur invisible. Durant l’envoi, gardez un état d’attente compréhensible et une issue en cas d’échec ; ne retirez pas toute indication parce que la commande ne peut plus être activée.

Prévenir les doubles opérations au bon niveau

Bloquer le bouton après un clic peut réduire les activations répétées, mais ne protège pas à lui seul contre une nouvelle requête ou un retour en arrière. Le service doit gérer la répétition selon les conséquences de l’action. La recette utilise des données de test et contrôle le résultat enregistré.

Une commande d’annulation doit décrire ce qu’elle annule : modification locale, requête en attente ou opération déjà acceptée. Si une sauvegarde réussit malgré la fermeture de la fenêtre, il faut pouvoir retrouver son résultat. Évitez les libellés qui suggèrent une garantie que le système ne fournit pas.

Exemple : une demande avec un document à ajouter

Exemple pédagogique : « Ajouter un document » ouvre un choix de fichier sans envoyer le formulaire ; « Envoyer la demande » effectue l’envoi. Après une erreur, le bouton redevient utilisable et les valeurs restent présentes. Un second test répète une requête de test pour vérifier que l’accusé de réception ne correspond pas à deux dossiers créés.

Contenu mis à jour le 7 octobre 2026

Matrice de recette à adapter au projet

Ces contrôles proposés utilisent des cas fictifs. Décidez du comportement attendu avec l’équipe, notez le résultat et attribuez les écarts non résolus avant publication.

Faites défiler le tableau horizontalement pour lire toutes les colonnes. Au clavier, placez le focus sur le tableau puis utilisez les flèches.

Cas de test, résultats attendus et preuves utiles
CasRésultat attenduPreuve à conserver
Lien vers une pageL’adresse et les fonctions du navigateur restent utilisablesDestination et ouverture dans un autre onglet
Action secondaireAucun envoi involontaire ne se produitAction et nombre de requêtes
Commande indisponibleLa cause et la suite sont compréhensiblesExplication et condition de disponibilité
Répétition de testLe service applique la règle attendueRésultat enregistré et confirmation

Questions fréquentes

Peut-on donner à un lien la forme d’un bouton ?

Oui, si son rôle reste un lien et sa destination est réelle. L’apparence peut signaler une priorité sans changer la nature de l’action.

Désactiver le bouton empêche-t-il tous les doubles envois ?

Non. Une requête peut être répétée autrement. Les opérations importantes demandent une gestion côté service et un contrôle avec des données de test.

Pourquoi préciser le type d’un bouton de formulaire ?

Cela distingue une simple action d’interface de la soumission. Une commande d’ajout ou d’ouverture ne doit pas envoyer accidentellement les champs.