Mode sans média : les images ne sont pas affichées, et celles qui sont chargées à la demande ne sont pas téléchargées. Poids de cette page : —.

Générateur de fieldset et legend

Décrivez votre groupe de champs : le générateur écrit le fieldset HTML, sa légende et chaque champ avec son étiquette, puis montre le rendu et le code.

Type de champs

Une option par ligne. Pour fixer la valeur envoyée : Point relais | relais.

Une consigne qui vaut pour tous les champs, comme un format.
Sert aussi de base aux id. Par défaut : tiré de la légende.
Balisage

Partir d’un exemple

Résultat

Aperçu

Les champs fonctionnent : essayez-les au clavier ou au lecteur d’écran.

Mode de livraison (obligatoire)

Code HTML

<fieldset>
	<legend>Mode de livraison (obligatoire)</legend>
	<div>
		<input type="radio" id="livraison-1" name="livraison" value="livraison-a-domicile" required>
		<label for="livraison-1">Livraison à domicile</label>
	</div>
	<div>
		<input type="radio" id="livraison-2" name="livraison" value="point-relais" required>
		<label for="livraison-2">Point relais</label>
	</div>
	<div>
		<input type="radio" id="livraison-3" name="livraison" value="retrait-en-magasin" required>
		<label for="livraison-3">Retrait en magasin</label>
	</div>
</fieldset>

Vos formulaires existants sont-ils bien groupés et étiquetés ? Le pré-audit gratuit vérifie toute une page : formulaires, contrastes, titres, images… Lancer le pré-audit gratuit

À vérifier

  • La mention « obligatoire » est dans la légende : elle est visible avant toute saisie et restituée avec le nom du groupe.
  • Relisez la légende : elle doit dire, en peu de mots, à quoi servent ces champs (critère 11.7).

Outil gratuit Critères 11.5 et 11.6

En bref

Boutons radio, cases à cocher, date en trois champs ou adresse : partez d’un exemple ou de vos propres libellés.

  • Chaque champ reçoit son étiquette, reliée par for et id ; la légende nomme le groupe (critère 11.6).
  • Groupe obligatoire : la mention « obligatoire » est écrite dans la légende ou dans l’étiquette ; required va sur les boutons radio et les champs de saisie, jamais sur les cases à cocher.
  • Une aide commune au groupe est reliée à chaque champ par aria-describedby.
  • Pour une date ou une adresse, chaque champ peut recevoir sa valeur autocomplete.
  • La version ARIA, role="group" ou role="radiogroup", est proposée avec ce qu’elle implique.
  • Tout se calcule dans votre navigateur : rien n’est envoyé.

Limites du verdict : le générateur produit un groupe à la fois, sans mise en forme. Il ne décide pas quels champs de votre formulaire regrouper, ni si votre légende est pertinente (critère 11.7). Le contrôle à l’envoi et les messages d’erreur restent à écrire.

Toute la page à vérifier ? Lancer l’analyseur gratuit

Ce que demandent les critères 11.5 et 11.6

Le critère 11.5 du RGAA 4.1.2 demande que les champs de même nature soient regroupés, si nécessaire. Son test accepte trois balisages : un élément <fieldset>, un élément avec role="group", et, pour des boutons radio, un élément avec role="radiogroup".

Le critère 11.6 demande une légende à chaque regroupement : un <legend> dans le fieldset, ou un attribut aria-label ou aria-labelledby sur l’élément qui porte le rôle. Le critère 11.7 demande ensuite que cette légende soit pertinente : c’est la seule partie qu’un générateur ne peut pas vérifier.

Quand regrouper des champs

Le glossaire du RGAA définit les champs de même nature comme ceux qui doivent être traités comme un ensemble. Ses exemples : une date en trois champs, un numéro de téléphone en plusieurs champs, un bloc d’identité et d’adresse quand le formulaire en contient plusieurs, des boutons radio ou des cases à cocher qui répondent à une même question.

Le regroupement devient nécessaire quand l’étiquette seule ne dit pas à quoi sert le champ. « Oui » ne veut rien dire sans la question ; « Code postal » est ambigu quand la page demande une adresse de livraison et une adresse de facturation. À l’inverse, la définition de la légende précise qu’un formulaire fait d’un seul bloc d’informations, ou d’un champ unique comme un moteur de recherche, n’a pas besoin de regroupement. Elle admet aussi de porter l’information dans l’étiquette de chaque champ, par exemple « Code postal de livraison », sans regroupement.

Ce que le fieldset apporte

Selon la spécification HTML, un fieldset regroupe des champs, et le premier legend placé directement dedans lui sert de titre. Le calcul du nom accessible en fait le nom du groupe que reçoivent les technologies d’assistance. La technique H71 des WCAG indique que les navigateurs présentent souvent la légende avant l’étiquette de chaque champ : gardez-la courte, elle se répète.

Un attribut disabled posé sur le fieldset désactive tous les champs qu’il contient, hors de la légende. La légende peut contenir un titre, par exemple <legend><h2>Adresse de livraison</h2></legend> : la spécification de legend autorise du contenu de phrase mêlé de titres.

La version ARIA, et quand la choisir

Le RGAA valide aussi un <div role="group"> nommé par aria-labelledby, qui pointe vers un texte visible faisant office de légende. La technique ARIA17 demande role="radiogroup" pour des boutons radio : le générateur le pose de lui-même. Elle précise que ce n’est pas fait pour envelopper tous les champs d’un formulaire dans un seul groupe.

Les deux versions passent les critères 11.5 et 11.6. La première règle d’usage d’ARIA du W3C demande pourtant de préférer l’élément HTML natif quand il fait ce qu’on attend, ce qui est le cas ici. Gardez la version ARIA pour un conteneur qui ne peut pas devenir un fieldset, par exemple un composant imposé par une bibliothèque.

Groupe obligatoire

Le critère 11.10 demande une indication visible du caractère obligatoire avant l’envoi du formulaire. Pour un champ de saisie, le générateur l’écrit dans l’étiquette et pose required. Pour un groupe de choix, il l’écrit dans la légende : le RGAA cite d’ailleurs la légende d’un groupe comme l’emplacement de la mention « facultatif ».

  • Boutons radio : selon la spécification HTML, un seul bouton marqué required rend tout le groupe obligatoire. Le générateur le pose sur chacun : l’effet est le même, et le code se lit mieux.
  • Cases à cocher : required rendrait chaque case obligatoire. La règle « au moins un choix » se contrôle donc à l’envoi, avec un message d’erreur qui nomme le groupe (test 11.10.3).
  • Champs de saisie : écrivez « (facultatif) » dans le libellé d’un champ pour que le générateur ne le rende pas obligatoire, comme un complément d’adresse.

Aide commune et autocomplete

Une consigne qui vaut pour tout le groupe, comme un format de date, est placée sous la légende et reliée à chaque champ par aria-describedby. Le glossaire du RGAA décrit ce passage de texte lié : une liste d’id uniques dans la page. La légende reste courte, l’aide est restituée avec chaque champ.

Pour un champ de saisie, écrivez après une barre verticale la valeur autocomplete : Code postal | postal-code. Le générateur accepte les valeurs d’identité, d’adresse, de date de naissance et de contact de la liste du RGAA : chacune peut être précédée de shipping (livraison) ou billing (facturation), comme le prévoient les notes techniques du critère 11.13. Ce critère ne les exige que pour les champs qui portent sur la personne qui remplit le formulaire.

Le type du champ suit les groupes de contrôles de la spécification HTML : type="email" pour email, type="url" pour url et type="tel" pour le seul numéro complet, tel. Un morceau de numéro, comme tel-national ou tel-country-code, reste un champ texte, avec inputmode="tel" pour afficher le clavier téléphonique.

Mise en forme

Le code produit ne contient aucun style. La bordure d’un fieldset et la position de sa légende se changent en CSS sans toucher au rôle ni au nom du groupe. La technique H71 conseille de garder un regroupement visible, et d’éviter les fieldsets imbriqués quand ce n’est pas nécessaire.

Sources

RGAA 4.1.2, critère 11.5 (regroupement des champs de même nature) ; RGAA 4.1.2, critère 11.6 (légende des regroupements) ; RGAA 4.1.2, critère 11.7 (pertinence des légendes) ; RGAA 4.1.2, critère 11.10 (indication des champs obligatoires) ; RGAA 4.1.2, critère 11.13 (autocomplete des champs sur l’utilisateur) ; RGAA 4.1.2, glossaire : Champs de même nature ; RGAA 4.1.2, glossaire : Légende ; RGAA 4.1.2, glossaire : Passage de texte lié par aria-labelledby ou aria-describedby ; RGAA 4.1.2, glossaire : Liste des valeurs possibles pour l’attribut autocomplete ; HTML Living Standard, l’élément fieldset, en anglais ; HTML Living Standard, l’élément legend, en anglais ; HTML Living Standard, boutons radio et champs obligatoires, en anglais ; HTML Living Standard, remplissage automatique et groupes de contrôles, en anglais ; WCAG 2.1, technique H71 : fieldset et legend, en anglais ; WCAG 2.1, technique ARIA17 : rôles de regroupement, en anglais ; W3C, Using ARIA : première règle d’usage, en anglais ; W3C, HTML Accessibility API Mappings : nom accessible du fieldset, en anglais .

Page mise à jour le 11 novembre 2026.

Questions fréquentes

Quand faut-il utiliser un fieldset ?

Quand l’étiquette de chaque champ ne suffit pas à le comprendre : des boutons radio « Oui » et « Non » qui répondent à une question, une date en trois champs, deux adresses dans le même formulaire. Ce sont les exemples du glossaire du RGAA. Un champ seul, ou un formulaire fait d’un seul bloc d’informations, n’a pas besoin de regroupement.

Fieldset ou role="group" : lequel choisir ?

Le RGAA accepte les deux : un fieldset avec sa legend, ou un élément avec role="group" (role="radiogroup" pour des boutons radio) nommé par aria-labelledby ou aria-label. Le fieldset fait la même chose sans ARIA et sait en plus désactiver tous ses champs avec un seul attribut disabled. La première règle d’usage d’ARIA du W3C demande de préférer l’élément natif quand il existe.

Comment rendre obligatoire un groupe de boutons radio ou de cases à cocher ?

Pour des boutons radio, l’attribut required sur l’un d’eux rend tout le groupe obligatoire, selon la spécification HTML. Pour des cases à cocher, required rendrait chaque case obligatoire : la règle « au moins une case » se contrôle à l’envoi. Dans les deux cas, écrivez la mention dans la légende, pour qu’elle soit visible avant la saisie (critère 11.10).

Peut-on mettre un titre h2 dans une legend ?

Oui. La spécification HTML autorise du contenu de phrase et des titres dans une legend, par exemple <legend><h2>Adresse de livraison</h2></legend>. C’est utile quand le groupe est aussi une section du formulaire : le titre apparaît dans le plan de la page et la légende nomme toujours le groupe.

Peut-on retirer la bordure d’un fieldset ?

Oui : border: 0 en CSS ne change ni le rôle ni le nom du groupe. Le W3C conseille toutefois de garder un regroupement visible, un espacement ou un fond par exemple, pour que chacun voie quels champs vont ensemble.

Peut-on imbriquer des fieldsets ?

C’est permis, mais la technique H71 du W3C demande de l’éviter quand ce n’est pas nécessaire : chaque niveau ajoute une légende à écouter et rend le formulaire plus difficile à suivre. Un groupe de boutons radio dans une adresse, par exemple, peut le justifier.

Un audit RGAA, critère par critère

Un outil vérifie un point. L’audit teste à la main les 106 critères sur chaque page de l’échantillon et livre la déclaration d’accessibilité. À partir de 1 500 € HT pour un échantillon de 8 pages.

Voir l’audit RGAA Poser une question

À lire sur le sujet

Outils complémentaires

  • Critère 11.13 Attribut autocomplete HTML La valeur autocomplete d’un champ trouvée par son nom en français, le code du champ, et la vérification d’un formulaire.
  • Critères 5.1, 5.4, 5.6 et 5.7 Générateur de tableau HTML accessible Le code d’un tableau HTML accessible depuis un collage de tableur : caption, th, scope, ou id et headers pour un tableau complexe.
  • Critère 12.7 Générateur de lien d’évitement Le HTML et le CSS d’un lien d’évitement visible au focus, avec sa cible et un aperçu à tester au clavier.

Tous les outils gratuits