Pseudo-classe CSS :optional
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La pseudo-classe CSS :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.
Exemple interactif
label {
display: block;
margin-top: 0.5em;
}
fieldset {
margin-top: 0.5em;
}
*:optional {
background-color: palegreen;
}
<label for="name">Nom (requis) :</label>
<input id="name" name="name" type="text" required />
<label for="birth">Date de naissance :</label>
<input id="birth" name="birth" type="date" />
<label for="origin"
>Comment avez-vous entendu parler de nous ? (requis)</label
>
<select id="origin" name="origin" required>
<option value="">Choisissez une option</option>
<option value="google">Google</option>
<option value="facebook">Facebook</option>
<option value="advertisement">Publicité</option>
</select>
<fieldset>
<legend>Méthode de contact privilégiée :</legend>
<label>
<input name="contact" type="radio" value="email" checked /> Courriel
</label>
<label><input name="contact" type="radio" value="phone" /> Téléphone</label>
</fieldset>
<label>
<input name="newsletter" type="checkbox" checked /> Je souhaite m'abonner à
une lettre d'information personnalisée.
</label>
<label>
<input name="privacy" type="checkbox" required /> J'ai lu et j'accepte la
Politique de confidentialité (obligatoire).
</label>
La pseudo-classe :optional est utile pour mettre en forme les champs qui ne sont pas obligatoires pour envoyer un formulaire.
Note :
La pseudo-classe :required sélectionne les champs de formulaire obligatoires.
Syntaxe
:optional {
/* … */
}
Accessibilité
Si un formulaire 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) peuvent savoir que ces champs ont besoin d'un contenu valide afin de pouvoir envoyer le formulaire.
Les champs obligatoires doivent é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é.
Exemples
L'élément optionnel a une bordure violette
HTML
<form>
<div class="champ">
<label for="entree_url">Tapez une URL :</label>
<input type="url" id="entree_url" />
</div>
<div class="champ">
<label for="entree_courriel">Tapez une adresse électronique :</label>
<input type="email" id="entree_courriel" required />
</div>
</form>
CSS
label {
display: block;
margin: 1px;
padding: 1px;
}
.champ {
margin: 1px;
padding: 1px;
}
input:optional {
border-color: rebeccapurple;
border-width: 3px;
}
Résultat
Spécifications
| Spécification |
|---|
| HTML # selector-optional |
| Selectors Level 4 # optional-pseudo |
Compatibilité des navigateurs
Voir aussi
- Les autres pseudo-classes liées à la validation :
- La validation des données de formulaire