54 votes

HTML 5 versus XHTML 1.0 Transitionnel ?

Il semble que le HTML 5 va être pris en charge (partiellement) par Firefox 3.1 et d'autres navigateurs. Il ajoute la prise en charge de la vidéo et de l'audio en tant que balises, mais il s'agit de nouvelles balises que XHTML 1.0 Transitional ne reconnaît pas. Quel sera le comportement si j'utilise une nouvelle balise HTML 5 dans une future version de Firefox mais que j'utilise la DTD pour XHTML ? Et que se passe-t-il si je mélange du balisage HTML 5 avec XHTML 1.0 Transitional ?

Ça devient confus. Pourquoi n'ont-ils pas simplement ajouté ces balises à XHTML ? Comment pouvons-nous supporter à la fois XHTML et HTML 5 ?

Vidéo sur HTML 5 : http://www.youtube.com/watch?v=xIxDJof7xxQ

2 votes

Je préfère le XHTML. Il me semble plus "propre", plus correct.

97voto

Shadow2531 Points 6726

HTML5 est tellement plus facile à écrire que XHTML 1.0.

  1. Il n'est pas nécessaire de déclarer manuellement les " http://www.w3.org/1999/xhtml " espace de noms.

  2. Il n'est pas nécessaire d'ajouter des attributs de type aux éléments script et style (ils sont par défaut text/javascript et text/css).

  3. Vous ne devez pas utiliser un long doctype dont le navigateur ignore la majeure partie. Vous devez utiliser <!DOCTYPE html>, qui est facile à retenir.

  4. Vous n'avez pas le choix d'inclure ou non une uri dtd dans le doctype et vous n'avez pas le choix entre transitionnel et strict. Il suffit d'avoir un doctype strict qui invoque le mode standard complet. De cette façon, vous n'avez pas à vous soucier d'être accidentellement en mode Almost standards ou Quirks.

  5. La déclaration du charset est beaucoup plus simple. Il s'agit simplement de <meta charset="utf-8">.

  6. Si vous trouvez déroutant d'écrire les éléments void sous la forme <nom>, vous pouvez utiliser <nom/>, si vous le souhaitez.

  7. HTML5 dispose d'un très bon validateur à http://validator.nu/ . Le validateur n'est pas lié par une DTD merdique qui ne peut pas exprimer toutes les règles.

  8. Il n'est pas nécessaire d'ajouter //< ![CDATA etc. dans les scripts en ligne ou les feuilles de style (dans certaines situations) pour valider.

  9. Vous pouvez utiliser l'encastrement si nécessaire.

Du point de vue de la syntaxe, lorsque vous utilisez HTML5, vous obtenez un balisage plus propre et plus facile à lire, qui fait toujours appel au mode standard. Lorsque vous utilisez XHTML 1.0 (servi en tant que text/html), vous spécifiez un tas de conneries (afin de valider par rapport à une dtd merdique) que le navigateur fera automatiquement.

4 votes

Excellente réponse. Vous avez énuméré exactement ce dont je me souciais.

0 votes

+1 Je pense utiliser HTML5 après avoir lu votre réponse mais qu'en est-il d'IE ?

0 votes

Et voici quelques contre stackoverflow.com/questions/1298610/ La question principale est de savoir ce qui va se passer sur IE si le javascript est désactivé.

28voto

Les mythes et les idées fausses abondent dans ce fil.

  1. XHTML 1.0 est plus ancien que HTML 5. Il ne peut pas utiliser de nouveau vocabulaire. En effet, son principal argument de vente était qu'il utilise exactement le même vocabulaire que le HTML 4.01.

  2. Il n'y aura pas de XHTML 1.2 - très probablement. Et il n'est pas nécessaire. XHTML 5 est la sérialisation XML de HTML 5. Vocabulaire identique, règles d'analyse différentes.

  3. Le HTML n'a jamais été traité comme un véritable SGML dans les navigateurs. Aucun navigateur n'a jamais implémenté un analyseur conforme au SGML. Le HTML 5 fera de ce fait une règle et la sérialisation du HTML suivra la norme de facto actuelle. On pourrait peut-être dire qu'elle est "SGML-ish".

  4. Comme il a été dit, la DTD sert exactement à une seule chose DANS LES BROWSERS, à savoir faire la distinction entre le mode conformité aux normes et le mode bizarrerie. Elle n'affecte donc que le style et les scripts. Si vous utilisez des cadres sur une page dont le doctype est strict, le rendu sera parfait. Tout comme <embed> et même <marquee> - même si cette dernière est une abomination et que la première ne figure dans aucune norme actuelle. Il fait cependant partie de HTML 5.

  5. La vidéo et l'audio peuvent être utilisés indépendamment de la sérialisation, XML ou HTML. Ils font partie à la fois de HTML 5 et de XHTML 5. Une fois l'étape d'analyse terminée, le navigateur aura construit un DOM interne du document. Ce DOM sera à toutes fins pratiques le même, quelle que soit la sérialisation. Et oui, le XHTML envoyé avec text/html est toujours du HTML normal, indépendamment du doctype.

10voto

hangy Points 7722

En général, le HTML est un langage SGML et le XHTML est exprimé en XML. De ce fait, la création de XHTML est liée à plus de restrictions (sous forme de balisage) que celle de HTML. ( HTML basé sur SGML et HTML basé sur XML )

Comme mentionné sur Wikipedia Le HTML 5 aura également une variante XHTML (XHTML 5).

Règle générale : vous devez toujours utiliser un balisage valide. Cela signifie également que vous ne devez pas utiliser la mention <video> o <audio> dans XHTML 1.0 Transitional, car elles ne sont pas un élément de cette spécification. Si vous besoin réel pour utiliser ces balises (ce dont je doute fortement), vous devez vous assurer que vous utilisez la DTD HTML 5/XHTML 5 afin de spécifier que votre document est dans ce DOCTYPE.

L'utilisation de HTML 5 ou XHTML 5 dans l'état actuel de la mise en œuvre (à ma connaissance, la norme n'est même pas encore établie, n'est-ce pas ?) pourrait être contre-productive, car presque tous les utilisateurs risquent de ne pas voir le site Web rendu correctement de toute façon.

Edit 2013 : En raison des récents downvotes et puisque cette réponse acceptée ne peut pas être supprimée (par moi), je voudrais ajouter que le support et le processus de standardisation de HTML5 sont aujourd'hui totalement différents de ce qu'ils étaient lorsque j'ai écrit cette réponse il y a cinq ans. Étant donné que la plupart des principaux navigateurs prennent en charge la majeure partie du projet HTML5 et que de nombreux éléments peuvent être corrigés par des polyfills dans les anciens navigateurs, j'utilise principalement HTML5 aujourd'hui.

9 votes

Voté contre parce que la réponse parle de SGML et de DTD HTML 5/XHTML 5 alors que (comme indiqué dans d'autres réponses) HTML5 n'est pas basé sur SGML et n'a pas de DTD.

0 votes

Voté contre parce qu'il ne fournit pas une explication assez détaillée pour être particulièrement utile.

2 votes

@pyrony : Je me demande juste ... est-ce que vous votez cette réponse parce que c'est la réponse acceptée et qu'elle ne vous fournit pas toutes les informations que vous voulez ou parce qu'elle est fausse/incomplète ? Dans ce dernier cas, tu pourrais aussi voter contre beaucoup d'autres réponses :) Je voudrais simplement éviter d'avoir une réputation négative pour cette réponse vieille d'un an et demi - et la placer dans un contexte moderne ne convient pas vraiment, car l'état du XHTML et du HTML5 a probablement beaucoup changé depuis la question/réponse originale.

7voto

soypunk Points 231

Il se peut que vous envisagiez le problème de la mauvaise façon, parce que la relation avec XHTML 1.x La section HTML 5 indique :

"Cette spécification est destinée à remplacer XHTML 1.0 comme définition normative de la sérialisation XML du vocabulaire HTML."

Ce langage est controversé (le groupe de travail XHTML 2 l'a contesté et le groupe de travail HTML tente de résoudre les différends...) mais c'est là où nous en sommes actuellement.

Quelques notes :

0 votes

Désolé, il y a un certain nombre de problèmes réels ici. Tout d'abord, il est extrêmement improbable que le W3C fournisse réellement une DTD XHTML 5, étant donné qu'il ne va pas créer une DTD HTML 5 et que la "spécification" est en fait une description du comportement du navigateur, et non une spécification syntaxique.

0 votes

Deuxièmement, tous des spécifications HTML (telles que livrées par l'IETF, l'ISO et le W3C) ont toujours été définies comme des langages de balisage SGML, avec des DTD SGML et des déclarations SGML. Les instances de documents HTML 2.0, 3.2 et 4.0 valides peuvent toutes être analysées en tant que SGML à l'aide du SP de James Clark.

4voto

Ms2ger Points 7551

Gardez à l'esprit que les doctypes ne servent qu'à une seule chose dans les navigateurs : basculer entre les bizarreries, les quasi standards et le mode standard. Par conséquent, l'utilisation de <video> y <audio> fonctionnera avec n'importe quelle déclaration de doctype. IMO, l'utilisation d'un doctype XHTML est tout à fait inutile, car chaque page que vous envoyez avec le format text/html Le type MIME est de toute façon analysé comme (tag-soup) HTML. Je suggère d'utiliser le doctype HTML5 ( <!doctype html> ), car il est plus facile à retenir et ne vous force pas à utiliser la syntaxe XML sans raison.

Pourquoi n'ont-ils pas simplement ajouté ces balises à XHTML ?

En fait, ils l'ont fait, il y a une sérialisation XML de HTML 5 (XHTML5). Pour l'utiliser, vous devez envoyer vos pages avec un type MIME XML, tel que application/xhtml+xml . Ce n'est pas (encore) supporté par IE, cependant.

0 votes

Un doctype ne va-t-il pas également déterminer la DTD contre laquelle votre code est validé ?

3 votes

IE nous entraînera tous vers le bas jusqu'à ce que nous commencions à l'ignorer et à avertir les utilisateurs d'utiliser un navigateur basé sur des normes modernes.

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