XHTML, HTML et les standards

Posted Monday, April 4, 2005

Filed under: ,

Depuis 2000 le HTML, langage officiel du web, a cédé la place au XHTML, c'est officiel. Le premier était basé sur le SGML, le second sur le XML. L'intérêt? Si les documents sont bien formés et auto-descriptifs (encodage explicite et référence au(x) type(s) de document) leur interprétation par n'importe quel programme est considérablement simplifiée.
Etant basés sur un standard bien plus strict, les documents doivent désormais être formés correctement (pas de chevauchement de balise, éléments vides fermés, attributs entre guillemets etc) sous peine d'être irrémédiablement illisibles.
Si le navigateur sait lire le xhtml (tout les navigateurs de bureau sauf IE, comme d'habitude), il va commencer par "parser" (lire la hiérarchie) du document et sera inflexible: tout ce qui n'est pas à sa place bloquera l'affichage. Les erreurs fréquentes concernent l'encodage des charactères et la syntaxe du langage (guillemets, imbrication). Si le document est bien formé, il l'affichera en lui appliquant les feuilles de style et scripts associés.

Important!
Le xhtml a été introduit pour adoucir la transition entre le web "soupe de balises" et celui des standards, mais une chose que beaucoup de gens ignorent c'est que le xhtml ne diffère pas seulement du html dans le contenu mais aussi dans le type de fichier dont il s'agit. Le xhtml n'est pas du texte, c'est du xml contenant du html. Si les serveurs ne précisent pas le type du fichier qu'ils envoient les navigateurs supposeront qu'ils lisent du html. Cette précision ne se fait pas dans les fichiers eux-mêmes mais lors de leur transfert, lequel s'effectue par un protocole aussi vieux qu'internet: le HTTP. Pour que les serveurs envoient le type de fichier correct (le type MIME), il faut leur en donner l'ordre explicite (par la fonction "header" en PHP, par exemple).

J'ai mentionné qu'IE ne sais pas lire le xhtml, et cela implique que vous devrez lui envoyer du html si vous ne voulez pas que les standards aillent à l'encontre de l'accessibilité qu'ils sont sensés offrir. Penser aussi que certains bots (des programmes se promenant sur le web de manière semi-autonome, tel les indexeurs des moteurs de recherche) et les navigateurs réduits (pdas en particulier).
La négociation de contenu peut se faire de différentes manières suivant le type de serveur et le langage de programmation utilisé pour vous pages.

Pour aller plus loin:
Valider ses documents.
Différents services sont disponibles pour valider vos pages, en ligne et en local. Le W3C Markup Validation Service, service en ligne le plus connu, est proposé par le W3C. Le XHTML 1.0 schema validator proposé par Christoph Schneegans requiert un type mime correct (à la différence du validateur précédent) ce qui oblige à appliquer le standard correctement, ce qui n'est pas un mal.
Mais si votre navigateur sait lire le xhtml avec le type mime correct, vous serez averti de vos erreurs sans doute possible (à la place de la page vous verrez un message vous informant le type et l'emplacement de l'erreur), ce qui est plus rapide et plus simple.

Les feuilles de style.
Plutôt que d'ajouter des indications de présentation à toutes vos balises, utilsez des feuilles de style (CSS dans la langue de Shakespeare), qui vous permettent de contrôler l'apparence d'une ou plusieurs pages à l'aide d'un fichier (ou plus) en associant des règles de présentation aux différentes balises. (Si les éléments constituants d'une page sont mal imbriqués, les règles risquent de se contredire -validez vos documents avant d'appliquer les styles!)
Les feuilles de style permettent de mettre à jour de nombreuses pages depuis un seul fichier, offrent des libertés impressionnantes, allègent vos pages et accélèrent à la fois leur présentation à l'écran et leur envoi par le serveur.

Intérêts des standards.
Les standards sont là pour nous aider à rendre l'énorme masse d'information du web disponible indépendament de la plate-forme, du logiciel utilisé, et des variations entre les utilisateurs. Le web ne sera pas "vu" de la même facon par tout le monde, mais son but est d'informer, de partager -pas d'impressionner (même si c'est une facon parmi d'autres de transmettre de l'information).
La mission du WaSP, traduite en francais par Tristan Nitot, explique plus en détails l'intérêt et les enjeux des standards.
Exemple concret: si Google ne savait lire que le html, il ne permettrait pas d'atteindre autant de sites, et le nombre de sources d'informations a presque doublé lorsque les documents au format .doc et .ppt ont été indexés.
Toi comprendre moi? Ce texte de Tristan Nitot explique rapidement le pourquoi des déclarations de type de documents, la démarche standard d'OpenWeb, le site hébergeant l'article, est expliquée ici.

Nouveaux formats.
Le RSS permet de se tenir informé de l'évolution du contenu d'un site web automatiquement, via un aggrégateur; de nouvelles balises et attributs apparaissent pour ajouter des fonctionnalités au web actuel (pour indiquer que le lien n'est pas vérifié, ou qu'il pointe vers une connaissance, un collègue ou autre, par exemple).
Tantek Çelik expérimente avec de nouveaux formats (hCal, hCard, etc) sur son site Tantek's Thoughts, et sur le wiki de technorati.
Xmlhttprequest, aka AJAX permet de réaliser des pages que les actions des visiteurs modifient en y intégrant des informations venant du serveur après que la page aie finit de charger, réduisant les temps de latence (en voici un exemple détaillé).
Et il y a encore tant à explorer...

Comments disabled because of spammers.

comment #1 On 18/04, pomdapî wrote :

Merci pour le cours magistral ! Je commence à comprendre pourquopi tu passes des haures devant l'écran... Pfffffffffffffffou. Ca l'air bien compliqué.

Technorati Profile