← Tous les chapitresChapitre 21 · ~35 min

Accessibilité : aria, focus, clavier (JS vs TS)

Rôles ARIA, annonces live, piège du focus et navigation au clavier : rendre chaque composant utilisable… avec du typage en plus.

Les attributs aria annoncent la nature et l’état des éléments aux lecteurs d’écran.

  • aria-label nomme un élément sans texte visible ; aria-live annonce une mise à jour.
  • Sans TS, les attributs restent des chaînes non contraintes.
  • Avec lang="ts", les messages annoncés sont des string constants centralisés.
src/lib/Aria.sveltesvelte
<script>
  let compteur = $state(0)
  let message = $state('')

  function ajouter() {
    compteur += 1
    message = `${compteur} éléments dans le panier`
  }
</script>

<button aria-label='Ajouter au panier' onclick={ajouter}>+</button>
<p aria-live='polite'>{message}</p>