Attribut HTML : required
L'attribut booléen required
, s'il est présent, indique que l'utilisateur doit spécifier une valeur pour l'entrée avant que le formulaire propriétaire puisse être soumis. L'attribut required
est pris en charge pour les éléments text
, search
, url
, tel
, email
, password
, date
, month
, week
, time
, datetime-local
, number
, checkbox
, radio
, les éléments file
, <input>
, <select>
et <textarea>
de contrôle de formulaire. Si elle est présente sur l'un de ces types de saisie et éléments, la pseudo-classe :required
s'appliquera. Si l'attribut n'est pas inclus, la pseudo-classe :optional
s'appliquera.
L'attribut n'est pas pris en charge ou n'est pas pertinent pour range
et color
, car les deux ont des valeurs par défaut. Il n'est pas non plus pris en charge sur hidden
car on ne peut pas s'attendre à ce qu'un utilisateur remplisse un formulaire qui est caché. Il n'est pas non plus supporté sur aucun des types de boutons, y compris image
.
Notez que color
et range
ne supportent pas required
, mais le type color
est par défaut #000000
, et range
prend par défaut le point médian entre min
et max
— avec min
et max
prenant par défaut les valeurs 0 et 100 respectivement dans la plupart des navigateurs s'ils ne sont pas déclarés — donc a toujours une valeur.
Dans le cas d'un groupe de boutons radio
de même nom, si un seul bouton radio dans le groupe a l'attribut required
, un bouton radio dans ce groupe doit être vérifié, bien que ce ne soit pas nécessairement celui où l'attribut est appliqué. Ainsi, pour améliorer la maintenance du code, il est recommandé d'inclure l'attribut required
dans chaque bouton radio de même nom dans le groupe, ou bien dans aucun.
Dans le cas d'un même groupe nommé de types d'entrée checkbox
, seules les cases à cocher avec l'attribut required
sont obligatoires.
Note :
Le réglage aria-required="true"
indique à un lecteur d'écran qu'un élément (n'importe lequel) est requis, mais n'a aucune incidence sur le caractère facultatif de l'élément.
Interactions entre attributs
Comme un champ en lecture seule ne peut pas avoir de valeur, required
n'a aucun effet sur les entrées dont l'attribut readonly
est également spécifié.
Utilisabilité
Lorsque vous incluez l'attribut required
, fournissez une indication visible à proximité du contrôle informant l'utilisateur que les éléments <input>
, <select>
ou <textarea>
sont obligatoires. En outre, ciblez les contrôles de formulaire requis avec la pseudo-classe :required
, en les stylisant de manière à indiquer qu'ils sont requis. Cela améliore la convivialité pour les utilisateurs voyants. Les technologies d'assistance doivent informer l'utilisateur que le contrôle de formulaire est obligatoire sur la base de l'attribut required, mais l'ajout de aria-required="true"
ne fait pas de mal, au cas où la combinaison navigateur / lecteur d'écran ne prendrait pas encore en charge required
.
Validation des contraintes
Si l'élément est requis et que la valeur de l'élément est la chaîne vide, alors l'élément souffre de valueMissing
et l'élément correspondra à la pseudo classe :invalid
.
Exemple
HTML
<form>
<div class="group">
<input type="text" />
<label>Normal</label>
</div>
<div class="group">
<input type="text" required="required" />
<label>Requis</label>
</div>
<input type="submit" />
</form>
Résultat
Accessibilité
Fournissez une indication aux utilisateurs pour les informer que le contrôle de formulaire est requis. Veillez à ce que le message soit multiforme (texte, couleur, marquage, attribut, etc.) afin que tous les utilisateurs comprennent les exigences, qu'ils soient daltoniens, qu'ils présentent des différences cognitives ou qu'ils utilisent un lecteur d'écran.
Spécifications
Specification |
---|
HTML Standard # attr-input-required |
HTML Standard # attr-select-required |
HTML Standard # attr-textarea-required |
Compatibilité des navigateurs
html.elements.input.required
BCD tables only load in the browser
html.elements.select.required
BCD tables only load in the browser
html.elements.textarea.required
BCD tables only load in the browser
Voir aussi
- La propriété
validityState.valueMissing
- Les pseudo-classes
:required
et:optional
- L'élément
<input>
- L'élément
<select>