0Pricing
HTML Academy · Leçon

`aria-label`, `aria-labelledby` et `aria-describedby`

Fournissez des noms et des descriptions accessibles pour les éléments.

`aria-label`, `aria-labelledby` et `aria-describedby` est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

Pourquoi les noms accessibles sont importants

Chaque élément interactif a besoin d’un nom accessible — une chaîne de texte utilisée par les technologies d’assistance pour l’identifier. Sans nom accessible, les lecteurs d’écran ne peuvent pas indiquer aux utilisateurs la fonction d’un bouton ou d’un champ de saisie.

aria-label

aria-label fournit directement à un élément un nom accessible sous forme de texte :

<button aria-label="Close dialog">×</button>
<!-- The × character has no accessible meaning
     aria-label provides the name: 'Close dialog, button' -->

<input type="search" aria-label="Search products">
<!-- No visible label — aria-label provides the accessible name -->

aria-labelledby

aria-labelledby désigne un autre élément comme nom accessible :

<h2 id="section-title">Billing Information</h2>
<form aria-labelledby="section-title">
  <!-- Form's accessible name is 'Billing Information' -->
</form>

<!-- Multiple id references: -->
<button aria-labelledby="action-verb object-name">
  Delete
</button>
<span id="object-name" hidden>User Account</span>
<!-- Screen reader: 'Delete User Account, button' -->

aria-describedby

aria-describedby fournit une description détaillée qui complète le nom :

<label for="pwd">Password</label>
<input
  type="password"
  id="pwd"
  aria-describedby="pwd-hint"
>
<p id="pwd-hint">Must be 8+ characters with one uppercase letter and one number.</p>
<!-- Screen reader: 'Password [input]' then reads the description on focus -->

Étiquette et description

Différence entre le nom accessible et la description :

  • Nom accessible — identifie l’élément (aria-label, aria-labelledby ou élément label)
  • Description — complète le nom avec un contexte supplémentaire (aria-describedby)
  • Les lecteurs d’écran annoncent : nom, rôle, état → puis la description

aria-label sur les repères

Utilisez aria-label pour distinguer plusieurs repères du même type :

<nav aria-label="Primary">...</nav>
<nav aria-label="Breadcrumb">...</nav>

<!-- Screen reader landmark list:
     'Primary, navigation'
     'Breadcrumb, navigation' -->

<!-- When only one nav, aria-label is optional but still helpful -->

aria-labelledby sur les sections

Associez les sections à leurs titres pour fournir un contexte aux utilisateurs de lecteurs d’écran :

<section aria-labelledby="about-heading">
  <h2 id="about-heading">About Our Team</h2>
  <p>We are a team of passionate developers...</p>
</section>
<!-- Screen reader: 'About Our Team, region' when entering section -->

aria-label et texte visible

aria-label remplace le texte visible — soyez prudent :

<button aria-label="Delete account permanently">
  Delete
</button>
<!-- Screen reader hears: 'Delete account permanently'
     Sighted user reads: 'Delete' -->

<!-- Best practice: visible text and aria-label should agree
     If possible, include extra context in visible text too:
     <button>Delete account permanently</button> -->

<!-- aria-label should start with the visible text when possible
     for speech recognition users who use voice commands -->

aria-describedby pour les erreurs

Liez les messages d’erreur à leurs champs de saisie :

<label for="email">Email</label>
<input
  type="email"
  id="email"
  aria-describedby="email-error"
  aria-invalid="true"
>
<span id="email-error" role="alert">
  Please enter a valid email address.
</span>
<!-- When input receives focus, screen reader reads:
     'Email [field], invalid. Please enter a valid email address.' -->

Plusieurs références aria-describedby

aria-describedby peut désigner plusieurs éléments :

<input
  type="password"
  aria-label="New password"
  aria-describedby="pwd-hint pwd-strength"
>
<p id="pwd-hint">Must be 8+ characters.</p>
<meter id="pwd-strength" aria-label="Password strength" value="2" max="4">Medium</meter>
<!-- Both elements are announced as the description -->

Étiquettes visibles et masquées

Lorsqu’une étiquette visible n’est pas possible, utilisez la classe sr-only :

<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">

/* Visually hidden but in accessibility tree: */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

Vérification rapide

Quelle est la différence entre aria-label et aria-labelledby ?

Récapitulatif : étiquettes ARIA

Principes essentiels des noms accessibles :

  • aria-label — nom textuel intégré pour les éléments sans étiquette visible
  • aria-labelledby — désigne par son id un texte visible existant
  • aria-describedby — description complémentaire (lue après le nom)
  • Privilégiez les étiquettes visibles et les éléments HTML label natifs
  • aria-label sur les repères distingue plusieurs régions du même type

Questions Fréquemment Posées

La leçon « `aria-label`, `aria-labelledby` et `aria-describedby` » est-elle gratuite ?

Oui — le texte complet de « `aria-label`, `aria-labelledby` et `aria-describedby` » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « `aria-label`, `aria-labelledby` et `aria-describedby` » ?

Fournissez des noms et des descriptions accessibles pour les éléments. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « `aria-label`, `aria-labelledby` et `aria-describedby` » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Quand utiliser ARIA plutôt que le HTML natif
  2. `role`, `button`, `alert`, `dialog` et repère
  3. `aria-label`, `aria-labelledby` et `aria-describedby`
  4. `aria-hidden` et `aria-live`
← Retour à HTML Academy