`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 visiblearia-labelledby— désigne par son id un texte visible existantaria-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
- Quand utiliser ARIA plutôt que le HTML natif
- `role`, `button`, `alert`, `dialog` et repère
- `aria-label`, `aria-labelledby` et `aria-describedby`
- `aria-hidden` et `aria-live`