Plan de site Navigation
Blog & Blues Techniques et Standards de la Qualité Web

Accueil > weblog


- Lire le billet précédent - Lire le billet suivant -

Style switcher CSS: contraintes et solutions

Par Laurent Denis, le 11 juin 2004.

Quelles solutions pour offrir des styles CSS alternatifs ?

La seule solution valable serait de s'en remettre au seul navigateur, car c'est tout simplement son boulot, et non celui du serveur. Le « style switcher » n'a en fait strictement rien à faire dans la page Web, car la gestion des styles alternatifs est du ressort du media. Mais on se heurte à la réalité :

  • IE ignore les styles alternatifs 
  • Opera et les navigateurs Gecko les supportent, mais avec le même défaut rédhibitoire : le style choisi n'est pas persistant de page en page au fil de la navigation. Autrement dit, l'utilisateur revient au style par défaut dès qu'il change de page... C'est idiot, d'accord, mais rien ne semble vouloir changer de ce côté depuis longtemps, quelques-soient les rapports de bugs et les réclamations reçues par les auteurs de ces navigateurs.

Sur le principe, priver les utilisateurs d'IE des styles alternatifs en s'en remettant au navigateur n'a rien de bien grave : ce n'est qu'une fonctionnalité tout à fait accessoire (rigolote cependant) liée uniquement à la présentation. On a donc le confort et le « fun » de navigation qu'on mérite, ou plutôt qui est à la portée du navigateur qu'on utilise...

Mais quand on fait de belles feuilles de styles variées en montrant ainsi son habileté, on a naturellement envie que tout le monde en profite, et sans avoir à rechanger le style à chaque page ; d'où le style switcher, béquille plus qu'autre-chose :

  • ça peut se faire en javascript... avec une qualité immense : ça reste du côté du navigateur. Aucune sollicitation supplémentaire côté serveur. Evidemment, ceux qui n'ont pas javascript en sont privés... mais ne pas avoir activé javascript et vouloir s'amuser en surfant, c'est un peu beaucoup demander ;
  • ça peut se faire uniquement côté serveur, au prix modique d'un cookie de session (faire propre !).

Dans ce dernier cas, AMHA :

  • Eviter les scripts qui vous perdent dans la nature dès que votre navigateur cache le réferent, ou qu'il n'accepte pas votre cookie... Veiller à ce que la page de switch redirige toujours quelque-part sur le site (accueil ou carte ou page spécifique, au pire). Pour ma part, je transmettais l'URL de la page appelant le script en query string, pour être sûr de ne pas la perdre. En cas d'absence d'URL, on arrivait sur l'accueil après le switch. (Je parle au passé parce que je n'ai pas eu le temps de remettre tout ça en place sur mon nouveau site personnel) ;
  • Eviter les formulaires express dans le menu du site, qui vous switchent le style sans vous expliquer ce dont il s'agit, voire sans que vous ayez même cliqué sur autre chose que la liste déroulante des styles disponibles : 99.99% de la population du Web ne sait absolument pas de quoi il s'agit. Une page de switch avec un formulaire bien propre et surtout une petite explication sur la nature la chose... ça aide ;
  • Comme dit Ganf, déclarer vos styles proprement avec une bonne gestion des medias et surtout des title, pour que ça marche proprement quand on s'en remet au navigateur.

Cette histoire de style switcher, ça me fait penser au téléphone portable.

Il faut vous dire qu'en dehors de deux trois trucs sur le Web, je suis résolument hostile au supposé progrès, et tout spécialement au téléphone. C'est pourquoi j'ai été très étonné il y a quelques temps chez des amis de voir que leurs filles avaient encore un nouveau portable tout coloré, au moins le 3e depuis le début de l'année.

Meuh non ! M'a-t-on expliqué gentiment : c'est juste la « coque » (ça s'écrit comme ça?) qu'on change. C'est fun !

Le rapport ? La coque du bidulophone est "fun" parce que c'est juste un accessoire très simple qui donne à bon compte l'illusion volontaire d'avoir vraiment changé quelque-chose.

Les CSS alternatives... prendront dans le mythique « grand public » quand il en sera de même pour elles : une technique aussi transparente que l'aperçu avant impression, un clic sur un bouton avec un petit logo sympa, et c'est tout.

D'ici là, rien que le mot « style » (ou « présentation », etc...) est mauvais. Bref, c'est un truc de geek (très rigolo, je le répète).

Trackbacks

Les trackbacks pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.

Commentaires

Gloom, le 11 juin 2004

On est pas obliger d'utiliser un cookie, on peut aussi utiliser l'adresse IP et stoquer le style qui lui correspond côté serveur. Le problème, c'est que ceux qui ont des adresse IP dynamique doivent choisir le style à chaque visite sur le site (c'est tout de même mieux que à chaque page).

On peut donc proposer à l'utilisateur de choisir entre un cookie et un "cookie sur le serveur" (encore faut-il expliquer ce que c'est de façon inteligible).

Je ne sais pas si il y a moyen de déterminer côté serveur si le navigageur accepte les cookie, mais, si c'est le cas, on peut opter pour un cookie par défaut et, si les cookie ne sont pas accepté, un "cookie côté serveur" qui associe le style choisi à l'adresse IP.

Bobe, le 11 juin 2004

Je suis à 100% pour la solution entièrement coté client (c'est d'ailleurs ce que je fais sur mon blog).

Une solution coté serveur n'apporte aucun avantage si ce n'est de transmettre la session par l'url en cas de refus du cookie (beerkk, pitié pas ça).

Le fait de pouvoir changer la présentation d'une page n'étant au final pas du tout indispensable, le cookie convient très bien.

Laurent Denis, le 12 juin 2004

Pour compléter la problématique des style switchers, une citation de la politique d'accessibilité du Gastero Prod 4 de Nicolas Hoizey, que je n'ai jamais trouvé le temps de commenter :

Gastero Prod ne propose pas de feuilles de styles alternatives.

Je préfère largement le rendre réellement accessible en laissant la possibilité à l’internaute d’utiliser un outil spécialisé ou de configurer son navigateur traditionnel.

Je ne comprends pas cette tendance actuelle de fournir une tonne de mises en pages alternatives en faisant croire que c’est là pour accroître l’accessibilité, alors que c’est surtout un moyen de montrer la compétence en CSS du développeur.

Si le site n’est pas naturellement accessible avec sa mise en page par défaut, il y a de bonnes chances pour que ce style switcher ne soit même pas exploitable par quelqu’un ayant cette problématique d’accessibilité.

Rapidement, donc : j'approuve ces raisons sur ce que doit être la feuille de style par défaut, mais, compte-tenu des problèmes causés par la variété des configurations utilisateurs, les CSS alternatives ne peuvent-elles pas être au moins une béquille ? Pas une mesure prioritaire d'accessibilité, certes, mais une possibilité supplémentaire à exploiter pour les problèmes de couleur, de taille de caractères, voire d'affichage simplifié en occultant des éléments de navigation "pour geek" ?

glandium, le 13 juin 2004

> C'est idiot, d'accord, mais rien ne semble vouloir changer de ce côté depuis longtemps, quelques-soient les rapports de bugs et les réclamations reçues par les auteurs de ces navigateurs.

Il suffit de voir les commentaires sur le rapport de bug concerné sur le bugzilla de mozilla... le problème n'est pas aussi simple qu'il n'y parait. Le maintien de la feuille de style d'une page à l'autre pose d'énormes problèmes... et c'est pour ça que ce ne sera probablement jamais implémenté dans Mozilla (cela dit, il y a des extensions qui le font...)

Les commentaires pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.