Si on veut utiliser Ajax sur un site web, comme sur un blog, il faut faire attention à l'utiliser correctement. En effet, mal utilisé, un site peu devenir totalement inaccessible. Prenons donc l'exemple d'un blog ;-), affichant la liste des billets, avec pour chacun le chapô, et un lien "lire la suite" pour voir le contenu. Imaginons qu'en cliquant sur ce lien, cela ne n'affiche pas une nouvelle page, mais execute un script qui va aller chercher le texte sur le serveur, l'insérer à la suite du chapô, et l'afficher. Un exemple court et simple serait de faire :

<a href="#" onclick="afficheContenu(); return false;">Lire la suite</a>

Ça fonctionne trés bien et c'est trés agréable pour l'internaute "classique" que je suis. Mais pour les autres non. À cause du #. Pas de lien. Cela devient trés génant par exemple, pour ceux qui ont le javascript désactivé, ou qui n'ont pas du tout javascript comme ceux utilisant les navigateurs textes, ou les robots d'indexations. Et ceux utilisant par exemple des lecteurs vocaux d'écran, cela pose certainement problème. J'aimerais d'ailleurs savoir comme réagit un tel système face à une page qui est modifiée dynamiquement. Avertit-il l'internaute qu'elle a été modifiée ? prend-t-il en compte les éléments de la page ajoutés ou supprimés dynamiquement ?

Donc si on veut être sûr de pouvoir rendre accessible sa page web à tout le monde, il faut toujours renseigner les liens avec des vrais urls, faire toujours en sorte que l'internaute puisse accéder au contenu via le principe de base du web : le lien hypertexte.

<a href="/blog/2005/09/14/les-travers-d-ajax" onclick="afficheContenu(); return false;">Lire la suite</a>

Ainsi, ici, si le onclick n'est pas executé pour une raison ou une autre, le navigateur affichera la page indiquée par le lien, censée contenir donc le billet entier. Dans le cas contraire, le script sera executé, et le lien non suivi grâce au return false.

L'inconvénient de la technique, c'est qu'il faut avoir deux entrées ou page sur son site : une qui affiche le contenu du billet (/blog/2005/09/14/les-travers-d-ajax), l'autre qui propose le service web permettant de récupérer le contenu via un script javascript. Mais en ayant sur le serveur une API simple et efficace comme dans dotclear, c'est un inconvénient tout relatif ;-)