Les formulaires sont un élément essentiel du web et le seul moyen de collecter des informations provenant de vos utilisateurs.
Ils sont aussi une vraie difficulté dans bien des cas, et une perte importante d'utilisateur est généralement constaté au moment de compléter un formulaire.
Rendre un formulaire accessible est donc indispensable afin de conserver les utilisateurs, et de permettre que tous les usagers puissent le remplir.
Le lien entre le label et le champ se fait parce que l'attribut for de label contient la valeur de l'attribut id du champs.
Exemple
Les fieldsets
Les fieldsets permettent de regrouper les champs de formulaires qui ont un lien ou une cohérence entre eux.
Un fieldset possède une "legend", et par défaut est représenté par un cadre avec la légende en haut à gauche. Ce comportement peut bien sr tre modifié en CSS.
Ressource sur les bonnes pratiques des formulaires
Le CSS
Tout comme pour les tableaux, bien utiliser les bonnes balises peut permettre de formater en CSS un formulaire sans devoir créer des class ou des id spécifiques.
Créez un formulaire accessible, ergonomique et correctement structuré qui doit contenir les champs suivants :
Nom, Prénom
Email
Civilité
Nationalité (indiquer uniquement quelques pays)
Adresse complète
Coordonnées du moyen de paiement
Acceptation des CGU
Vous proposerez des regroupements cohérents des champs. Vous veillerez à un rendu correct en CSS (sans utilisation de Bootstrap ou équivalent pour cet exercice).
<input type="checkbox" id="vehicle1" name="vehicle[]" value="Bike">
<label for="vehicle1"> I have a bike</label><br>
<input type="checkbox" id="vehicle2" name="vehicle[]" value="Car">
<label for="vehicle2"> I have a car</label><br>
<input type="checkbox" id="vehicle3" name="vehicle[]" value="Boat">
<label for="vehicle3"> I have a boat</label><br>
<textarea rows="10" cols="100">
Le contenu de la zone de saisie
</textarea>
<select name="liste" id="liste" class="...">
<option value="">Choisir dans la liste</option>
<option value="1">Valeur 1</option>
...
<option value="n">Valeur n</option>
</select>