Question

Il semble que HTML 5 soit 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 sous forme de balises, mais il s'agit de nouvelles balises que XHTML 1.0 Transitional ne reconnaît pas. Quel est le comportement supposé être si j'utilise une nouvelle balise HTML 5 dans une future version de Firefox mais que j'utilise la DTD pour XHTML? Et si je mélange le balisage HTML 5 avec XHTML 1.0 Trans?

Cela devient confus. Pourquoi n'ont-ils pas simplement ajouté ces balises à XHTML? Comment prenons-nous en charge à la fois XHTML et HTML 5?

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

Était-ce utile?

La solution

Eh bien, en général, HTML est SGML et XHTML est exprimé en XML. De ce fait, la création de XHTML est liée à plus de restrictions (sous forme de balises) que HTML. ( HTML basé sur SGML versus HTML )

Comme mentionné sur la Wikipedia , HTML 5 comportera également une variante XHTML (XHTML 5).

En règle générale, vous devez toujours utiliser un balisage valide. Cela signifie également que vous ne devez pas utiliser les balises <video> ou <audio> mentionnées dans XHTML 1.0 Transitional, car elles ne font pas partie de cette spécification. Si vous avez réellement besoin d'utiliser ces balises (ce dont je doute fort), vous devez vous assurer que vous utilisez la DTD HTML 5 / XHTML 5 afin de spécifier que votre document se trouve dans ce DOCTYPE.

Si vous utilisez HTML 5 ou XHTML 5 dans l’état donné de la mise en œuvre (autant que je sache, la norme n’est même pas encore établie, mais correcte?) pourrait être contre-productive, car presque tous les utilisateurs risquent de ne pas voir le site Web affiché correctement.

Éditer 2013: En raison des récents votes négatifs et du fait que cette réponse acceptée ne peut pas être supprimée (par moi-même), je voudrais ajouter que le processus de support et de normalisation de HTML5 est aujourd'hui totalement différent de ce qu'il était lorsque j'ai écrit cette réponse il y a cinq ans. Étant donné que la plupart des principaux navigateurs prennent en charge la plupart des éléments du brouillon HTML5 et qu’un grand nombre de problèmes peuvent être résolus à l’aide de polyfill dans les navigateurs plus anciens, j’utilise maintenant principalement le HTML5.

Autres conseils

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

  1. Il n'est pas nécessaire de déclarer manuellement le " 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 de script et de style (ils utilisent par défaut text / javascript et text / css).

  3. Vous n'avez pas besoin d'utiliser un long doctype où le navigateur ignore presque tout. Vous devez utiliser & Lt;! DOCTYPE html & Gt ;, facile à mémoriser.

  4. Vous n’avez pas le choix d’inclure ou non un dtd uri dans le doctype et vous n’avez pas le choix entre transitionnel et strict. Vous avez juste un doctype strict qui invoque le mode standard complet. De cette façon, vous n’aurez plus à craindre d’être accidentellement en mode Presque standard ou en mode Quirks.

  5. La déclaration du jeu de caractères est beaucoup plus simple. C'est juste & Lt; meta charset = & "Utf-8 &" & Gt;.

  6. Si vous trouvez déroutant d'écrire des éléments vides sous la forme < name > ;, vous pouvez utiliser < name / > ;, si vous le souhaitez.

  7. HTML5 a un très bon validateur sur 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 intégrés ou les feuilles de style (dans certaines situations) pour valider.

  9. Vous pouvez utiliser embed si nécessaire.

En termes de syntaxe, lorsque vous utilisez HTML5, vous obtenez un balisage plus propre, plus facile à lire, qui invoque toujours le mode standard. Lorsque vous utilisez XHTML 1.0 (sous la forme text / html), vous spécifiez un tas de crud (afin de valider par rapport à un dtd merdique) que le navigateur fera automatiquement.

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

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

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

  3. HTML n'a jamais été traité comme un véritable SGML dans les navigateurs. Aucun navigateur n'a jamais implémenté d'analyseur syntaxique compatible SGML. HTML 5 en fera une règle et la sérialisation HTML suivra la norme de facto. On pourrait peut-être dire que c'est & "; SGML-ish &";.

  4. .
  5. Comme il a été dit, la DTD sert exactement à un but DANS LES NAVIGATEURS, à savoir faire la distinction entre le mode de conformité aux normes et le mode quirks. Ainsi, cela n'affecte que le style et les scripts. Si vous utilisez des cadres sur une page avec un type de document restreint, leur rendu sera parfait. De même que & Lt; incorporer & Gt; et même < marquee > - même si ce dernier est une abomination et que le premier ne correspond à aucun standard actuel. Cela fait cependant partie de HTML 5.

  6. 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 la phase d'analyse terminée, un navigateur aura construit un DOM interne du document. Ce DOM sera pratiquement le même quelle que soit la sérialisation. Et oui, le XHTML envoyé avec text / html est toujours du HTML normal, quel que soit le type de document.

Vous envisagez peut-être mal le problème car le relation avec la section XHTML 1.x , HTML 5 indique:

  

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

Maintenant, ce langage est controversé (le groupe de travail XHTML 2 l’a contesté et le groupe de travail HTML tente de résoudre les divergences ...), mais c’est là notre position actuelle.

Quelques notes:

N'oubliez pas que les doctypes n'ont qu'un seul objectif dans les navigateurs: basculer entre les bizarreries, presque les normes et le mode standard. Par conséquent, utiliser <video> et <audio> fonctionnera avec toutes les déclarations de doctype. IMO, utiliser un doctype XHTML est tout à fait inutile, car chaque page que vous envoyez avec text/html le type MIME est analysée comme du HTML (tag-soup) HTML. Je suggère d'utiliser le doctype HTML5 (<!doctype html>), car il est plus facile à mémoriser et ne vous oblige pas à utiliser la syntaxe XML sans raison.

  

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

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

  

Quel est le comportement supposé être si   J'utilise un nouveau tag HTML 5 dans un futur   version de Firefox mais utilisez la DTD pour   XHTML?

     

Et si je mélange le balisage HTML 5 avec   XHTML 1.0 Trans?

Si votre balise n'est pas implémentée dans la DTD choisie - logiquement, cette balise ne doit pas être suivie. Mais les implémentations de navigateur ne sont pas toujours strictement logiques.

  

Pourquoi n’ont-ils pas simplement ajouté ces balises à   XHTML? Comment supportons-nous les deux XHTML   et HTML 5?

Le xHTML n’est pas meilleur que le HTML, mais il convient mieux à certaines applications. L'un des principaux avantages du xHTML est qu'il peut être transformé en différents formats à l'aide de XSLT. Par exemple, vous pouvez utiliser XSLT pour transformer automatiquement xHTML en un flux RSS ou un autre format XML.

Vous n'avez pas besoin de prendre en charge les deux formats - évaluez les avantages / inconvénients de chacun avec les exigences de votre projet. HTML 5 ne sera probablement pas standard avant un certain temps.

(X) HTML5 n’est que la version suivante. Vous devriez utiliser XHTML1.1 jusqu'à ce que XHTML5 soit bien pris en charge.

Vous ne devriez probablement pas utiliser le profil SGML à compatibilité avec les versions antérieures de HTML5. Cela rend les choses plus difficiles pour les racleurs et les petits analyseurs.

Votre doctype indiquera au navigateur si vous utilisez HTML5 ou XHTML. Vous ne pouvez pas simplement insérer une balise d'un type de document dans un document d'un autre type et vous attendre à ce que cela fonctionne. Sans un doctype, de toute façon, tout est juste tag soupe.

N'utilisez pas d'éléments comme les balises audio / vidéo lorsque 99% des utilisateurs ne pourront pas les visualiser correctement sur leur navigateur. Pour l’un ou l’autre de ces deux exemples, je suggérerais d’utiliser le FLV.

Pour ce qui est de la raison pour laquelle ils ne l'ajoutent pas à XHTML ... Premièrement, 1.0 n'est pas la version la plus récente, la version 1.1 a été publiée il y a quelque temps.

Éventuellement, les choses se normalisent et nous verrons ces types de balises dans les deux normes, mais pour le moment, faites simplement ce que vous pouvez pour que le plus grand nombre de personnes puissent voir votre contenu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top