Les formulaires
Les formulaires sont un des éléments qui permettent d’apporter un côté dynamique à une page. Chaque formulaire peut être composé d’une série d’éléments spécifiques à des cas d’utilisation précis.
form
La balise <form> est la racine de n’importe quel formulaire HTML.
Elle est absolument obligatoire, avant tout pour des raisons de sémantique et d’accessibilité.
C’est à l’intérieur de celle-ci que vont être intégrés l’ensemble des champs désirés.
Attributs essentiels
autocomplete
L’attribut autocomplete spécifie au navigateur s’il doit pré-remplir l’ensemble des champs du formulaire avec vos informations (adresse, CB…).
Cet attribut s’applique également sur chacun des champs, et prendra l’avantage sur la configuration racine.
name
L’attribut name permet de donner un nom unique au formulaire.
Préférez utiliser un name plutôt qu’une classe ou un ID, car vous pouvez aussi accéder à ce formulaire en JS via document.forms, et lecteurs d’écran seront plus pertinents.
action
L’attribut action indique au navigateur quelle URL appeler à la soumission du formulaire.
C’est cette URL qui se chargera de la validation des données (parce qu’il faut toujours valider les données côté serveur).
method
L’attribut method indique au navigateur quelle méthode HTTP utiliser à la soumission du formulaire.
enctype
L’attribut enctype indique au navigateur quelle typologie de données sera envoyée au serveur.
Elle fonctionne uniquement dans le cas où la méthode HTTP est POST.
Les choix possibles sont :
enctype="application/x-www-form-urlencoded": le choix par défaut, suffisant dans la plupart des casenctype="multipart/form-data": le choix obligatoire si vous envoyez des fichiers
novalidate
L’attribut novalidate indique au navigateur de ne pas valider les données côté HTML, avant l’envoi au serveur.
label
L’élément label permet d’associer un texte à un chammp de formulaire.
Celui-ci n’est pas obligatoire, néanmoins il est fortement recommandé d’en ajouter un à chaque champ pour que les utilisateurs soient correctement informés, et favoriser la compréhension des lecteurs d’écran.
Dans ce cas, il convient d’ajouter l’attribut for au <label>, qui contient la même valeur que l’attribut id du champ associé, comme dans l’exemple ci-dessous :
fieldset
La balise fieldset permet de grouper un ensemble de champ au sein d’une même section.
Sémantiquement, cette balise permet de regrouper les champs qui sont destinés à la même finalité (informations personnelles, livraison…).
La balise legend permet d’ajouter un titre à un élément fieldset, pour indiquer visuellement à quoi sert ce regroupement.
button[type="submit"]
La balise button associée à l’attribut type="submit" permet de spécifier au navigateur que le bouton a comme unique but de soumettre le formulaire auquel il est relié, soit car il en est enfant, soit car il y fait référence via son attribut form.