We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

La pseudo-classe :optional permet de cibler les éléments <input> ou <textarea>  pour lesquels l'attribut required n'est pas activé. Cela permet ainsi d'indiquer et de mettre en forme les champs facultatifs d'un formulaire.

/* Cible les élméents <input> qui sont optionnels */
/* c'est-à-dire qui n'ont pas d'attribut required */
input:optional {
  border: 1px dashed black;
}

Note : Afin de mettre en forme les champs obligatoires, on pourra utiliser la pseudo-classe :required.

Syntaxe

:optional

Exemples

CSS

input {
  border-width: 3px;
}
input:optional {
  border-color: #008000;
}  
input:required {
  border-color: #800000;
}

HTML

<form>
  <label for="url-input">Tapez une URL :</label>
  <input type="url" id="url-input">
  <br>
  <br>
  <label for="email-input">Tapez une adresse électronique :</label>
  <input type="email" id="email-input" required>
</form>

Résultat

Accessibilité

Si un formulaire (<form>) contient des champs (<input>) optionnels, les champs obligatoires doivent être indiqués avec l'attribut input. Ainsi, les personnes utilisant des outils d'assistance (par exemple un lecteur d'écran) pourront savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire.

Les champs obligatoires devraient également être indiqués visuellement et cette indication ne doit pas uniquement être fournie avec une couleur. Généralement, un texte descriptif ou une icône est utilisé.

Spécifications

Spécification État Commentaires
HTML Living Standard
La définition de ':optional' dans cette spécification.
Standard évolutif Aucune modification.
HTML5
La définition de ':optional' dans cette spécification.
Recommendation Définition de la sémantique relative à HTML et aux contraintes de validation.
Selectors Level 4
La définition de ':optional' dans cette spécification.
Version de travail Aucune modification.
CSS Basic User Interface Module Level 3
La définition de ':optional' dans cette spécification.
Recommendation proposée Définition de la pseudo-classe mais sans la sémantique associée.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple10 Oui410105
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple ?4.4 Oui4105 Oui

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight, tregagnon, teoli, FredB
Dernière mise à jour par : SphinxKnight,