Langues

Ceci est une traduction. Elle peut avoir des erreurs ou être dépassée par rapport à la version anglaise. Traducteur(-trice): Anne-Marie Luigi

Chapitre 20
La saga CSS

Ceci est le chapitre 20 du livre Cascading Style Sheets, designing for the Web, de Håkon Wium Lie et Bert Bos (2nd edition, 1999, Addison Wesley, ISBN 0-201-59625-3)

La saga de CSS commence en 1994. L'un des auteurs de ce livre travaille au CERN - le berceau du web - et le web commence à être utilisé comme plate-forme pour l'édition électronique. Une des parties cruciales d'une plate-forme de publication fait cependant défaut : il n'y a aucun moyen de styliser des documents. Par exemple, il est impossible de décrire une mise en page de type journal dans une page web. Après avoir travaillé sur des présentations de journaux personnalisés au MIT Media Laboratory, Håkon a reconnu le besoin d'un langage de feuilles de style pour le web.

Des feuilles de style dans les navigateurs n'étaient pas une idée entièrement nouvelle. La séparation de la structure du document de la mise en page du document était un objectif du HTML depuis sa création en 1990. Tim Berners-Lee a écrit son navigateur/éditeur NeXT de telle sorte qu'il pouvait déterminer le style à l'aide d'une simple feuille de style. Cependant, il n'a pas publié la syntaxe des feuilles de style, considérant qu'il appartient à chaque navigateur de décider de la meilleure façon d'afficher les pages à ses utilisateurs. D'autres navigateurs, y compris Viola de Pei Wei (1992) et le navigateur Harmony (1993) (le Hyper-G system était l'un des premiers concurrents du web) pour le système Hyper-G, avaient des langages de style comparables.

Mais au lieu de feuilles de style plus élaborées, les navigateurs qui ont suivi offraient à leurs utilisateurs de moins en moins d'options pour influencer le style. NCSA Mosaic, le navigateur qui a popularisé le web, est sorti en 1993. Cependant, question style, c'était un pas en arrière car il permettait seulement à ses utilisateurs de changer certaines couleurs et polices.

Pendant ce temps, les auteurs de pages web se plaignaient de ne pas avoir assez d'influence sur l'apparence de leurs pages. L'une des premières questions d'un auteur débutant sur le web était de savoir comment changer les polices et les couleurs des éléments. À l'époque, le HTML n'offrait pas cette fonctionnalité - et ce à juste titre. Cet extrait d'un message envoyé à la liste de diffusion www-talk au début de 1994, donne une idée des tensions entre les auteurs et les implémenteurs :

(Ce message est disponible sur www-talk archive.)

En fait, pouvoir répondre sans cesse "Désolé, tu es foutu" à des hordes (littéralement) de personnes qui veulent -- accrochez-vous bien -- contrôler l'apparence de leurs documents d'une manière qui serait triviale dans TeX, Microsoft Word et tout autre environnement de traitement de texte ordinaire, a été une source constante de plaisir pour moi au cours de l'année écoulée.

L'auteur du message est Marc Andreessen, l'un des programmeurs de NCSA Mosaic. Plus tard, il est devenu cofondateur de Netscape et, à ce moment-là, ses opinions - si jamais elles étaient les siennes - sur le formatage avaient changé. Le 13 octobre 1994, Marc Andreessen a annoncé à www-talk que la première version bêta de Mozilla (qui s'est ensuite transformée en Netscape Navigator) était disponible pour les tests. Parmi les nouvelles balises, le nouveau navigateur prenait en charge center et d'autres balises devaient suivre sous peu.

Trois jours avant que Netscape annonce la sortie de son nouveau navigateur, Håkon a publié la première version de Cascading HTML Style Sheets. Dans les coulisses, Dave Raggett (l'architecte principal de HTML 3.0) avait encouragé la publication de l'ébauche avant la conférence "Mosaic and the Web" (la conférence "Mosaic and the Web" a eu lieu du 17 au 20 octobre 1995. Il s'agissait de la deuxième conférence de ce qui est devenu plus tard les WWW Conference Series) à Chicago. Dave s'était rendu compte que le HTML ne se transformerait jamais en langage de description de page et qu'un mécanisme plus spécifique était nécessaire pour satisfaire les exigences des auteurs. Bien que la première version du document soit embryonnaire, elle a fourni une base de discussion utile.

Parmi les personnes qui ont répondu à la première ébauche de CSS se trouvait Bert Bos, le co-auteur de ce livre. À l'époque, il construisait Argo (le navigateur Argo faisait partie d'un projet visant à rendre Internet accessible aux chercheurs en sciences humaines. Il comprenait des plug-ins (appelés "applets") avant que Netscape ne les ajoute), un navigateur hautement personnalisable avec des feuilles de style et il a décidé de s'associer à Håkon. Les deux propositions semblent différentes du CSS actuel, mais il n'est pas difficile de reconnaître les concepts originaux.

L'une des caractéristiques du langage de style Argo était qu'il était suffisamment général pour s'appliquer à d'autres langages de balisage en plus du HTML. Ceci est également devenu un objectif de conception dans CSS et "HTML" a été rapidement retiré du titre de la spécification. Argo avait aussi d'autres fonctionnalités avancées qui n'ont pas atteint le niveau CSS 1, en particulier les sélecteurs d'attributs et le texte généré. Les deux fonctionnalités ont dû attendre CSS2.

"Cascading Style Sheets" n'étaient pas le seul langage de style proposé à l'époque. Il y avait le langage de Pei Wei du navigateur Viola, et Robert Raisch de la maison d'édition O'Reilly en avait écrit un autre, et ce dès juin 1993. Et puis il y a eu DSSSL, un langage de style et de transformation complexe en cours de développement ISO pour l'impression de documents SGML. Le DSSSL pourrait également s'appliquer à HTML. Mais CSS avait une caractéristique qui le distinguait de tous les autres : tenir compte du fait que, sur le web, le style d'un document ne pouvait être conçu ni par l'auteur ni par le lecteur, mais que leurs souhaits devaient être combinés, ou "en cascade" d'une certaine façon ; et, en fait, non seulement les souhaits du lecteur et de l'auteur, mais aussi les capacités du dispositif d'affichage et du navigateur.

Comme prévu, la proposition initiale de CSS a été présentée à la conférence web de Chicago en novembre 1994. La présentation au cours du Developer's Day a suscité beaucoup de discussions. Premièrement, le concept d'équilibre entre les préférences de l'auteur et celles de l'utilisateur était une nouveauté. Une copie d'écran simulée montrait un curseur avec l'étiquette "user" d'un côté et "author" de l'autre. En ajustant le curseur, l'utilisateur pouvait modifier le dosage de ses propres préférences et de celles de l'auteur. Deuxièmement, CSS a été perçu par certains comme étant trop simple pour la tâche pour laquelle cela avait été conçu. Ils ont fait valoir qu'afin de styliser les documents, le pouvoir d'un langage de programmation complet était nécessaire. CSS est allé dans la direction opposée en faisant valoir la simplicité d'un format déclaratif.

Lors de la prochaine conférence WWW en avril 1995, le CSS a de nouveau été présenté (WWW3, la troisième conférence de la série WWW, s'est tenue du 10 au 14 avril 1995 à Darmstadt, en Allemagne). Bert et Håkon étaient présents (en fait, c'était la première fois que nous nous rencontrions en personne) et à cette occasion, nous avons également pu montrer les implémentations. Bert a présenté le support des feuilles de style dans Argo et Håkon a présenté une version du navigateur Arena qui a été modifiée pour supporter CSS. Arena avait été écrit par Dave Raggett pour tester de nouvelles idées et l'une d'entre elles était les feuilles de style. Ce qui a commencé par des présentations techniques s'est terminé par des discussions politiques sur le rapport auteur-lecteur. Les représentants du côté "auteur" ont fait valoir que c'est à l'auteur qu'il appartient en dernier ressort de décider de la présentation des documents. Par exemple - on a fait valoir - qu'il pourrait y avoir des exigences légales sur la façon dont les vignettes de mise en garde doivent être imprimées et que l'utilisateur ne devrait pas être en mesure de réduire la taille de la police de ces mises en garde. L'autre camp, auquel appartiennent les auteurs de ce livre, a fait valoir que l'utilisateur, dont les yeux et les oreilles doivent finalement décoder la présentation, devrait avoir le dernier mot en cas de conflit.

En marge des batailles politiques, les travaux techniques se sont poursuivis. La liste de distribution www-style a été créée en mai 1995, et les discussions qui s'y sont tenues ont souvent influencé l'élaboration des spécifications CSS. Trois ans plus tard, il y avait déjà plus de 4 000 messages dans les archives de la liste de distribution.

En 1995, le World Wide Web Consortium (W3C) est également devenu opérationnel. Les entreprises se sont jointes au Consortium en grand nombre et l'organisation s'est établie. Des ateliers sur divers sujets se sont révélés être un moyen efficace pour les membres et le personnel du W3C de se rencontrer et de discuter des développements techniques à venir. Il a donc été décidé d'organiser un autre atelier, cette fois sur le thème des feuilles de style. Le personnel technique du W3C travaillant sur les feuilles de style (à savoir les deux auteurs de ce livre) était maintenant situé à Sophia-Antipolis dans le sud de la France où le W3C avait installé son site européen. Le sud de la France n'est pas le pire endroit pour attirer les gens, mais comme de nombreux participants potentiels se trouvaient aux États-Unis, il a été décidé de tenir l'atelier à Paris, qui est mieux desservi par les vols internationaux. L'atelier était aussi une expérience pour voir s'il était possible pour le W3C d'organiser des événements en dehors des États-Unis. En effet, cela s'est avéré possible et l'atelier a été une étape importante pour assurer aux feuilles de style la place qui leur revient sur le Web. Parmi les participants, Thomas Reardon, de Microsoft, s'est engagé à prendre en charge les CSS dans les prochaines versions d'Internet Explorer.

À la fin de 1995, le W3C a mis sur pied le comité de révision éditoriale HTML (HTML ERB) pour ratifier les futures spécifications HTML. Les feuilles de style étant dans la sphère d'intérêt des membres du nouveau groupe, la spécification CSS a été reprise en tant qu'élément de travail dans le but d'en faire une Recommandation. Lou Montulli de Netscape se trouvait parmi les membres de l'ERB HTML. Après que Microsoft a signalé qu'il ajoutait le support CSS dans son navigateur, il était également important d'avoir Netscape à bord. Sinon, nous pourrions pu voir le Web diverger dans différentes directions avec des navigateurs supportant des spécifications différentes. Les batailles au sein de l'ERB HTML ont été longues et difficiles, mais le niveau 1 du CSS a finalement émergé en tant que W3C Recommendation en décembre 1996.

En février 1997, le CSS a eu son propre groupe de travail au sein du W3C et le nouveau groupe s'est mis à travailler sur les fonctionnalités que le CSS1 n'a pas abordées. Le groupe était présidé par Chris Lilley, un Écossais recruté par le W3C de l'Université de Manchester. CSS level 2 est devenu une recommandation en mai 1998, et le niveau 3 a suivi probablement vers la fin de 1999. En attendant, HTML n'est pas tout seul à compter sur CSS pour sa présentation. De nombreux formats XML ont également besoin de CSS, et les navigateurs qui sont sorti fin 1998 montrent les premières étapes, encore limitées, vers la présentation des données XML.

Le groupe de travail du W3C, dont le nom officiel est "Cascading Style Sheets and Formatting Properties Working Group", puisqu'ils font plus que CSS, compte environ 15 membres, délégués par les entreprises et organisations membres du W3C. Ils viennent du monde entier, de sorte que les "réunions" se font généralement par téléphone, environ une heure par semaine. Environ quatre fois par an, ils se rencontrent quelque part dans le monde. Récemment, à Provo, Redmond, San Francisco et Paris. A Paris, la réunion s'est tenue dans les locaux d'EDF-GDF, la société française d'électricité et de gaz. Lors de cette réunion, le groupe s'est vu offrir un superbe dîner : de la cuisine française avec vue sur Paris et la Seine - l'un des rares moments glamour dans l'histoire d'un groupe de travail technique. Tous les Français doivent avoir été jaloux ; normalement ils ne reçoivent rien gratuitement de leur fournisseur de gaz et d'électricité.

Navigateurs

La saga CSS ne serait pas complète sans une rubrique sur les navigateurs. S'il n'y avait pas eu les navigateurs, CSS serait resté une proposition ambitieuse d'intérêt académique. Le premier navigateur commercial à prendre en charge CSS a été Internet Explorer 3 de Microsoft sorti en août 1996. À ce moment-là, la spécification CSS1 n'était pas encore devenue une recommandation du W3C et les discussions au sein de l'ERB HTML devaient aboutir à des changements que les développeurs de Microsoft, dirigés par Chris Wilson, ne pouvaient pas prévoir. IE3 supporte de manière fiable la plupart des propriétés de couleur, d'arrière-plan, de police et de texte, mais n'implémente pas une grande partie du modèle de boîte.

Le navigateur suivant à annoncer la prise en charge a été Netscape's Navigator, version 4.0. Depuis sa création, Netscape était sceptique à l'égard des feuilles de style, et la première mise en œuvre de l'entreprise s'est avérée être une tentative timide pour empêcher Microsoft de prétendre être plus conforme aux normes qu'eux-mêmes. L'implémentation de Netscape supporte un large éventail de fonctionnalités - par exemple, des éléments flottants - mais les développeurs de Netscape n'ont pas eu le temps de tester complètement toutes les fonctionnalités qui sont censées être supportées. Le résultat est que de nombreuses propriétés CSS ne peuvent pas être utilisées dans Navigator 4.

Netscape a implémenté CSS en interne en traduisant les règles CSS en snippets Javascript, qui ont ensuite été exécutés avec d'autres scripts. La société a également décidé de laisser les développeurs écrire en JSSS, contournant ainsi entièrement CSS. Si JSSS avait été un succès, le web aurait eu une feuille de style en trop. Heureusement pour CSS, cela n'a pas été le cas.

Pendant ce temps, Microsoft a poursuivi ses efforts pour remplacer Netscape sur le trône des navigateurs régnants. Dans Internet Explorer 4, le moteur d'affichage du navigateur - qui est notamment responsable du rendu CSS - a été remplacé par un module nommé "Trident." Trident a supprimé de nombreuses limitations dans IE3, mais est également arrivé avec son propre ensemble de limitations et de bogues. IE4 ne prend pas entièrement en charge CSS1, ce que Web Standards Project (WaSP) a mis en évidence en novembre 1998 lorsqu'il a publié les «10 principaux problèmes CSS d'Internet Explorer» (Figure 20.1).

Figure 20.1Le projet WaSP fait le suivi de la conformité du navigateur aux recommandations du W3C. L'une de leurs premières critiques a été le support de CSS par Microsoft Internet Explorer.

Impression d'écran de la page WaSP sur M

En plus d'afficher des documents statiques, Trident est également capable de changer dynamiquement les propriétés stylistiques. Par exemple, les éléments peuvent être animés à l'écran en changeant continuellement leurs propriétés en haut et à gauche, créant ainsi "Dynamic HTML" (DHTML). En principe, DHTML est très similaire à JSSS (les deux utilisent des langages de script pour définir les propriétés stylistiques) mais DHTML n'a jamais été commercialisé comme un langage de feuille de style alternatif. En effet, CSS fait partie intégrante de DHTML.

Le troisième navigateur qui s'est aventuré dans CSS était Opera. Le navigateur de la petite société norvégienne fait les gros titres en 1998 en raison de sa taille minuscule (il tient sur une disquette) et parcequ'il est personnalisable tout en prenant en charge la plupart des fonctionnalités des offres plus importantes de Microsoft et de Netscape. Opera 3.5 est sorti en novembre 1998 et supporte la plupart de CSS1. Les développeurs d'Opera (à savoir Geir Ivarsøy) ont également trouvé le temps de tester leur implémentation avant de l'expédier. La suite de tests CSS1, développée par Eric Meyer avec l'aide d'innombrables autres volontaires, a considérablement facilité la tâche des développeurs pour tester et améliorer leurs produits.

Au moment de la rédaction de ce texte, Netscape et Microsoft travaillent d'arrache-pied pour publier leurs prochains navigateurs. Netscape a décidé de remplacer le moteur d'affichage dans Navigator par "nglayout", qui a été écrit de toutes pièces avec CSS comme l'une des bases. Leur nouveau navigateur s'appelle "Gecko" et vous pouvez télécharger des versions bêta ici http://www.mozilla.org. Microsoft a publié des aperçus des versions d'Internet Explorer 5. Certaines améliorations CSS sont déjà en place, et il est prévu que l'initiative WaSP rappellera à l'entreprise qu'il reste encore du travail à faire avant que CSS1 ne soit totalement pris en charge.

Le site web de ce livre contiendra des liens vers les plus récents navigateurs CSS.

Langues

À propos des traductions