<labelfor="input-error"data-state="error">
E-mail
<smalldata-hint>Format attendu : nom@domaine.fr</small><inputtype="email"id="input-error"value="invalide"aria-invalid="true"placeholder="vous@exemple.fr"><smalldata-error>L'adresse e-mail n'est pas valide.</small></label>
<fieldset><legend>Date et heure</legend><labelfor="input-date">
Date
<inputtype="date"id="input-date"value="2026-09-22"></label><labelfor="input-month">
Mois
<inputtype="month"id="input-month"value="2026-09"></label><labelfor="input-week">
Semaine
<inputtype="week"id="input-week"value="2026-W39"></label><labelfor="input-time">
Heure
<inputtype="time"id="input-time"value="09:30"></label><labelfor="input-datetime-local">
Date et heure
<inputtype="datetime-local"id="input-datetime-local"value="2026-09-22T09:30"></label></fieldset>
<fieldset><legend>Libellés riches</legend><label><inputtype="checkbox"name="cb-rich"value="terms"><span>J'accepte les <ahref="#">conditions d'utilisation</a> et la politique de confidentialité du service.</span></label><label><inputtype="checkbox"name="cb-rich"value="long"> Un libellé volontairement long pour vérifier que le texte se replie correctement sous lui-même sans repasser sous la case à cocher ni provoquer de débordement horizontal du conteneur.</label></fieldset>
<fieldset><legend>Groupe horizontal (composition côté intégrateur)</legend><divstyle="display: flex;flex-wrap: wrap;gap:var(--peels-gap-component);"><label><inputtype="radio"name="radio-inline"value="a"checked> Jour</label><label><inputtype="radio"name="radio-inline"value="b"> Semaine</label><label><inputtype="radio"name="radio-inline"value="c"> Mois</label></div></fieldset>
<fieldset><legend>Sélection multiple de messages (indeterminate)</legend><table><thead><tr><thscope="col"><inputtype="checkbox"id="cb-all"aria-label="Sélectionner tous les messages"></th><thscope="col">Objet</th><thscope="col">Expéditeur</th></tr></thead><tbody><tr><td><inputtype="checkbox"name="messages"value="invoice"aria-labelledby="message-invoice-subject message-invoice-sender"checked></td><thscope="row"id="message-invoice-subject">Facture de septembre</th><tdid="message-invoice-sender">Comptabilité</td></tr><tr><td><inputtype="checkbox"name="messages"value="meeting"aria-labelledby="message-meeting-subject message-meeting-sender"></td><thscope="row"id="message-meeting-subject">Réunion d'équipe</th><tdid="message-meeting-sender">Direction</td></tr><tr><td><inputtype="checkbox"name="messages"value="newsletter"aria-labelledby="message-newsletter-subject message-newsletter-sender"></td><thscope="row"id="message-newsletter-subject">Lettre d'information</th><tdid="message-newsletter-sender">Association</td></tr></tbody></table></fieldset>
<fieldset><legend>Sélection simple et groupée</legend><labelfor="select-simple">
Pays
<selectid="select-simple"name="country"><optionvalue="">Choisir un pays…</option><optionvalue="fr">France</option><optionvalue="be">Belgique</option><optionvalue="ch">Suisse</option></select></label><labelfor="select-groups">
Thème
<selectid="select-groups"name="theme"><optgrouplabel="Clair"><optionvalue="light-default">Défaut</option><optionvalue="light-warm">Chaud</option></optgroup><optgrouplabel="Sombre"><optionvalue="dark-default">Défaut</option><optionvalue="dark-cool">Froid</option></optgroup></select></label></fieldset>
Groupe de champs de formulaire — fieldset, legend, small[data-hint]
<fieldset><legend>Informations personnelles</legend><labelfor="fs-nom">
Nom
<smalldata-hint>Utilisé uniquement pour l’affichage.</small><inputtype="text"id="fs-nom"placeholder="Votre nom"></label><labelfor="fs-email">
E-mail
<inputtype="email"id="fs-email"placeholder="vous@exemple.fr"></label></fieldset>
<fieldset><legend>Occupation du stockage</legend><labelfor="meter-storage">
Espace utilisé (6,4 Go sur 10 Go)
<meterid="meter-storage"min="0"max="10"value="6.4">6,4 Go sur 10 Go</meter></label></fieldset>
Indicateur de champ requis, texte d'aide et message d'erreur — em[data-required], small[data-hint], small[data-error]
<fieldset><legend>Notes intégrées au label (compact)</legend><labelfor="fn-password">
Mot de passe <emdata-requiredaria-hidden="true">*</em><smalldata-hint>Au moins 8 caractères, dont un chiffre.</small><inputtype="password"id="fn-password"requiredminlength="8"pattern=".*[0-9].*"><smalldata-error>Saisissez au moins 8 caractères incluant un chiffre.</small></label><labelfor="fn-email"data-state="error">
Adresse e-mail
<smalldata-hint>Format attendu : nom@domaine.fr</small><inputtype="email"id="fn-email"value="invalide"aria-invalid="true"><smalldata-error>L'adresse e-mail n'est pas valide.</small></label></fieldset>
<fieldset><legend>Notes dissociées via aria-describedby</legend><labelfor="fn-user">Identifiant <emdata-requiredaria-hidden="true">*</em></label><smallid="fn-user-hint"data-hint>Lettres minuscules et tirets uniquement.</small><inputtype="text"id="fn-user"requiredpattern="[a-z\-]+"aria-describedby="fn-user-hint fn-user-error"><smallid="fn-user-error"data-error>Utilisez uniquement des lettres minuscules (a–z) et des tirets (-).</small><labelfor="fn-domain">Domaine</label><smallid="fn-domain-hint"data-hint>Format attendu : https://exemple.fr</small><inputtype="url"id="fn-domain"value="http://"aria-invalid="true"aria-describedby="fn-domain-hint fn-domain-error"><smallid="fn-domain-error"data-error>Le domaine doit commencer par https://.</small></fieldset>