AJAX – XML = AHAH

Non ceci n’est pas une blague.

Si vous êtes séduit par le principe d’AJAX mais que le XML vous semble un peu trop complexe à manier alors je vous recommande l’AHAH (Asychronous HTML and HTTP). En gros, le principe est très simple : utiliser l’objet XMLHttpRequest pour rapatrier du contenu stocker en XHTML. Et oui, c’est ici que l’astuce réside : plutôt que de rapatrier du XML qu’il faut ensuite transformer en HTML via XSL, et bien on rapatrie directement de l’HTML.

Pour aller plus loin dans l’explication, les auteurs d’AHAH le décrive comme un REST-Enabled XHTML microformat qui serait issu de JAH (Just Asynchronous HTML). Rien de très révolutionnaire mais comme ils proposent des bibliothèques javascript toutes prêtes ça serait dommage de se priver, non ?

Tout ça me donne des idées… je me demande si je ne vais pas publier les premières spécifications de HUM-HUM (HTML and UML Metadata for Human Ubiquitus Model) voir de PIF-POUF (Portal Infrastructure Functionnality for P2P Object Unified Framework). Et vous ?

Les W3C et les interfaces riches

Le W3C vient de lancer un groupe de travail autour des interfaces riches et des API : W3C Launches Rich Web Client Activity. Et ça, c’est un très bonne nouvelle à plus d’un titre :

  • cela va permettre l’élaboration d’un référentiel d’API et de classes pour différentes fonctionnalités et comportements évolués (persistance côté client, drag & drop, file upload, timed events…) ;
  • cela va permettre de faire évoluer le DOM niveau 3 dans la bonne direction ;
  • le W3C est la meilleure caution pour que les développement autour des API et d’AJAX se fassent dans un cadre structuré (respectant les standards).

Plus d’infos ici : W3C Web APIs Working Group.

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).