Mentions légales en exposant - Accessibilité

8 janvier 2026

Introduction

Dans beaucoup d’interfaces, on affiche une petite référence en exposant (ex. (1)) à côté d’un texte pour pointer vers une mention légale détaillée en bas de page. Ce pattern paraît trivial… mais il peut facilement devenir peu accessible si l’on ne respecte pas quelques règles : contrôle accessible, clavier, focus, masquage, structure sémantique.

Voici un pattern robuste, documenté, et auditable

Objectifs

Juridique

UX

A11y

Exemple complet

Rendu

See the Pen Mention legal a11y by Pierre TL (@pierre_tl) on CodePen.

Explication « morceau par morceau »

Le (1) cliquable (contrôle accessible)

<sup>
    <button type="button" class="js--btn-mention" title="Voir la mention légale 1" aria-label="Voir la mention légale 1" data-mention="1">(1)</button>
</sup>
  • <button> : c’est une action (amener vers une zone), pas un simple lien. Pilote clavier nativement.
  • aria-label : nom accessible explicite (le lecteur d’écran n’entend pas juste “parenthèse un”).
  • data-mention="1" : identifiant logique pour la cible (côté JS).
  • title : utile pour info-bulle visuelle (ne pas en dépendre pour l’a11y).
  • <sup> +  : l’exposant et une espace insécable étroite avant (discret, propre en FR).

La région de mention (structure sémantique)

<div role="region" aria-label="Mention légale 1" tabindex="0">
    <p>(1) Lorem ipsum</p>
</div>
  • role="region" : signale une zone importante navigable par lecteurs d’écran.
  • aria-label : titre de la région (nom accessible).
    Variante : aria-labelledby="id-du-titre" si vous avez un titre visible.
  • tabindex="0" : zone focusable pour y amener la lecture au clavier.
  • <div> + <p> : structure sémantique pour le contenu juridique.

Le bouton “Retour au texte” (focus & cohérence))

<button class="hide js--btn-mention-retour" type="button" id="mention1">Retour au texte</button>
  • class="hide" : masqué par défaut (.hide) pour ne pas etre visible tant que non pertinent.
  • id="mention1" : correspond à la cible du bouton (1).
  • type="button" : évite le comportement de soumission de formulaire.
  • Dans le DOM le bouton est avant le texte pour avoir un ordre de focus cohérent. L'ordre est inverser en CSS

Le bouton “Retour au texte” (focus & cohérence))

<button class="hide js--btn-mention-retour" type="button" id="mention1">Retour au texte</button>
  • class="hide" : masqué par défaut (.hide) pour ne pas etre visible tant que non pertinent.
  • id="mention1" : correspond à la cible du bouton (1).
  • type="button" : évite le comportement de soumission de formulaire.

Disposition et masquage

.hide {
  display:none;
}
.reverse {
  display:inline-flex;
  flex-direction:row-reverse;
}
  • display: none  pour retirer un élément de l’accessibilité quand inactif.
  • Dans le DOM le bouton est avant le texte pour avoir un ordre de focus cohérent. L'ordre est inverser en CSS

Logique clavier (JS)

Check‑list de tests (NVDA + Firefox)

  1. Tab → le focus passe sur (1) ; Entrée/Espace amènent le focus sur la région correspondante.
  2. NVDA annonce : « Bouton, Voir la mention légale 1 », puis « Région, Mention légale 1 » et lit le texte.
  3. Tab au sein de la région → le bouton Retour devient visible et atteignable au clavier.
  4. Entrée sur Retour → le focus revient sur le (1) d’origine.
  5. Les autres boutons Retour sont masqués (non atteignables) hors contexte.

Points d’attention