Formulaires : quand les CSS 3 vous changent la vie

Souvenez-vous, l’an dernier j’avais rédigé un billet sur les apports de CSS 3 pour les formulaires (voir ce billet ici : Des formulaires standardisés) et notamment sur les pseudo-classes comme :valid, :invalid ou encore :required. Le Gou Blog vient de nous publier un billet sur le même thème qui tombe à pic : Un peu de CSS3 pour les formulaires…. L’auteur nous parle entre autre de pseudo-classes comme :disabled, :focus ou encore :checked.

Pourquoi cet article tombe à pic ? Tout simplement parce qu’à l’époque où j’ai rédigé mon billet, toutes ces pseudo-classes étaient encore de la science-fiction, alors qu’avec la sortie de Firefox 1.5 et autres Opera 8.5, ces pseudo-classes peuvent enfin être exploitées. Si vous n’êtes pas convaincu, je vous invite à regarder le formulaire test du sieur Gou ou encore à admirer cette superbe mise en page à deux colonnes réalisée bien entendu à l’aide de propriétés CSS 3.

Au cas où vous ne l’auriez pas compris, l’utilité de ces pseudo-classes est de standardiser la façon de concevoir un formulaire en proposant du code toujours plus limpide et un comportement uniforme.

Javascript au secours des formulaires

Vous le savez, les formulaires c’est ma bête noire. Je vous propose ce matin de découvrir un très bon article qui nous explique en 10 points comment améliorer le comportement d’un formulaire : 10 Tips To A Better Form.

Autant vous prévenir tout de suite, il y est principalement question de Javascript et des possibilités que cela offre : auto-tabulation, aide contextuelle, gestion des erreurs, persistance des données, comportement des boutons de validation et des champs dates…

Est-ce que tout cela est accessible ? Je ne suis pas expert en la matière donc je laisse le soin à des personnes plus qualifiées de nous confirmer que les morceaux de code proposés sont conformes au DOM et qu’ils se dégradent correctement.

C’est quoi une page web ?

Le web évolue ou pour être plus précis, le web a évolué. Le concept de web 2.0 ne plaît pas, c’est un fait, n’en parlons plus. Plutôt que de spéculer sur l’avenir de l’internet, je vous propose plutôt que de vous retourner et de méditer sur le chemin parcouru.

A la base, c’est quoi une page web ?

Sans rentrer dans les détails, et en vulgarisant, une page web est composée de trois couches :

  1. le contenu
  2. la présentation
  3. le comportement (les fonctionnalités et interactions)

Et maintenant, c’est quoi une page web ?

A peu près la même chose. Dans le fond, si vous observez bien la page que vous êtes en train de lire, hormis la date, vous auriez bien des difficultés à dater cette page.

Mais alors, y a-t-il eu évolution ? Oui ! Mais elle est subtile cette évolution.

Contenu : tout le monde lit-il la même chose ?

Non, définitivement. La preuve :

  • si vous surfez sur mon site, vous aurez accès à l’ensemble du contenu des pages ;
  • si vous utilisez un lecteur de flux RSS, il se peut que vous n’ayez accès qu’à des extraits de pages (les x premiers caractères) ;
  • si vous utilisez un portail de syndication du type NetVibes, vous n’aurez accès qu’aux titres de mes billets ;
  • si le contenu était formaté en XML et transformé à la volé via une feuille de style XSL vous pourriez aussi bien voir une page WAP qu’un fichier PDF.

En fonction de votre contexte d’utilisation, le contenu auquel vous aurez accès peut être complètement différent (plus ou moins riche).

Présentation : version dégradée ou allégée ?

Pour la présentation, c’est la même chose :

  • si vous surfez sur mon site avec un navigateur récent (comme Firefox ou Opera) vous aurez devant vos yeux une mise en page sobre avec de jolis coins arrondis ;
  • si vous utilisez un navigateur comme IE, vous aurez les mêmes couleurs mais plus de coins arrondis ;
  • si vous imprimez cette page, plus de couleurs, mais une police de caractère plus adaptée à la lecture sur papier ;
  • si vous utilisez un lecteur de flux RSS, c’est le style par défaut du lecteur qui sera utilisé ;
  • si vous utilisez un navigateur alternatif (lecteur d’écran, PDA…) vous aurez une version encore plus dégradée ;
  • si en plus, vous utilisez une extension du type GreaseMonkey qui altère le comportement de la page pour l’enrichir (ou la détourner), alors là… c’est la porte ouverte à tout.

En fonction du terminal et du logiciel d’accès à internet, la présentation de cette page sera également très différente.

Comportement : plus ou moins riche ?

Prenons l’exemple de la page suivante : The accessible AJAX calculator.

  • si vous utilisez un navigateur qui se respecte, la réponse est rapatriée de façon dynamique sans avoir besoin de recharger la page ;
  • si votre navigateur est plus ancien, il aura plus de mal à interpréter le bout de code AJAX et devra rafraîchir la page pour rapatrier le résultat ;
  • si le javascript est désactivé sur votre navigateur la calculatrice ne fonctionnera pas, seuls les liens hypertextes seront actifs.

En fonction de la capacité de votre navigateur à interpréter des bouts de code, le comportement d’une page sera plus ou moins riche.

Conclusion

Vous l’aurez bien compris : une page web reste une page web, mais la notion même de page arrive à expiration :

  • du contenu syndiqué (via RSS?) et modulaire (via XSL??) ;
  • une présentation flexible (via CSS) et adaptable (à l’aide de l’attribut media) ;
  • un comportement qui peut être dégradé (avec les balises <script> et <noscript>)…

Autant de petites évolutions qui au fil des ans ont fait évoluer les concepts de pages et de sites web. Les standards W3C, l’accessibilité, le web sémantique l’utilisabilité… sont autant de leviers pour proposer une utilisation plus riche de l’internet. Le tout au service des utilisateurs, pour une expérience en ligne plus agréable, plus performante, plus simple, plus puissante, plus… mieux, non ?

Et ce n’est qu’un début : les réseaux sociaux, les interfaces riches, les microformats… seront les leviers de demain pour bâtir celui-dont-on-ne-doit-pas-nommer-le-nom (pour ceux qui ne suivent pas, il ne s’agit pas de Voldemort !).

Tous fous des standards web !

J’ai déjà eu l’occasion de faire l’article sur les standards du W3C. Aujourd’hui je vous propose de lire un article très intéressant sousl a forme d’une interview entre deux gourous du web : Why eBay needs Standards-Oriented Design: An Interview with Eric A Meyer. D’un côté il y a Jared Spool, l’un des ergonomes les plus influent de la planète et de l’autre il y a Eric Meyer, le dieu des CSS.

Le plus étonnant dans cet article, c’est que les points de vue de ces deux personnes se rejoignent : les standards web (XHTML, CSS, DOM…) améliorent le confort d’utilisation et sont une vrai source d’économie. Ils prennent ainsi l’exemple du site d’eBay qui pourrait économiser des millions de dollars s’ils se conformaient aux standards. Mais bon, il faut croire qu’ils ont de l’argent à dépenser… (rapport au rachat de Skype).