Cet article est issue d’une série d’article sur le fonctionnement du CSS Working Group au W3C. L’article original a été écris en anglais par Fantasai.

Sources d’innovation

Il y a eu de nombreux débats pour savoir si les standards devaient découler des implémentations ou si ce sont les implémentations qui devaient découler des standards, ou même que ce devrait être les web designers qui devraient écrire les standards du web. A mon avis, et vu comment le CSS WG fonctionne, le débat est sans intérêt. Le standard CSS a réussi à intégrer avec brio des concepts issues des trois sources et de leurs différentes combinaisons, toutes ayant participées activement à former CSS.

CSS dans sont ensemble est un bel exemple de technologie créées par les standards. Il a été originellement conçu par Håkon Wium Lie et Bert Bos au W3C. Plus tard, il a été implémenté dans Internet Explorer, Amaya, et finalement à peu près partout sur le web. Il incorpore à la fois des propositions qui ont été faites par des individus sur la liste de diffusion www-style, des propositions qui ont été faites par des développeurs sur la base d’une implémentation existante, et des propositions qui ont été faites par le CSS WG lui-même en réponse à des demandes de fonctionnalités ou à un besoin perçu. Dans de nombreux cas, la fonctionnalité a été initiée dans une partie, a été adoptée et développée par une autre, et a fait la navette jusqu’à ce qu’elle devienne une spécification et soit implémentée.

Prenez par exemple le module CSS3 Backgrounds and Borders.

Ce qui a été amené par les implémenteurs :

La propriété border-radius et toute ses variantes ont été implémentées en premier par Mozilla comme une extension pour les interfaces utilisateurs de ses produits. Elles ont ensuite été adoptées dans CSS3 et étendus par le CSS WG pour autoriser les courbes elliptiques.

Ce qui a été amené par les web designers :

La possibilité d’assigner des images aux coins a été demandée à l’origine sur www-style par Robert Koberg. Ceci a lancé une discussion que les participants de www-style ont eux-même scindé en plusieurs propositions. L’une d’elle a finalement été intégrée dans le premier brouillon de CSS3 Borders. Cette proposition a ensuite été raffinée par le groupe de travail pour donner la propriété border-image que nous connaissons. On lui a donné la possibilité de déborder sans altérer les positionnement des boites et elle a été découpée en plusieurs propriétés unitaires suite aux commentaires des web designers. Les implémentations ont suivi.

Ce qui a été amené par les éditeurs de spécification :

Les arrière-plans multiples sont un exemple de fonctions apportées par le CSS WG afin de combler un besoin perçu dans la communauté des auteurs. La propriété box-shadow, tout comme text-shadow avant elle, sont d’autres exemples de fonctions conçues dans une spécification puis implémentées (bien) après.

Si nous regardons au niveau des modules : Selectors Level 3, CSS Multi-column Layout, Media Queries, et CSS3 Color ont tous été spécifiés avant d’être implémentés, tandis qu’avec CSS Transitions, CSS Animations, et CSS 2D Transforms la spécification suit (et même traîne derrière) les implémentations. Pour la plupart des modules, c’est un mélange, et la conception de nombreuses fonctionnalités est le résultat de contributions de différentes sources. Flexbox, par exemple, a commencé avec l’implémentation de Mozilla, mais a été largement révisé depuis sous l’impulsion de Tab Atkins. CSS3 UI inclut des fonctionnalités qui ont été conçues puis implémentées, conçues mais jamais implémentées et implémentées puis standardisées. CSS3 Text comporte des fonctions provenant de IE6, XSL:FO, PrinceXML, et d’autres propositions d’internationalisation, dont certaines ont été si modifiées qu’on ne les reconnaît plus alors que d’autres sont quasiment intactes. CSS3 Conditional Rules inclue une règle en @ qui a commencé sa vie en tant que fonction propriétaire (@document) et une règle en @ qui a été conçue par le W3C en réponse à de très fortes demandes des web designers (@supports).

À mon humble avis, prétendre que qu’une innovation efficace ne peut venir que d’une seul source c’est être complètement ignorant de la réalité de la création d’un standard web. La force de la standardisation par le W3C, ce n’est pas de faire collaborer les implémenteurs ni de rassembler les web designers autour d’une table ni de mettre des spécialistes de la standardisation au travail. La force de la standardisation par le W3C c’est de les amener à tous collaborer.