Mes impressions sur le web, les standards et autres…


Netscape 4.x : LA solution ?

Une discussion sur la liste des pompeurs tout à l’heure traitait des moyens de cacher la feuille de style à Netscape 4.x. La discussion a dévié sur le site Openweb qui masque justement sa feuille de style à Netscape 4.x en utilisant une méthode… inconnue. On a beau triturer le code source de la page ainsi que la feuille de style, impossible de savoir laquelle ils utilisent.

On connait plusieurs méthodes (voir aussi cette page) pour cacher une feuille de style aux navigateurs périmés tels que Netscape 4.x (qui gère les feuilles de style aussi bien que je sais chanter, ce qui n’est pas peu dire). La plupart consistent en bidouilles plus ou moins efficace, mais aucune ne s’avère être la solution parfaite, logique, clean et efficace.

Bref, ma curiosité à nouveau attisée, j’ai procédé à quelques tests sur Openweb, mais sans succés. Et puis j’ai repensé au protocole HTTP, aux types MIME puis à la réécriture d’URLs. Et là, le puzzle s’assemble. La négociation de contenu, quoi de plus logique. Testons si le navigateur envoie le type MIME text/css, et si ce n’est pas le cas, envoyons lui une feuille de style basique dédiée spécialement à ces croulants que sont les navigateurs périmés.

Et après pas mal de tests et de contorsion (Netscape 4.x a vraiment des comportements bizzares par moment), il semble bien que Netscape 4.x n’envoie pas le type MIME text/css à l’appel de la feuille de style :) J’ai mis en place une page de test et d’explications afin que vous puissiez juger par vous même. Reste à voir également quel est le comportement des autres navigateurs (quelques uns ont déja été testés) — Bon, bah après avoir retester encore, je me rend compte que IE fait faux bond puisqu’il envoie */*. Grumbl, j’ai la haine contre la firme de Redmond là — .

Cette méthode aurait l’avantage d’être la plus logique et la plus simple. Évidemment, cela demande à ce que le module mod_rewrite soit disponible sur votre serveur, cependant, on peut envisager aussi un script CGI qui se chargerait de tester l’entête accept et renverrait selon les cas l’une ou l’autre feuille de style. Par contre, je ne sais pas si cela aura une quelconque incidence sur tel ou tel navigateur que le fichier appellé par la balise <link> n’ait pas l’extension .css.

Vos réactions, opinions, insultes…

Rétroliens

Faire un rétrolien sur ce billet : [trackback]

Commentaires

1. De Bobe

Donc comme je le dis à la fin de l'avant dernier paragraphe, IE dans ses versions "récentes" ne passe pas le test. De même que Opera dans sa dernière version et même amaya. À moins que j'ai fait une grosse erreur, mais j'ai bien vérifié pour IE, il envoie bien accept: */* quand il appelle le fichier css.

C'est dommage quand même, ça paraissait si simple et logique :/

Pourquoi ne pas tout simplement demandé à ceux d'OpenWeb?

J'ai moi-même soulevé ce mystérieux point sur le groupe de discussion ficw.auteurs. Malgré la présence de nombreux membres de l'OpenWeb Group sur ce newsgroup, pas un n'a vendu la mèche et le secret perdure ;-).

J'ai aussi pensé à la négociation de contenu, mais sans aller jusqu'à tester tout ça.

Bravo Bobe pour tes travaux qui vont faire avancer la science ;-)

L’ajout de commentaires sur ce billet n’est pas/plus autorisé.