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.

Tests et liens

Mes tests de la nuit dernière sur le type de media text/css m’ont rappellés un document que j’avais déniché il y quelques mois au fin fond du site du W3C. Le document en question est une liste de résultats de test avec les différents navigateurs comprenant le XML et portant sur la reconnaissance des types de media text/html, application/xhtml+xml, text/xml et application/xml. Les documents de test sont également très instructifs.