Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

"la bonne" façon de servir l'xhtml 1.0 ?

21 réponses
Avatar
mpg
Bonjour,

Quelle est actuellement la façon recommandée de servir des documents en
xhtml 1.0 (strict) pour être compatible (si possible) à la fois avec les
standards et les navigateurs existants ? Les deux questions que je me pose
sont :
- type mime : html ou xml ?
- prologue xml : présent ou pas ?

Je me souviens que la dernière fois que j'avais lu des trucs à ce sujet, les
avis semblaient partagés quand à la première question, et que la réponse à
la deuxième était négative : si n'importe quoi (y compris donc un prologue
xml) précédait la déclaration de type de document, IE 6 basculait en mode
quirks et c'était la catastrophe pour le placement en CSS.

Je ne sais pas si la situation a changé (IE6 est-il encore assez présent
pour devoir être pris en compte ?)

Merci d'avance pour vos avis et conseils sur la question.

Manuel.

10 réponses

1 2 3
Avatar
CrazyCat
mpg wrote:
- type mime : html ou xml ?
- prologue xml : présent ou pas ?



Pour ma part, je te répondrais d'utiliser exactement ce qui est indiqué
par w3.org:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

Le prologue xml est (d'après w3.org) essentiellement à utiliser lorsque
les pages ne sont ni en UTF-8 ni en UTF-16 et qu'aucun encodage ne peut
être déterminé.

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Avatar
Patrick Mevzek
Le Fri, 22 Aug 2008 17:19:28 +0200, mpg a écrit:
Quelle est actuellement la façon recommandée de servir des documents en
xhtml 1.0 (strict) pour être compatible (si possible) à la fois avec les
standards et les navigateurs existants ?



Ce sont deux contraintes un peu antagonistes, tous les navigateurs
existants (en particulier celui majoritaire) ne respectant pas les
standards. Donc il faut « bidouiller » selon où l'on place le curseur.

Les deux questions que je me
pose sont :
- type mime : html ou xml ?



Le XHTML en text/html c'est mal mais c'est « nécessaire » pour IE.
Donc ma bidouille à moi c'est application/xml+xhtml pour les navigateurs
qui le déclarent proprement dans le Accept: (en ne tenant pas compte de
*/*) et text/html pour les autres.

- prologue xml : présent ou pas ?



Standard : oui
Navigateurs : comme vous le dites avec IE mieux vaut pas.

Mais là c'est plus embêtant : difficile de changer cela au moment de
l'échange.

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Avatar
mpg
Le (on) vendredi 22 août 2008 17:28, CrazyCat a écrit (wrote) :

mpg wrote:
- type mime : html ou xml ?
- prologue xml : présent ou pas ?



Pour ma part, je te répondrais d'utiliser exactement ce qui est indiqué
par w3.org:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">



Ouf, c'est exactement ce que je fais actuellement. (En même temps j'avais du
copier-coller ça une fois depuis w3.org ou autre bonne source.)

Le prologue xml est (d'après w3.org) essentiellement à utiliser lorsque
les pages ne sont ni en UTF-8 ni en UTF-16 et qu'aucun encodage ne peut
être déterminé.



C'est ce qu'il me semblait. Comme les pages que j'écris ou génère moi-même
sont toujours en UTF-8, je n'ai donc pas trop de scrupules à omettre le
prologue pou épargner la sensibilité d'IE.

Manuel.
Avatar
mpg
Le (on) vendredi 22 août 2008 17:35, Patrick Mevzek a écrit (wrote) :

Les deux questions que je me
pose sont :
- type mime : html ou xml ?



Le XHTML en text/html c'est mal



D'ailleurs, à quel point est-mal en fait : ça peut casser quoi précisément ?

mais c'est « nécessaire » pour IE.
Donc ma bidouille à moi c'est application/xml+xhtml pour les navigateurs
qui le déclarent proprement dans le Accept: (en ne tenant pas compte de
*/*) et text/html pour les autres.



Ah, ça a l'air bien ça. Est-ce abuser que te demander comment tu t'y prends
en pratique (surout si c'est sur Apache) ? Je n'ai jamais réglé de
négociation de contenu (puisque c'est de ça qu'il s'agit, si je ne me
trompe), donc je ne sais pas trop par où commencer.

Merci,
Manuel.
Avatar
Pierre Goiffon
mpg wrote:
Quelle est actuellement la façon recommandée de servir des documents en
xhtml 1.0 (strict) pour être compatible (si possible) à la fois avec les
standards et les navigateurs existants ? Les deux questions que je me pose
sont :
- type mime : html ou xml ?
- prologue xml : présent ou pas ?



D'abord vous demander pourquoi utiliser XHTML : sur le web aujourd'hui
cela n'apporte que des contraintes (beaucoup) et aucun avantages.

Le type Mime, XHTML 1.0 peut être servit en text/html mais ce n'est pas
le cas avec XHTML 1.1 !
MSIE ne digère que du text/html...

Le prologue XML : tout à fait, sa présence fait basculer MSIE (versions
5, 6, mais plus 7 cf
http://blogs.msdn.com/ie/archive/2005/09/15/467901.aspx) en mode de
rendu quirks.

Enfin, lire :
http://pgoiffon.free.fr/info/inet/html_ou_xhtml.php
Avatar
Pierre Goiffon
CrazyCat wrote:
Le prologue xml est (d'après w3.org) essentiellement à utiliser lorsque
les pages ne sont ni en UTF-8 ni en UTF-16 et qu'aucun encodage ne peut
être déterminé.



Je suppose que le prologue est obligatoire lorsque le XHTML est lu comme
de l'XML, non ? En cherchant (très) rapidement je n'ai pas trouvé de
confirmation de cette hypothèse...
Avatar
mpg
Le (on) vendredi 22 août 2008 18:40, Pierre Goiffon a écrit (wrote) :

D'abord vous demander pourquoi utiliser XHTML : sur le web aujourd'hui
cela n'apporte que des contraintes (beaucoup) et aucun avantages.



Bah, il y a essentiellement deux raisons :
- je m'y suis habitué, et je ne suis pas vraiment motivé pour changer mes
habitudes là tout de suite ;
- et l'origine du choix initiale doit être l'idée que comme c'est du XML au
fond, si un jour j'ai besoin de passer par des traitements automatisés, il
me semble qu'on trouve beaucoup plus de trucs pour l'XML que pour les
variantes de SGML.

J'admets que les arguments ne sont pas très forts.

Le type Mime, XHTML 1.0 peut être servit en text/html



Donc ce n'est pas considéré comme "mal" ? Tant mieux, parceque c'est ce que
je fais pour le moment.

mais ce n'est pas
le cas avec XHTML 1.1 !
MSIE ne digère que du text/html...



C'est bien pour ça que je n'ai jamais envisagé même une seconde de publier
de l'XHTML 1.1.

Enfin, lire :
http://pgoiffon.free.fr/info/inet/html_ou_xhtml.php



Je suis assez d'accord avec tous vos arguments. En particulier, le fait que
la principale différence est entre les DTD "strict" et "transitional",
qu'on soit en HTML ou en XHTML. Et on peut aussi se forcer à quoter ses
attributs même en HTML, etc. Au fond entre de l'HTML écrit très proprement
et du XHTML il y a peu de différence (à part les tags auto-fermants, bien
sûr).

Manuel.
Avatar
Patrick Mevzek
Le Fri, 22 Aug 2008 19:30:28 +0200, mpg a écrit:
Au fond entre de l'HTML écrit très proprement
et du XHTML il y a peu de différence (à part les tags auto-fermants, bien
sûr).



Il y a une énorme différence en pratique (en théorie sinon je suis
d'accord) : le poids de l'histoire.

Un webmaster qui a fait du tag soup toute sa vie en s'en rendant compte ou
pas (vive les logiciels qui génèrent du HTML pourri), ne va pas du jour au
lendemain faire du strict juste parce que...

C'est comme beaucoup d'autres choses (IPv6, DNSSEC, etc...) tant qu'il n'y
a pas de justification *commerciale* ca n'avance pas.

Au moins avec le XHTML servi proprement, si on fait n'importe quoi on a un
beau message d'erreur du validateur XML dans le navigateur, et donc on ne
*coupe pas* à faire attention et propre !

Et pour le coup avec HTML5, on fait encore un pas en arrière sur ce point...

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Avatar
Patrick Mevzek
Le Fri, 22 Aug 2008 18:06:51 +0200, mpg a écrit:
Le XHTML en text/html c'est mal



D'ailleurs, à quel point est-mal en fait : ça peut casser quoi précisément ?



Notamment : le navigateur utilise son parseur HTML et plus son validateur
XML, et donc cela devient laxiste.
On a donc tous les inconvénients, et plus aucun avantage.

mais c'est « nécessaire » pour IE. Donc ma bidouille à moi c'est
application/xml+xhtml pour les navigateurs qui le déclarent proprement
dans le Accept: (en ne tenant pas compte de */*) et text/html pour les
autres.



Ah, ça a l'air bien ça. Est-ce abuser que te demander comment tu t'y
prends en pratique (surout si c'est sur Apache) ?



mod_xhtml_neg
http://mod-xhtml-neg.sourceforge.net/
configuré comme ca :
XhtmlNegActive on
XhtmlNegTypes .xhtml application/xhtml+xml;charset=utf-8 application/xml;charset=utf-8;q=0.5 text/html;charset=utf-8;q=0.8 text/xml;charset=utf-8;q=0.2
XhtmlNegTypes .xhtml.gz application/xhtml+xml;charset=utf-8 application/xml;charset=utf-8;q=0.5 text/html;charset=utf-8;q=0.8 text/xml;charset=utf-8;q=0.2
XhtmlNegStarsIgnore 2

AddCharset utf-8 .xhtml
AddCharset utf-8 .css

(on peut faire autrement, cf docs)


--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Avatar
mpg
Le (on) vendredi 22 août 2008 19:39, Patrick Mevzek a écrit (wrote) :

mod_xhtml_neg
http://mod-xhtml-neg.sourceforge.net/



Merci ! Je vais étudier ça.

Manuel.
1 2 3