Exemples de base de la création de nouveaux objets de formulaire pour étendre HTML 5.
Pour créer de nouveaux objets de formulaires, trois voies se présentent, aussi afin d'avoir une idée de leurs avantages et inconvénients, comparons avec la création d'un simple bouton personnalisé dans chaque format.
Bouton CSS 3
Ces boutons sont basés sur des balises HTML standards, <button> pour les deux premiers, <input> pour le dernier, et personnalisés avec une feuille de style. On pourra combiner des balises HTML pour créer des objets plus complexes comme par exemple une liste aborescente.
Ces boutons CSS sont compatibles avec les navigateurs modernes.
Les objets SVG ou Canvas n'offrent pas cette possibilité, il faudra recourir à des plugins ou des frameworks alternatifs pour les navigateurs anciens.
Bouton SVG
Le bouton SVG permet des effets de style que l'on va définir visuellement à partir d'un logiciel comme Inkscape. Malheureusement le rendu peut différer selon les navigateurs (le bouton est laid sous Chrome).
Cette démonstration sert surtout à voir comment l'utilisateur peut interagir avec un objet SVG. Ce format permet d'étendre HTML 5 avec de nouveaux objets plus complexes, en permettant d'interagir avec des parties spécifiques de cet objet. Il suffit d'associer des gestionnaires d'évènements à une balise, comme on le fait dans cet exemple.
Bouton Canvas
Une troisième possibilité est l'utilisation de Canvas. Il est plus facile d'obtenir un rendu compatible qu'en SVG, mais créer des objets composites interactifs sera aussi compliqué que de créer un jeu. Ce format convient pour créer de nouveaux objets avec peu d'interaction utilisateur, comme par exemple une horloge.
Conclusion: Choisir le bon format pour chaque usage
Il est difficile en créant un objet SVG ou Canvas d'écrire un code qui soit compatible avec tous les navigateurs, chacun ayant sont interprétation quand à l'implémentation de ces formats. L'essentiel du travail consiste donc à résoudre les problèmes de compatibilité ce qui est une perte de temps à moins de trouver des widgets prêts à être utilisés.
On utilisera de préférence:
Une construction HTML et CSS pour étendre HTML 5 avec ses propres objets,
SVG pour des choses comme les graphiques générés automatiquement et interactifs,
Canvas pour des graphismes indépendants de la page ou pour des widgets plus élaborés qu'un simple bouton, pouvant inclure des images ou des animations.