Jusqu'ici, il était conçu avant tout comme un format de mise en page et de présentation, muni d'hyperliens. Nous sommes à un tournant où il s'agit d'en faire (à nouveau ?) un format de structuration sémantique, en délégant la mise en page et la présentation à CSS. Rédiger un document XHTML, c'est (pour le developpeur/intégrateur web) ajouter un marquage sémantique à un contenu textuel dans l'optique de pouvoir ensuite le mettre en page en s'appuyant sur ce marquage. Le dit marquage n'a alors d'importance que pour les différentes feuilles de style qui seront appliquées. De plus, le jeu de balises à valeur sémantique de XHTML est assez limité : paragraphe, citation, titre... en tout une maigre vingtaine de marquages différents. D'où l'usage intensif des <span> et <div> assortis d'attributs class et id.

La modularisation du XHTML consiste à fractionner son jeu de balises unique en plusieurs jeux (modules), par fonctionnalité. Il est alors possible de constituer la variante de XHTML nécessaire à la structuration de tout type de document textuel, en piochant parmi les jeux existants voire en en créant de nouveaux... Potentiellement, cela permet de faire de XHTML un format réellement universel, non plus de publication de document sur le web, mais de structuration de document. Tout document textuel pourrait donc être nativement écrit en XHTML, et contenir ses propres méta-informations. Aussi bien sur sa structure sémantique, permettant non seulement de présenter le contenu en mettant en relief sa signification (je pense notamment à la coloration syntaxique d'un code source, mais toute mise en page de document part de ce principe - non ?), mais aussi de le manipuler et d'en extraire des informations (effectuer une recherche portant non pas sur le contenu lui même mais sur sa valeur sémantique); que sur le document en tant que tel (auteur, date etc), ce que font les actuelles balises <meta> et pour lequel il est alors envisageable de créer des jeux/modules normalisés.

Adieu les traitements de textes, bonjour les editeurs XHTML !

Voici en guise d'annexe quelques uns des modules permettant de reconstituer XHTML dans sa forme actuelle :

  • Structure : html, head, body, title
  • Hypertext : la star : a
  • Text (les actuelles balises sémantiques) : abbr, acronym, address, blockquote, br, cite, code, dfn, div (?), em, h1-h6, kbd, p, q, samp, span (?), strong, var
  • List : dl, dt, dd, ol, ul, li
  • Basic forms : form, input, label, select, option textarea
  • Basic table : caption, table, td, th, tr
  • Image : img