|
Le maillon faible ou les feuilles de styles appliquéeslaurent.Klling[AT]epfl.ch,STI - IA Je ne désire pas faire l'apologie de certains jeux télévisés, mais mettre en évidence la difficulté de la mise en oeuvre des feuilles de styles (CSS2) et souhaite trouver une solution, permettant à chaque usager de disposer de l'information, en optant pour le style graphique qu'il lui convient. Le jeu du Maillon faible consiste (après un questionnement en plusieurs rondes) à éliminer le candidat que les autres participants ont jugé trop faible et il est troublant de constater que l'imagination des concepteurs de spectacles audio-visuels franchit des degrés de méchanceté et de non-respect de la synergie entre êtres humains, au profit d'une course pseudo-darwiniste, où les plus forts devraient émerger du lot. Si l'on observe les deux interprétations du même scénario, soit TF1 le dimanche vers 17h55 et la BBC à 18h45 la semaine, on réalise qu'elles accommodent la même mixture (organisation scénique et jeux de lumière) où les mêmes présentatrices, à l'apparence de maîtresses d'école sont revêches et impitoyables. En résumé, produire des perdants me semble une voie obsolète. Pourquoi ne pas s'ingénier à être tous gagnants... différemment? Préambule L'utilisation par le projet e-pfl de la technologie des feuilles de styles (Cascading Styles Sheet 2) nous confronte de nouveau à sa mise en place: un article a déjà paru dans ce journal ( FI10-97 par Jacqueline Dousson), mais son propos était plutôt technique et concernait la version 1 à une époque où son implémentation sur nos butineurs favoris était encore parcimonieuse. L'utilisation de cette technique nous expose à nouveau au dilemme suivant:
Historique L'évolution de la technologie HTML, dans le temps, suit deux chemins:
L'arrivée de XHTML devrait pouvoir réunir ces deux voies. Le concept de feuille de styles est simple et élégant:
Mise en oeuvre Après cette brève présentation théorique, passons à la réalisation (ce qui est une justification du titre). En effet, toutes réalisations dans le domaine du Web doivent intégrer les navigateurs disponibles chez l'usager et leurs systèmes d'exploitation. On peut regrouper ces spécifications dans une matrice 3x3: Résolution La définition de ce paramètre n'est pas banale. On peut s'étonner de la faible résolution du Macintosh, mais par un heureux hasard, celle-ci est équivalente au Point Pica utilisé en imprimerie, soit 72 points par pouces. Pour s'adapter au matériel (la diagonale du moniteur), ce choix entraîne la mise en place de résolutions apparemment exotiques (832 x 624 par exemple). Cette méthode permit l'apparition du WYSIWYG et l'emploi majoritaire de cette plate-forme dans les arts graphiques. Dans le monde du PC, c'est la prédominance du matériel qui a défini la base de travail entraînant une définition plus élevée, soit 96 dpi. Gamma La dynamique de perception de l'oeil est particulièrement élevée (et son appréciation de la luminosité n'est pas linéaire). Un convertisseur numérique analogique pour la vidéo travaille sur 8 bits. Pour compenser cette différence d'échelle et pour simuler la dynamique de l'oeil, on introduit une correction sur la luminosité. Le choix d'un gamma différent entre les plates-formes PC et Macintosh entraîne une apparence claire ou foncée du contenu selon la source de création. Ce phénomène n'est pas sans conséquence, il entraîne la quasi-impossibilité de réaliser du commerce électronique pour le prêt à porter par faute d'absence de concordances entre les couleurs de l'écran et celle de la marchandise (sans évoquer la différence de spectre entre un éclairage naturel et artificiel). Nous entrons dans un domaine glissant, et ne désirant pas entrer dans un débat de chapelle, je désire évoquer leurs relations avec les feuilles de styles. Il existe un fossé entre la définition d'un RFC et son implémentation, sans refaire l'historique de la guerre commerciale et technologique dans le domaine des butineurs, Netscape vs Internet Explorer. On peut les regrouper en 5 familles: 1. Antérieur Dans cette catégorie entre l'ensemble des outils qui ont fait que la majorité des internautes identifie un butineur à Internet (confondant un outil avec un protocole). 2. Netscape 4.x Voici donc le candidat pour l'élimination, en fait la grande bataille des navigateurs a laissé sur le carreau ce logiciel. Plus sérieusement, il a un défaut important, il casse l'héritage des styles dans les tableaux. Il existe un palliatif qu'il suffit d'appliquer pour le réintégrer dans le jeu. 3. Internet Explorer 5.x C'est apparemment le vainqueur actuel, avec une occupation quasi hégémonique sur le terrain des systèmes d'exploitation et son implémentation correcte des principes des feuilles de styles. Le principal bémol à cet enthousiasme est son ouverture aux trous de sécurité. 4. Netscape 6.x Par son implémentation complète de la norme 4.x, il a mis au supplice tous les rédacteurs de pages Web dont les horizons se limitaient à corriger les défauts de la version précédente. En offrant un outil propre à contenter ceux qui écrivent leur programme selon la documentation, il devient un challenger sérieux pour les futurs combats. 5. Autre Dans cette catégorie, on peut ranger les autres qui pourront peut-être définir de nouveaux standards. La pratique Un style peut s'appliquer sur de nombreux éléments dans une page html, dans l'ordre hiérarchique:
Pour éviter la hiérarchie par paragraphe, on peut utiliser le tag <spam> à l'intérieur et le tag <div> à l'extérieur pour appliquer un style spécifique. On peut également définir des styles par type de Médium: écran, impression, wap. Cette utilisation n'est pas encore répandue, mais reste prometteuse. Normalement*, un style hérite des styles antérieurs (d'où l'acronyme CSS, Cascading Styles Sheet). La base de mon travail était la feuille de style disponible avec la version 1.0 de speedperg (voir code 1).
a { color: #000; font-weight: bold; font-size: 10px; font-family: Verdana, Helvetica, Arial, Geneva, Swiss, SunSans-Regular; text-decoration: none }
Code 1 Pour compléter notre information, il peut être utile de se référer à la RFC qui contient une description d'une feuille de style théorique définissant l'aspect en HTML 4.x, http://www.w3.org/TR/1998/REC-CSS2-19980512/sample.html . Il reste le choix de l'unité de mesure de la hauteur du texte, on peut la mesurer selon de nombreux critères. Les tailles suivantes sont en valeur absolue: cm, in, pt, pc (centimètres, inches, points, picas). Cela implique que la taille ne pourra pas être modifiée par l'usager. Celles-ci ont par contre des tailles relatives: em, ex, % (la taille de la police, la taille de la lettre x, le pourcentage). Le pourcentage se comporte de manière variée (c'est un euphémisme) selon les implémentations.
Figure 1 - le style e-epfl [1.0] sur la page de garde du site de la Faculté STI
Il ne faut pas oublier de tenir compte de la résolution effective du médium utilisé.
Pour e-pfl, l'unité retenue a été le pixel (px).
Pour pallier à ces défauts, après quelques essais avec les autres unités, j'ai choisi l'em.
new.csscode 2 Me trouvant devant le choix cornélien de choisir entre ces deux propositions, j'ai pris la voie suisse, ce qui ramène le choix à l'utilisateur (démocratie directe oblige). Dans une vision théorique, le style suivant (voir code 2) devrait nous satisfaire. Du fait du bogue de Netscape 4.x qui casse l'héritage dans les tableaux, le style en taille fixe doit ressembler au code 3. La version définitive est composée de quatre éléments
epfl-sti.css
code 3
Dans le détail Pour faciliter la lecture du code html, j'ai choisi la solution de deux scripts PHP (on peut sans problème envisager un script avec un passage de paramètres):
setvar.php
code 4
Le code suivant est à introduire à l'endroit que vous désirez pour obtenir la possibilité d'avoir des polices de taille variable:
Polices <a href="http://sti.epfl.ch/styles/
setvar.php" title="Change to var"
class="stylevar">variable</a>
code 5 Pour ma part, je l'ai introduit dans une boîte rouge dans la page de garde des sites que je gère, par exemple http://sti.epfl.ch/index.html . Choisir le style adapté C'est le script dynastyle.php utilisé par chaque usager de l'apparence e-pfl modifié pour tenir compte de ces deux états:
/* Modification pour sti - lk - 25 janvier 2002 */
code 6 Il est nécessaire de définir de nouvelles feuilles de styles pour l'ensemble des variantes (normal, NT et Unix), car je l'ai complété par mes propres créations. Il faut également modifier la référence de dynastyle.php dans la page HTML:
<! pour test local >
code 7 La référence au style local (styles/epfl-sti-var.css) permet avec un éditeur comme GoLive de disposer d'un mode d'édition interactive particulièrement utile. La présence du lien sur dynastyle.php permet en production d'utiliser la version complète. Les feuille de styles En l'occurrence, la feuille de style pour des tailles variables de polices (voir code 8). On remarque que je préfère documenter directement le code source, ce qui facilite la gestion des différentes versions (qui existent à 4 exemplaires par styles).
epfl-sti-var.css
/* version 0.72 avec bandeau texte et taille variable*/
code 8 Quelques autres modifications que j'ai apportées au style e-pfl Utiliser la taille du texte en em C'est la principale modification qui permet de modifier l'apparence du contenu en fonctions des préférences du butineur; pour les personnes intéressées par ce choix, c'est également celui de l'exemple du RFC (voir plus haut) et je me permets de signaler un article qui explicite cette problématique: Text Size Control with CSS by Steve Mulder, http://hotwired.lycos.com/webmonkey/98/35/index2a.html . Contrairement à ce que j'ai dit plus haut, il ne m'a pas paru judicieux de faire 2 feuilles de style (Macintosh et PC) pour tenir compte de la résolution d'écran différente entre ces 2 plates-formes du fait que les browsers récents (IE 5 et NS 6) tablent sur 96 dpi. Favoriser la migration du contenu des anciens sites. J'ai rajouté certains tag typiques comme body, p, td, li, h3, h2, h1 pour pouvoir sans gros travail incorporer le style e-pfl dans les différents sites que je gère. De plus, cela permet d'éviter de rajouter à la main dans les tableaux <td> et les listes <li> le style text. Ajouter une rétroaction visuelle sur les liens Comme clin d'oeil à la sempiternelle règle des liens soulignés, je souligne le lien quand le curseur est dessus (a:hover). Éliminer les bandeaux d'images par du texte En accord avec mon précédent article Small is beautifull (FI 2-2000), bien que je comprenne la volonté de définir une apparence et de vouloir la conserver (en tant qu'architecte, je comprends le droit de suite), je pense qu'il n'est pas judicieux de créer des bandeaux de texte en images du point de vue de la vitesse de téléchargement du contenu chez l'usager. Par exemple, dans le bandeau selon la recommandation e-pfl la taille du texte est de 5569 octets et celle des images générées pour le texte par l'outil de génération de pages dynamiques en PHP, SpeedBerg, http://www.myepfl.ch/speedberg/ de 35477octets; alors que dans son interprétation avec la feuille de style variable la taille du texte est de 5966 octets et celle des images de 2341 octets, entraînant la comparaison représentée dans le tableau 1. Lire aussi Du Speedberg dans votre PHP... en première page. Comme le bandeau de tête fait partie de l'identité de notre école, je conserve la taille en pixel du texte de ces éléments. À part la concession à l'aspect, c'est également la lisibilité du texte qui n'est pas en cause. Figure 2 -La page du site Web de la Faculté STI avec le style variable (taille du texte du browser sur 14 points)
Éviter que certaines apparences soient modifiées par les liens • Pour permettre une lecture adaptée des titres, ceci est une des autres concessions que je fais à l'aspect... Il suffit de rajouter au nom du style, les états de lien que l'on désire uniformiser (:active, :link, :visited, :hover). Ajouter la famille (sans-serif) dans la description des polices pour être conforme aux recommandations Les 3 dernières modifications sont déjà intégrées dans la version 3.2 de la feuille de style e-pfl. En conclusion Dans un futur proche, la mise en oeuvre de XHTML (http://www.w3.org/TR/xhtml1/ ) devrait réconcilier les partisans de pages dynamiques avec les amateurs de travail manuel. Pour éviter des problèmes de compatibilité future, nous pourrions déjà coder en utilisant les minuscules pour les tags et introduire un tag de fermeture pour ceux qui n'en possèdent pas. L'exemple le plus connu est le retour de ligne <br> qui devient </br>. En offrant à chaque usager, un choix sur la manière de représenter l'information, cet article présente peut-être une solution alternative évitant le débat entre lesanciens et les modernes. |
|
© Flash informatique no 3/2002, 1015 Lausanne, tél. 021 69 322 11, fi@epfl.ch http://ditwww.epfl.ch/SIC/SA/publications/FI02/fi-3-2/3-2-page13.html mise à jour: hrb/21.03.02 |