78 votes

En fin de compte, pourquoi choisir XHTML plutôt que HTML ?

Je me demande pourquoi je devrais utiliser XHTML au lieu de HTML.

Le XHTML est censé être "modulaire", mais je n'ai vu aucun langage côté serveur tirer parti de tout cela.

Le XHTML est également plus strict, et je n'en vois pas l'avantage. Qu'offre le XHTML dont j'ai tant besoin ? En quoi cela rend-il mon code "meilleur" ?

EDIT : une autre question que j'ai trouvée dans les commentaires : Le XHTML est-il analysé plus rapidement que le HTML ?

EDIT2 : après avoir lu tous vos commentaires et les liens, je suis effectivement d'accord pour dire qu'un autre post mérite d'être la bonne réponse, donc j'ai choisi celui qui renvoie directement à la meilleure source.

Cela montre aussi que les gens upvote le commentaire vert sans même le lire.

12 votes

+1 Je suis curieux de savoir si les navigateurs modernes peuvent l'analyser plus rapidement, puisqu'il y a moins de désordre dans le HTML ordinaire et qu'ils peuvent simplement utiliser des analyseurs XML ordinaires.

0 votes

Bonne question ; je ne pense pas que mon opinion vaille une réponse, mais je pense que c'est une perte de temps la plupart du temps. Faites du HTML conforme et arrêtez-vous là.

4 votes

Chaque fois que je m'implique dans le XHTML, j'aimerais que le HTML5 fasse son chemin...

48voto

James McMahon Points 14356

Vous devriez lire Attention au XHTML Il s'agit d'un article informatif qui met en garde contre certains des pièges du XHTML par rapport au HTML.

J'étais plutôt enthousiaste à propos du XHTML jusqu'à ce que je le lise, mais il soulève plusieurs points valables. Notamment le passage suivant ;

XHTML 1.x n'est pas "compatible avec le futur". XHTML 2, actuellement en cours d'élaboration, n'est pas rétrocompatible avec XHTML 1.x. XHTML 2 apportera de nombreux changements majeurs à la manière dont les documents sont écrits et structurés, et même si votre site est déjà écrit en XHTML 1.1, une réécriture complète du site sera généralement nécessaire pour le convertir en XHTML 2. Une simple transformation XSL ne sera pas suffisante dans la plupart des cas, car certaines sémantiques ne seront pas traduites correctement.

HTML 4.01 est en fait plus compatible avec l'avenir. Un document HTML 4.01 valide écrit selon les niveaux de support modernes sera valide en HTML 5, et c'est en HTML 5 que les développeurs de navigateurs et le W3C portent la plus grande attention.

La compatibilité avec l'avenir peut être énorme lorsqu'on travaille sur certains projets. L'article présente plusieurs autres points intéressants, mais je pense que c'est celui qui m'a le plus marqué.

Ne prenez pas l'article pour une diatribe contre le XHTML, l'auteur parle des bons côtés du XHTML, mais il est bon d'être conscient de ses défauts avant de s'y plonger.

3 votes

Un bel article et un grand bravo pour nous l'avoir montré.

9 votes

XHTML 1.x est "compatible avec le futur". La charte du groupe de travail XHTML 2 a maintenant expiré. - Elle a été remplacée par XHTML5.

3 votes

Html5 n'est pas xhtml. xhtml va mourir et xhtml2 ne sortira jamais

40voto

James Burgess Points 4616

J'allais ajouter ce message en tant que commentaire à l'un des autres messages, mais il est devenu un peu trop volumineux.

Le point fondamental qui semble échapper à la plupart des gens, c'est l'objectif du XHTML. L'une des principales raisons du développement de la spécification XHTML était de ne pas mettre l'accent sur les balises liées à la présentation dans le balisage et de confier la présentation à CSS. Bien que cette séparation puisse être réalisée avec du HTML simple, ce comportement n'est pas encouragé par la spécification.

La séparation de la méta-marque et de la présentation est une partie essentielle du développement pour le "web programmable", et améliorera non seulement le référencement, et l'accès pour les lecteurs d'écran/navigateurs de texte, mais conduira également à ce que votre site Web soit plus facilement analysable par ceux qui souhaitent y accéder de manière programmatique (dans de nombreux cas simples, cela peut annuler le besoin de développer une API spécifique, ou même simplement permettre aux scripts côté client de faire des choses comme, identifier les numéros de téléphone facilement). Si votre page Web est conforme à la spécification XHTML, elle peut facilement être parcourue à l'aide d'outils liés à XML, et de choses comme XPath... ce qui est une nouvelle fantastique pour ceux qui veulent extraire des informations particulières de votre site Web.

Le XHTML n'a pas été développé pour être utilisé seul, mais pour être utilisé avec une variété d'autres technologies. Il repose en grande partie sur l'utilisation de CSS pour la présentation et constitue une base pour des éléments tels que les microformats (qu'on les aime ou qu'on les déteste) afin d'offrir un balisage normalisé pour la présentation de données communes.

Ne vous laissez pas tromper par ceux qui pensent que le XHTML est insignifiant, trop restrictif et inutile... il a été créé dans un but que 95 % du monde semble ignorer ou ignorer.

Utilisez le HTML, mais utilisez-le pour ce qu'il est bon de faire, et adoptez la même approche pour le XHTML.


En ce qui concerne la vitesse d'analyse syntaxique J'imagine qu'il y aurait très peu de différence dans l'analyse des documents réels entre XHTML et HTML. Le compromis se fera uniquement sur la manière de décrire le document en utilisant le balisage disponible. Les balises XHTML ont tendance à être plus longues, en raison des attributs requis, de la fermeture correcte, etc. mais elles ne nécessitent pas de balisage de présentation dans le document lui-même. Dans ce cas, je pense que vous parlez de comparer un type de pomme avec un type de pomme très légèrement différent... ils sont différents, mais il est peu probable que cela ait une quelconque conséquence (en termes d'analyse et de rendu) lorsque tout ce que vous voulez est une pomme saine et savoureuse.

15 votes

Si les objectifs de XHTML sont louables, les fournisseurs de navigateurs ne jouent pas bien le jeu avec XHTML ou CSS. Un XHTML correct rend actuellement le développement Web plus difficile et non plus facile. Lorsque les vendeurs d'outils et de navigateurs changeront cette situation, nous pourrons peut-être commencer à voir quelques avantages, mais ceux qui ont le plus à gagner ne sont pas les développeurs de sites, mais les vendeurs de SE. Imaginez être capable de présenter des informations riches et significatives récoltées sur vos sites à un degré tel que le site lui-même n'a pas besoin d'être visité ? Qu'advient-il de vos revenus publicitaires ? À votre avis, qui vit dans les tours d'ivoire ?

1 votes

Bon contre-argument ; et je vois votre point de vue, mais le point d'isolement n'est pas purement lié au XHTML, car on pourrait dire que les flux RSS l'ont fait. Cependant, les gens continuent de visiter des sites Web, car beaucoup n'aiment pas lire via des flux. L'objectif est de faciliter l'accès aux données et de les baliser de manière sémantique, plutôt que de les cacher dans un fatras de balises mal formées et liées à la présentation. Rendre votre site web facilement accessible et "significatif" pour le traitement n'est qu'un avantage pour vous. En ce qui concerne le rendu du balisage par les navigateurs. Je suis d'accord, mais montrez-moi d'abord une cohérence dans le rendu du HTML.

3 votes

Le résumé du résumé est donc que les avantages de l'interopérabilité du XHTML sont menacés par les insuffisances des vendeurs de navigateurs.

18voto

Joey Points 148544

Pour le visiteur d'un site web, cela ne fait probablement pas de différence visible. De plus, le XHTML est généralement plus difficile à utiliser car au moins un navigateur très répandu ne sait toujours pas comment le gérer et vous devez le servir en tant que text/html dans ce cas (ce qui donne un HTML invalide).

Si votre HTML est destiné à être régulièrement traité par des outils automatisés plutôt qu'à être lu par des humains, il est préférable d'utiliser le XHTML en raison de sa structure plus stricte et du fait qu'il s'agit de XML, il est plus facile à analyser (du point de vue de l'application). Mais le XML n'est pas intrinsèquement facile à analyser).

En dehors de cela, je ne vois pas de raisons impérieuses de l'utiliser. Le XHTML a été créé dans le but d'utiliser les fonctionnalités XML pour le HTML et, en fait, il se résume à "HTML 4 avec plusieurs effets secondaires gênants" (du moins à mon avis).

5 votes

+1. Je suis tout à fait d'accord. XTHML est un autre exemple de développement par des comités vivant dans des tours d'ivoire (CSS est l'autre exemple auquel je pense).

2 votes

Je suis tout à fait d'accord avec le XHTML, mais le développement de CSS s'est bien passé jusqu'à la décision relativement récente de laisser les fournisseurs de navigateurs travailler sur ce que la norme est censée être. Les problèmes de CSS me semblent être à 100% la faute des vendeurs.

10 votes

Je suis fondamentalement en désaccord avec l'argument présenté ici. J'allais poster un commentaire, mais il a pris trop d'ampleur et est devenu une réponse (ci-dessous). La spécification XHTML n'a pas été développée simplement pour faciliter l'analyse syntaxique (bien qu'elle le fasse), mais pour supporter une variété de technologies comprenant une structure plus complète que celle que le HTML pouvait permettre. Développée par ceux qui se trouvent dans des tours d'ivoire, peut-être... mais la spécification a beaucoup plus de sens quand on a une vue d'ensemble du web.

17voto

porneL Points 42805

Utilisez HTML (HTML4 Strict ou HTML5).

  • Le HTML peut utiliser pleinement les CSS, peut être validé et analysé sans ambiguïté. La séparation de la structure et de la présentation a été faite dans le HTML4 et le XHTML n'a fait que poursuivre cela.

  • Tous les navigateurs supportent le HTML. Seuls quelques navigateurs supportent le XHTML et ceux qui le font ont souvent un support plus mature et mieux testé et optimisé pour le HTML (cela est dû au fait que infime partie de pages utilise le mode XML).

  • Si vous vous souciez d'IE et de Google, vous devez utiliser le HTML ou le sous-ensemble de XHTML et HTML défini dans l'annexe C de la spécification XHTML. Ce dernier est presque le pire des deux mondes, car ce XHTML ne peut pas être généré avec les outils XML standard, ne peut pas utiliser les mécanismes d'extension nouveaux pour le XHTML et présente des limitations supplémentaires par rapport à celles du HTML seul.

  • XHTML1.0 a maintenant plus de 10 ans, il a été conçu à l'époque du "Web1.0", et comme l'a dit le responsable du W3C, rétrospectivement, cela n'a pas fonctionné et une meilleure approche est nécessaire. . Le W3C HTML5 est écrit en ce moment même et répond aux besoins des applications web utilisées aujourd'hui, tout en offrant une très bonne rétrocompatibilité.

  • HTML5 comble de nombreuses lacunes qui existaient entre HTML4 et XHTML1 (par exemple, il ajoute le SVG en ligne, MathML i RDF), nettoie le langage au-delà de ce qui a été fait dans XHTML1.0 et XHTML1.1.

  • XHTML2 ne sera pas supporté par les navigateurs web dans un avenir prévisible. Il est probable qu'il sera jamais être pris en charge (tous les fournisseurs de navigateurs prennent largement en charge le [X]HTML5, certains ont déjà déclaré qu'ils ne mettront pas en œuvre le XHTML2).


XHTML1.0 a exactement la même sémantique et la même séparation de la présentation et de la structure que le HTML4.01. Tous ceux qui disent le contraire, n'a pas lu le cahier des charges . J'encourage tout le monde à lire la spécification - elle est étonnamment courte et inintéressante.

  • Les feuilles de style ont été introduites dans HTML4.01 et étaient no changé dans XHTML1.0.
  • Les éléments de présentation ont été dépréciés dans la version HTML4.01 et étaient no supprimé dans XHTML1.0.

Les mythes du XHTML .


Il n'existe pas de différences irréductibles entre le HTML et le XHTML qui rendraient l'analyse syntaxique de l'un beaucoup plus lente que celle d'un autre. Cela dépend de la façon dont l'analyseur est mis en œuvre.

  • Les analyseurs syntaxiques SGML et XML doivent charger et analyser la DTD entière afin de comprendre les entités. Cette opération à elle seule représente généralement plus de travail que l'analyse du document lui-même. Les analyseurs HTML "trichent" presque toujours et utilisent des entités et des informations d'éléments codées en dur. Les analyseurs XHTML des navigateurs trichent également.
  • L'analyse syntaxique du HTML nécessite la gestion des balises de début et de fin implicites, et le HTML du monde réel nécessite un travail supplémentaire pour gérer les balises mal placées.
  • L'analyse syntaxique correcte du XHTML nécessite le suivi des espaces de noms XML.
  • Les règles draconiennes du XML exigent de vérifier si chaque caractère est correctement encodé. Les analyseurs HTML peuvent s'en tirer sans problème, mais ils doivent en revanche rechercher <meta> .

La différence globale de coût d'analyse est minime par rapport au temps nécessaire pour télécharger le document, construire le DOM, exécuter les scripts, appliquer les CSS et toutes les autres choses que les navigateurs doivent faire.

13voto

Daniel Roseman Points 199743

Je suis surpris que toutes les réponses recommandent le XHTML plutôt que le HTML. Je suis fermement d'avis contraire - vous ne devriez pas utiliser le XHTML, dans un avenir prévisible. Voici pourquoi :

  • Aucun navigateur n'interprète le XHTML comme XHTML à moins que vous ne le serviez comme mimetype application/xhtml+xml . Si vous vous contentez de le servir avec le mimetype par défaut, tous les navigateurs l'interpréteront comme du HTML, c'est-à-dire en acceptant les éléments non fermés ou mal imbriqués.

  • Cependant, vous ne devriez jamais hacer ceci, car Internet Explorer ne reconnaît pas application/xhtml+xml et ne parviendrait pas à rendre la page complètement.

  • Il existe des différences importantes dans le DOM entre le XHTML et le HTML. Puisque toutes les pages dites XHTML sont servies en tant que HTML pour le moment, tout le code javascript est écrit en utilisant le DOM HTML. Si le support pour le mimetype XHTML devient suffisamment important pour convaincre les gens de commencer à l'utiliser, la plupart de leur code javascript sera cassé - même s'ils pensent que leurs pages sont validées comme XHTML.

1 votes

Ce n'est pas un argument... car si personne ne l'utilise jamais, comment va-t-il devenir une norme acceptée ? Il existe de nombreuses solutions de contournement, comme c'est le cas pour un grand nombre de technologies émergentes du Web (même les PNG transparents nécessitent encore une solution de contournement dans IE).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X