Des formulaires web plus simple et plus complet
Par Laurentj le vendredi, décembre 5 2003, 10:55 - Technologies Web - Lien permanent
Il faut avouer une chose : les contrôles que l'on dispose dans HTML (input, select, textarea etc.) sont relativement basiques, et pas assez diversifié. On en bave dans la réalisation d'applications web. Le W3C a alors sorti en octobre dernier, un nouveau langage XML pour faire des formulaires : XFORMS.
Certes, XFORMS est puissant, on peut l'inclure dans d'autres langages que XHTML, comme SVG etc.., mais alors, il est d'une complexité assez hallucinante comparé aux formulaires HTML et totalement incompatible bien entendu. Bref, on est loin de la simplicité du HTML (qui a fait son succés).
Et voilà que j'apprend, via un billet de Daniel, que Ian Hickson a réalisé un brouillon d'une spécification pour un nouveau module pour XHTML : XFORMS-Basic.
Là je dois dire que c'est que Ian a fait est tout simplement génial. Il propose de continuer à utiliser nos controles de formulaire HTML habituels, mais avec de nombreuses extensions. Par exemple, pouvoir avoir un <input type="datetime">. Ce contrôle permet de saisir une date, et rien qu'une date, sans erreur. Le navigateur peut même proposer un petit bouton adjacent pour choisir une date dans un calendrier. Dans la même veine, vous avez des <input type="email">, <input type="number">, <input type="integer"> etc..
Ces contrôles ne suffisent pas ? Utilisez alors un <input type="text"> classique, avec l'attribut pattern devant contenir une expression régulière, qui permettra au navigateur de vérifier que la saisie correspond au format indiqué par l'expression. Chouette non ? Plus besoin de javascript dans tout les sens ! :-)
Que dire aussi de la balise select, qui se voit adjoindre un attribut editable : on peut alors soit choisir un élement dans une liste, soit directement l'écrire. C'est le genre de widget trés utilisé dans toute interface graphique moderne (comme dans la barre de saisie de l'adresse d'un site dans votre navigateur).
Je vais m'arreter là dans les exemples, il y a tellement de nouveauté :-) Je vous laisse découvrir par vous même les autres bonnes surprises.
Bon, ce n'est bien sûr qu'un brouillon pour l'instant, un document qui ne fait que retranscrire ce qu'aimerait Ian dans XHTML. Mais peut-être cela sera-t-il proposé au W3C. On verra bien.
Commentaires
La vache :o
/me se rue sur le document en question pour en savoir plus
- les "vieux" navigateurs ignoreront ces nouveaux attributs et valeurs : ils interpreteront donc ça comme un input type="texte" classique. Cela n'empechera donc nullement la saisie
- le document recommande bien que, même si il y a un contrôle qui est fait coté navigateur grâce à ces attributs, cela ne doit pas du tout excuser une absence de controle coté serveur. Autrement dit, quelques soit les techniques utilisées pour saisir des informations dans un environnement web, (form html, xforms, xul, soap etc..) il ne faut jamais oublier dans les scripts serveurs, de controler les données que l'on reçoit.
Quelques remarques :
- Il faut indiquer dans ce billet l'adresse http://www.hixie.ch/specs/html/forms/xforms-basic-2
- Ça ressemble beaucoup à l'invention des types dans la programation, il y a quelques dizaines d'années...