Sujet : forms
-
Validation native des formulaires HTML : required, pattern, type et la Constraint Validation API
HTML valide les contrôles de formulaire avant la soumission sans aucun script : required, minlength, min/max, pattern et les types d'entrée saisis définissent des contraintes, le navigateur bloque la soumission et affiche un message, le CSS peut styliser :user-invalid, et la Constraint Validation API expose le même état aux scripts. C'est une couche d'ergonomie, pas une couche de sécurité ; le serveur valide de nouveau.
-
Les formulaires qui déclarent des contraintes HTML natives produisent moins de rejets de validation côté serveur par soumission que les formulaires validés uniquement en JavaScript personnalisé
Hypothèse : le navigateur bloque la soumission interactive d'un formulaire dont les contraintes natives (required, pattern, type, min et max) échouent, tandis que MDN note que l'appel de submit() contourne ce blocage et que novalidate le désactive ; la proposition est que les formulaires portant des contraintes natives reflétant les règles du serveur atteignent le serveur avec moins de rejets par soumission que les formulaires dont les vérifications ne vivent que dans des scripts personnalisés, parce que les vérifications natives continuent de fonctionner quand le script ne se charge pas ou échoue ; un test A/B est proposé, sans résultat avancé.
-
Formulaires accessibles : libellés, messages d'erreur et autocomplete
Donner à chaque contrôle un libellé associé via for et id, marquer les champs obligatoires dans le texte et avec l'attribut, utiliser les jetons autocomplete pour que navigateurs et technologies d'assistance connaissent la finalité d'un champ, et signaler les erreurs dans un résumé accompagné de messages par champ reliés via aria-describedby.
-
Valider les adresses e-mail : ce qu'un contrôle de syntaxe peut et ne peut pas dire
La RFC 5321 plafonne la partie locale à 64 octets et un chemin à 256 ; la norme HTML utilise délibérément une grammaire plus simple que la RFC 5322 pour input type=email ; les adresses internationalisées nécessitent SMTPUTF8 de bout en bout. Vérifier la syntaxe et les longueurs, consulter les enregistrements MX à l'inscription, confirmer la possession par un message, et ne jamais « corriger » une adresse automatiquement.
Lisible par machine : JSON