2009-11-20 6 views
4

J'ai un débat plutôt houleux sur la compatibilité XHTML d'IE. La seule chose est, je ne sais pas si le gars est à la traîne. Essentiellement, il prétend que IE n'a absolument aucune compatibilité XHTML, et qu'un document avec un doctype XHTML défini ne signifie absolument rien lorsqu'il est servi en tant que type de contenu text/html, quel que soit le navigateur utilisé.Compatibilité XHTML d'IE

Je ne crois pas cela et les sources disent le contraire, mais je me trompe?

Modifier: En ne tenant pas compte d'IE, cela signifie-t-il toujours que lorsque XHTML est défini dans un document HTML, ce n'est PAS XHTML? Comme le gars a suggéré? Ma compréhension actuelle est que XHTML est souvent contenu dans le type de contenu HTML. Cela signifie que techniquement, vous pourriez dire que XHTML est simplement HTML, sauf si le type de contenu correct est utilisé. Mais c'est toujours la syntaxe XHTML et donc un peu déroutant. Vous pouvez trouver le fil en question sur digitalpoint forums.

+1

Malheureusement, vous avez tort. Voir http://www.howtocreate.co.uk/wrongWithIE/?chapter=XHTML - ils ont une démonstration (bas de la page) qui utilise XHTML strict pour forcer un échec dans IE. – GalacticCowboy

+0

@GalacticCowboy Je peux comprendre cela, mais je suis plus intéressé par l'idée que quand un doctype est défini sur XHTML cela ne signifie absolument rien. –

+1

@kahrn XHTML 1.0 est seulement une syntaxe et non une déclaration de traitement, donc cela ne signifie rien de plus qu'un point de conformité syntaxique. –

Répondre

9

IE ne prend en effet pas en charge le type de contenu application/xhtml+xml tandis que d'autres navigateurs géreraient le code HTML en tant que XML. Lorsque text/html est utilisé, chaque navigateur va gérer XHTML comme du HTML, IE ne fait rien d'autre ici (attendez-vous des bizarreries habituelles).

Plus de détails ici: http://hsivonen.iki.fi/doctype/

+0

En ne tenant pas compte d'IE, cela signifie-t-il toujours que lorsque XHTML est défini dans un document HTML, ce n'est pas XHTML? Comme le gars a suggéré? Mon avis est que c'est simplement XHTML contenu dans HTML. Est-ce pas correct? –

+2

Oui, XHTML mis dans un document HTML est traité comme un tag de soupe. – Broam

+0

XHTML doit être considéré comme "HTML avec syntaxe XML". Le type de contenu indique simplement au navigateur comment gérer le flux. Le 'application/xhtml + xml' déclencherait l'analyseur/rendu XML. Le 'text/html' déclencherait l'analyseur/rendu HTML. IE est insensé pour cela et le gère simplement comme du HTML tout le temps. – BalusC

3

Le gars est juste. Lorsque vous utilisez XHTML en tant que text/html, ce n'est plus du XHTML mais du HTML. Le type MIME est la clé.

+0

Ce n'est pas vrai. Reportez-vous au paragraphe 5.1 de la spécification XHTML 1.0. –

+2

Oui et non, austin. La syntaxe est xhtml, et la spécification dit que vous pouvez le servir en texte/html, mais le navigateur ne le reconnaîtra pas comme xhtml et ne taggera que la soupe. – Rob

+1

@Rob - Le navigateur le reconnaîtra comme HTML, qu'il s'agisse de HTML 4.01, XHTML 1.0 ou XHTML 1.1. Alors, que se passe-t-il si la soupe est tag, elle est toujours valide XHTML si elle est conforme au doctype. Si vous souhaitez que XHTML soit traité en XML, utilisez XHTML 1.1 au lieu de XHTML 1.0. Sinon, vous devinez des choses qui ne sont pas écrites dans la spécification, et ainsi vous auriez tort et non la personne que vous réclamez. –

0

BalusC est correct. Plus précisément, la personne avec laquelle vous discutez suppose que XHTML doit être XML, ce qui est faux. XHTML 1.0 est une syntaxe de HTML qui est compatible avec la syntaxe XML, mais qui est cependant une sérialisation SGML qui peut éventuellement être traitée en XML selon le paragraphe 5.1 de la spécification. Cependant, XHTML 1.1 doit être traité en XML.

L'idée est que XHTML 1.0 est écrit comme un point de transition entre SGML et la syntaxe XML, même XHTML 1.0 strict. Les différents doctypes de XHTML 1.0 sont tous de transition et indiquent simplement le degré de conformité à la syntaxe XML sans tenir compte de la méthode de traitement.

0

L'autre gars a raison. Vous avez tort. IE n'a pas de support pour application/xhtml + xml comme d'autres l'ont dit. IE le traite comme "tag soupe" lorsqu'il est servi en texte/html comme le font les autres navigateurs.

+0

En ne tenant pas compte d'IE, cela signifie-t-il toujours que lorsque XHTML est défini dans un document HTML, ce n'est pas XHTML? Comme le gars a suggéré? –

+1

C'est la syntaxe de XHTML mais le navigateur ne la lira pas de cette façon, donc essayer d'identifier le libellé peut être difficile. Certains l'appellent "HTML cassé" parce que c'est ainsi que le navigateur le traite, essentiellement. – Rob

+1

XHTML est une syntaxe et non un schéma de traitement. Il peut être servi dans le formulaire SGML, que vous appelez tag soup, et toujours valide. Qu'il soit traité ou non en XML n'a aucune incidence sur la validité de sa syntaxe. Si vous souhaitez utiliser une forme de XHTML nécessitant un traitement XML, utilisez XHTML 1.1 au lieu de XHTML 1.0. –

1

Je suppose que cette question se fait, mais:

IE n'a absolument pas de compatibilité XHTML

IE ne sera pas analyser le contenu XHTML servi text/html XHTML. (Il l'analysera en HTML.)

Malheureusement, il n'affichera pas le contenu XHTML servi comme application/xhtml+xml en tant que page Web - il l'affichera tout comme il affiche tout autre contenu XML, c'est-à-dire une source prédéfinie. Conformément à la spécification XHTML 1.0, vous pouvez le diffuser sous la forme text/html pour la compatibilité avec les anciens navigateurs (IE). Donc, IE est en quelque sorte compatible avec la spécification XHTML 1.0. Mais comme beaucoup l'ont fait valoir, si vous n'utilisez pas XHTML comme XML, à quoi cela sert-il?

un document avec un type de document XHTML défini ne signifie absolument rien quand servi comme type de contenu text/html, quel que soit le navigateur utilisé

Tout dépend de ce qu'il entend par « moyens ». C'est toujours du HTML, donc ça a tout le sens associé à ça. Et comme vous le dites, le contenu est toujours XHTML, comme il est écrit dans la syntaxe XHTML. Mais il ne sera pas analysé en tant que XML en raison du type mime, donc en ce sens, ce n'est pas XML, et n'est donc pas XHTML.

(Si vous vous demandez quelles sont les implications pratiques de cela, rejoignez le club.)