L’élément label et l’accessibilité
Associez les labels aux champs input pour faciliter l’utilisation par les lecteurs d’écran.
L’élément label et l’accessibilité 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 étiquettes sont importantes
L’élément <label> associe une description textuelle à un contrôle de formulaire :
- Les lecteurs d’écran annoncent l’étiquette lorsque le champ reçoit le focus
- Cliquer sur l’étiquette active le champ associé
- Sans étiquette, les utilisateurs de lecteurs d’écran ne savent pas à quoi sert un champ
Étiquette explicite avec for
L’attribut for relie une étiquette à un champ grâce à son id :
<label for="email">Email address</label>
<input type="email" id="email" name="email">
<!-- for="email" matches id="email" -->
<!-- Clicking "Email address" moves focus to the input -->
<!-- Required for proper accessibility -->Étiquette implicite (conteneur)
Placer le champ à l’intérieur de l’étiquette crée une association implicite :
<!-- No for/id needed — input is inside label -->
<label>
Email address
<input type="email" name="email">
</label>
<!-- Works fine but explicit association is more robust
(especially when label and input are far apart in the DOM) -->Séparer l’étiquette et le champ
Lorsque l’étiquette et le champ ne peuvent pas être adjacents, utilisez aria-labelledby :
<h2 id="section-title">Billing Details</h2>
<input type="text" name="name" aria-labelledby="section-title">
<!-- The heading serves as the accessible label for the input -->aria-label comme solution alternative
Lorsqu’une étiquette visible n’est pas possible, utilisez aria-label :
<!-- Search form with icon button -->
<form>
<input type="search" name="q" aria-label="Search the site">
<button type="submit" aria-label="Submit search">
<svg><!-- magnifier icon --></svg>
</button>
</form>Une étiquette par champ
Chaque champ doit avoir exactement une étiquette. Les champs multiples doivent avoir des étiquettes distinctes :
<!-- BAD: one label for multiple inputs -->
<label>First and last name
<input type="text" name="first">
<input type="text" name="last">
</label>
<!-- GOOD: separate labels -->
<label for="first">First name</label>
<input type="text" id="first" name="first">
<label for="last">Last name</label>
<input type="text" id="last" name="last">Indiquer les champs obligatoires
Indiquez les champs obligatoires de manière accessible :
<!-- Visual + accessible required indicator -->
<label for="email">
Email address
<span aria-hidden="true">*</span> <!-- visual asterisk -->
<span class="sr-only">(required)</span> <!-- screen reader text -->
</label>
<input type="email" id="email" name="email" required>Fieldset et legend pour les groupes
Regroupez les champs associés avec <fieldset> et <legend> :
<fieldset>
<legend>Shipping address</legend>
<label for="addr-street">Street</label>
<input type="text" id="addr-street" name="street" autocomplete="address-line1">
<label for="addr-city">City</label>
<input type="text" id="addr-city" name="city" autocomplete="address-level2">
</fieldset>Fieldset pour les groupes de boutons radio
Les groupes de boutons radio ont toujours besoin d’un fieldset et d’une legend :
<fieldset>
<legend>Preferred contact method</legend>
<label>
<input type="radio" name="contact" value="email"> Email
</label>
<label>
<input type="radio" name="contact" value="phone"> Phone
</label>
<label>
<input type="radio" name="contact" value="text"> Text message
</label>
</fieldset>Un placeholder n’est pas une étiquette
Un placeholder disparaît lorsque l’utilisateur saisit du texte — il ne peut pas remplacer une étiquette :
<!-- BAD: placeholder used as a label -->
<input type="email" placeholder="Email address">
<!-- Screen readers may announce the placeholder, but many skip it -->
<!-- User cannot see the field purpose while typing -->
<!-- GOOD: -->
<label for="email">Email address</label>
<input type="email" id="email" placeholder="you@example.com">Étiquettes masquées visuellement
Si la conception ne comporte aucune étiquette visible, masquez-la visuellement tout en la conservant pour les lecteurs d’écran :
<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">
/* sr-only utility class: */
.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
Comment associer une étiquette à un champ avec une association explicite ?
Récapitulatif : accessibilité des étiquettes
Points essentiels des étiquettes :
- Chaque champ a toujours besoin d’une étiquette
<label for="id">association explicite- Placer le champ à l’intérieur de l’étiquette = association implicite
aria-labelledbyrelie l’étiquette à n’importe quel élément grâce à son idaria-labelpour les boutons constitués uniquement d’une icône et dépourvus de texte visible<fieldset>+<legend>pour les contrôles regroupés
Apprends HTML avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 40
- Leçons
- 159
Questions Fréquemment Posées
La leçon « L’élément label et l’accessibilité » est-elle gratuite ?
Oui — le texte complet de « L’élément label et l’accessibilité » 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 « L’élément label et l’accessibilité » ?
Associez les labels aux champs input pour faciliter l’utilisation par les lecteurs d’écran. 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 « L’élément label et l’accessibilité » ?
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
- L’élément form : action, method et enctype
- Types d’input : text, password, email, number et tel
- L’élément label et l’accessibilité
- L’élément button : submit, reset et button