11548 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

spidermanu a écrit :

ps : version modifié de mon kit (xhtml1.1 plus de javascript plus de iframe)
hein hein voyez que je pouvais lacher les frames.


Il ne te reste plus, comme dit ci-dessus, qu'à lâcher XHTML1.1, ou à l'utiliser correctement. En l'état, en effet:
- ton document a beau porter une étiquette XHTML1.1 (la DTD), ce n'est pas du XHTML1.1 pour les navigateurs. Ce n'est pas du XHTML, en fait : le type de contenu text/html en fait du HTML, ou plutôt de la soupe HTML: XHTML1.1 n'est pas prévu pour être interprété en tant que HTML. (En revanche, XHTML1.0 est justement prévu pour cela).
- ton document n'a pas d'indication d'espace de nom (attribut xmlns de l'élément html) ni d'indication de langue de traitement. Cette dernière donne un bon exemple de la "soupe" ci-dessus:
* si tu ajoute xml:lang="fr" à l'élément html, ton document étant traité comme du HTML et n'étant pas du XHTML1.0, cet attribut est invalide du point de vue HTML.
* si tu ajoute lang="fr", cet attribut est invalide en XHTML1.1...
- ton document n'a pas de charset, malgré la <meta http-equiv...> : en effet, celle-ci sera certes reconnue lorsque le document est traité comme du HTML, mais elle sera ignorée si on force le navigateur à le traiter selon la norme XHTML1.1, c'est à dire en tant qu'application/xhtml+xml. Dans ce cas, comme l'encodage n'est pas spécifié ni au niveau serveur (entête HTTP) ni par un prologue XML, Opera et Firefox tombent immédiatement d'accord: "Encoding from serveur: unknown".
- En l'absence de prologue XML et d'encodage indiqué au niveau serveur, un document XHTML1.1 en iso-8859-1 est invalide (iso-8859-1 ne fait pas partie des encodages par défaut admis dans ce cas).

Donc, un choix à faire:
- revenir à XHTML1.0, qui peut, lui, être traité en tant que text/html
- corriger les différentes erreurs ci-dessus (encodage, prologue, langue, espace de nom...) et délivrer le document en tant que XHTML1.1 correct, c'est à dire avec le type de contenu application/xhtml+xml. Comme très peu d'agents utilisateurs reconnaissent actuellement ce type de contenu, et notamment pas IE, il te faudra faire de la négociation de contenu pour délivrer une version modifiée de ton document aux navigateurs qui n'acceptent que du text/html. Cette version peut être en XHTML1.0, en HTML4.01...

Donc, faire une seule version XHTML1.0 propre, ou gérer deux versions du document dont une en XHTML1.0 ? En sachant qu'XHTML1.1 t'est inutile, puisque tu n'exploite aucune des gains de celui-ci par rapport à XHTML1.0...

Sinon, il faut rappeler qu'un div scrollable CSS pose un problème d'accessibilité, car les utilisateurs n'ayant pas accès à un dispositif de pointage (souris...) ne peuvent pas faire défiler le contenu. Ils doivent désactiver la feuille de style pour rendre le document accessible. Il est dommage que les feuilles de style, dont un des rôles est d'améliorer l'accessibilité, joue ici le rôle inverse...
Modifié par Laurent Denis (25 Feb 2005 - 08:05)
?? et le valideur il certifie que c'est bien du xhtml 1.1 et toi tu me dis que ca n'en est pas..??
Rumm comprends plus rien.
Smiley ohwell
Peut être pourrai-je avoir une entête avec tout et tout comme y faut pour le xhtml 1.1 ? stp
Modifié par spidermanu (25 Feb 2005 - 12:18)
Le validateur ne vérifie que certains points de conformité (la syntaxe, essentiellement). Un document validé n'est donc pas nécessairement un document conforme.

En outre, en l'état actuel, le validateur du W3C n'implémente pas correctement le type de contenu application/xhtml+xml : il ne traite que du text/html quand il a le choix. Cette problématique lui échappe.

spidermanu a écrit :

Peut être pourrai-je avoir une entête avec tout et tout comme y faut pour le xhtml 1.1 ? stp


C'est un petit plus compliqué que quelques lignes à copier-coller en début de fichier. D'où les lectures qui t'ont été suggérées par divers intervenants de ce fil Smiley cligne

Pour t'en rendre compte, voici ce que tu peux ajouter au tout début de ton document actuel (en XHTML1.1), avant la DTD:

<?php header('Content-Type: application/xhtml+xml; charset=iso-8859-1'); ?>


De la sorte, ton document sera servi avec le type de contenu approprié pour du XHTML1.1, et un charset reconnaissable.

Ensuite, regarde le résultat dans IE. Tu verras pourquoi il faut alors prévoir de faire, pour les navigateurs comme IE, une seconde version de ton document qui ne soit pas en XHTML1.1...
Modifié par Laurent Denis (27 Feb 2005 - 18:37)
Laurent Denis a écrit :
[...]
En outre, en l'état actuel, le validateur du W3C n'implémente pas le type de contenu application/xhtml+xml : il ne traite que du text/html. Cette problématique lui échappe.
[...]

Qu'entends-tu par "le validateur du W3C n'implémente pas le type de contenu application/xhtml+xml" ?
Pardon, faute de frappe: le validateur n'implémente pas correctement ce type de contenu : il peut valider une page qui lui est adressée en application/xhtml+xml. Mais:
- lorsqu'il a le choix, il choisit text/html (probablement la préférence exprimée dans HTTP_ACCEPT)
- lorsqu'il reçoit un document dans une DTD XHTML1.1 incompatible avec text/html, il ne bronche pas.
Salut à tous,

pour information, le serveur de validation du W3C renvoye à un script PHP la variable $_SERVER suivante :
$_SERVER = Array
(
     [HTTP_CONNECTION] => close
     [HTTP_USER_AGENT] => W3C_Validator/1.305.2.148 libwww-perl/5.803
     [PATH] => /usr/bin:/bin
     [REMOTE_ADDR] => 128.30.52.13
     [REMOTE_PORT] => 57317
     [GATEWAY_INTERFACE] => CGI/1.1
     [SERVER_PROTOCOL] => HTTP/1.1
     [REQUEST_METHOD] => GET
     (...)
)
Ce que cette variable contient n'est pas le plus intéressant. Ce qui l'est plus, c'est ce qu'elle ne contient PAS!

Par exemple, elle ne contient pas HTTP_ACCEPT. Par conséquent, on peut considérer qu'il accepte tout ? C'est un problème gênant pour les scripts qui envoyent une page différente en fonction du HTTP_ACCEPT !

À méditer !

@+, HoPHP
Au temps pour moi, il me semblait qu'il s'agissait d'un problème de préférence (J'ai dû confondre avec un autre validateur. Il faudrait vérifier, tiens...)

Au passage, pour le côté amusant de la chose : le validateur du W3C se comporte un peu comme... Internet Explorer (Envoyez-moi ce que vous voulez, je ferai comme je peux avec) Smiley cligne
Modifié par Laurent Denis (27 Feb 2005 - 20:17)
Laurent Denis a écrit :
Pardon, faute de frappe: le validateur n'implémente pas correctement ce type de contenu : il peut valider une page qui lui est adressée en application/xhtml+xml. Mais:
- lorsqu'il a le choix, il choisit text/html (probablement la préférence exprimée dans HTTP_ACCEPT)
- lorsqu'il reçoit un document dans une DTD XHTML1.1 incompatible avec text/html, il ne bronche pas.

Ok Smiley smile

Pour servir mes pages XHTML en application/xhtml+xml, j'utilise un script PHP de négociation de contenu, et j'ai une conditon spéciale pour le validateur W3... Dommage qu'il n'envoi pas un HTTP_ACCEPT en bonne et dûe forme Smiley decu
Pages :