Édition Nº35 du 15 janvier 2013 Retour au sommaire

Le W3C vu de l’intérieur

Vu depuis le quai, le fonctionnement d’une organisation telle que le W3C semble souvent assez flou. Nous vous invitons donc à monter à bord le temps d’un article afin que Dominique Hazaël-Massieux vous raconte ce qu’est plus précisément le W3C, son mode d’organisation, etc.

Arrêts prévus :

La plupart des lecteurs du train de 13h37 ont certainement une vague idée de ce qu’est le W3C, mais il est fort probable que pour une majorité d’entre vous, cette idée reste très vague.

Je travaille au W3C depuis une douzaine d’années et je me propose donc d’apporter un peu de clarté sur le sujet. Mon espoir est que ces explications vous permettront de mieux comprendre comment les nouvelles fonctionnalités du Web voient le jour, et de tirer avantage des opportunités qui vous sont offertes pour influer sur – ou accélérer – l’arrivée de ces technologies.

Le W3C, qu’est-ce c’est ?

Le W3C, raccourci pour World Wide Web Consortium, est une organisation internationale à but non lucratif. Elle a été fondée et est toujours dirigée par Tim Berners-Lee, l’inventeur du Web, dans le but d’accompagner les évolutions de celui-ci.

La plus grande partie des travaux du W3C est axée autour de la standardisation des technologies qui permettent au Web de fonctionner. Ces technologies comprennent (sans s’y résumer) les différents langages auxquels les développeurs Web « front-end » se confrontent quotidiennement : HTML, CSS, SVG, le Document Object Model (DOM) et de nombreuses APIs JavaScript qui augmentent les capacités des navigateurs. Ces technologies forment ce que nous appelons la plate-forme Web ouverte (Open Web Platform), et que beaucoup se contentent aujourd’hui de désigner sous le nom d’HTML5. Le W3C est aussi bien connu pour ses travaux réalisés autour de l’accessibilité du Web, en particulier ses Web Content Accessibility Guidelines (WCAG pour les intimes).

Bien que cet article se focalise particulièrement sur les technologies à destination des navigateurs Web, il est intéressant de noter que le W3C développe des standards et des bonnes pratiques dans d’autres domaines : le Web sémantique, les technologies XML, le respect de la vie privée, l’internationalisation, etc. Le W3C est même à l’origine des technologies VoiceXML, qui font tourner la plupart des systèmes téléphoniques automatisés (« appuyez sur la touche * de votre téléphone ») !

Comment fonctionne le W3C ?

Le W3C est un consortium d’organisations : autrement dit, c’est une association dont les membres ne sont pas des individus, mais des organisations. Ces organisations (trois cent quatre-vingts à ce jour) sont de types, de tailles et d’origines extrêmement différents : on y retrouve naturellement les géants du Web et de l’industrie informatique (Google, Apple, Microsoft, IBM, Facebook, etc.), mais aussi, et de plus en plus, des entreprises venant d’autres industries (opérateurs téléphoniques, fabricants d’appareils connectés, entreprises de médias, etc), des entreprises de taille nettement plus modeste (notamment depuis la mise en place en début d’année 2012 d’un programme à destination des startups), mais aussi des universités, des agences gouvernementales, des associations, etc. Tous les membres du W3C, quelle que soit leur taille ou leur origine, bénéficient des mêmes droits.

Les membres du W3C se retrouvent sur les cinq continents et, bien qu’il y ait eu historiquement une forte concentration aux États-Unis, et dans une légère moindre mesure en Europe, l’Asie est aujourd’hui une source de plus en plus importante de contributeurs à nos travaux.

L’appartenance au W3C permet à ses membres de participer à la définition et aux travaux des différents groupes de travail qui, comme je l’évoque plus en détail ci-dessous, sont les chevilles ouvrières de nos travaux de standardisation. Concrètement, cette participation se traduit par la désignation d’un ou plusieurs représentants au sein de ces groupes de travail.

Cela étant, au-delà de la participation formelle aux groupes de travail, le W3C offre aussi une opportunité relativement unique de s’insérer dans une communauté de gens passionnés par le Web et prêts à mettre de côté, au moins partiellement, la compétition économique auxquelles se livrent parfois leurs employeurs pour l’amélioration de l’édifice historiquement unique que constitue le Web.

Pour développer et animer cette communauté, le W3C dispose d’une équipe d’environ soixante-dix employés, répartis entre l’Amérique du Nord, l’Europe et le Japon. En Europe, la majorité des employés se trouvent en France, autour de nos bureaux situés à Sophia-Antipolis près de Nice. Les cotisations acquittées par les membres du W3C (et dont le prix varie en fonction de leur chiffre d’affaires) sont utilisées en majeure partie pour payer les salaires de cette équipe.

Notre responsabilité est de s’assurer que les travaux menés au sein du consortium sont en accord avec la vision du Web défendue par le W3C : un Web disponible partout, pour tous, sur autant d’appareils que possible, et fournissant une plate-forme de création riche et de confiance. Il nous incombe aussi de faire en sorte que les nouvelles fonctionnalités du Web soient développées dans une approche ouverte à tous et collégiale, et que ces fonctionnalités soient utilisables sans avoir à payer de licences de brevets (ce qui se révèle rarement être une mince affaire). Le tout, bien sûr, aussi rapidement que possible, compte tenu du rythme effréné avec lequel le Web et ses « concurrents » évoluent, et en maintenant une certaine cohérence globale.

Comment sont développés les standards du W3C ?

Les travaux de standardisation du W3C sont menés par différents groupes de travail (une soixantaine à ce jour). Chaque groupe de travail est responsable d’une ou plusieurs spécifications, tel que défini dans la charte du groupe. Les membres du W3C participent aux groupes de travail qui les intéressent le plus (aucun ne participe à tous à ce jour).

Chaque groupe de travail est animé par un ou deux « présidents », issus d’une organisation membre du W3C et assistés par un expert technique du staff W3C. Les participants du groupe de travail se réunissent — au minimum sur une mailing list, souvent complétée par une réunion téléphonique régulière, et des réunions physiques plus espacées — pour déterminer comment telle ou telle nouvelle fonctionnalité devrait voir le jour. Le résultat de ces discussions est formalisé sous la forme de documents, appelés « technical reports ».

Ces spécifications sont ensuite développées en suivant le processus de standardisation du W3C, dont les différentes étapes permettent de s’assurer que les dites spécifications ont été soumis à une analyse critique par les parties intéressées, qu’elles sont effectivement implémentées, et que ces implémentations fonctionnement de manière similaire. Une caractéristique importante de ce processus est qu’il se fonde sur la recherche du consensus des participants : lorsque plusieurs perspectives s’opposent sur l’évolution de telle ou telle technologie, les groupes se doivent de réduire ou éliminer autant que possible ces oppositions en cherchant les origines de ces différences, afin de les surpasser. En cas d’oppositions qui ne peuvent pas être surmontées au sein du groupe (une occurrence heureusement relativement rare), il revient au directeur du W3C, Tim Berners-Lee, de déterminer comment débloquer la situation.

La taille des groupes de travail varie assez largement, d’une quinzaine de personnes à plus de cinq cents dans le groupe HTML (qui reste de ce point de vue une exception). En pratique, le nombre de personnes réellement actives dans un groupe de travail dépasse rarement la trentaine, et ce nombre se réduit souvent à quatre ou cinq personnes pour une spécification donnée.

La quasi-totalité de ces groupes de travail opèrent en public : leurs mailing lists, les comptes-rendus de réunions, les brouillons de spécifications et a fortiori les spécifications elles-mêmes sont accessibles à tout un chacun, membre du W3C ou non. Une bonne partie du processus de standardisation auquel les groupes adhèrent consiste à s’assurer que les groupes ont correctement pris en compte les commentaires de l’ensemble de la communauté du Web.

Pourquoi cela prend-il tant de temps ?

La plupart des développeurs Web (et je me compte dans ce nombre) ont râlé au moins une fois (et en général, bien plus) à cause des délais nécessaires avant la disponibilité des nouvelles fonctionnalités essentielles à leurs travaux. Et il est vrai qu’il faut compter souvent plusieurs années entre les débuts des travaux sur une technologie donnée et sa standardisation finale. Dans les faits, certaines technologies sont disponibles dans certains navigateurs bien avant la fin du cycle de standardisation, mais il n’en reste pas moins que les délais pour qu’une technologie soit suffisamment éprouvée pour qu’elle gagne ses galons de standardisation restent sensiblement plus longs que ceux que nous préférerions.

Il y a de bonnes et de mauvais raisons à ces délais.

Pour comprendre les bonnes, il faut à mon avis prendre en compte les spécificités de ce qu’est le Web : une plate-forme entièrement ouverte, disponible de manière complètement indépendante aux travers de toute une panoplie de logiciels (les navigateurs naturellement, mais aussi les moteurs de recherche, les serveurs Web, les applications hybrides, et bien d’autres encore), sur toute une panoplie d’appareils (ordinateurs, téléphones, tablettes, télévisions, consoles de jeux, liseuses numériques, automobiles, …).

Qui plus est, cette plate-forme est bâtie pour durer : si la plupart des logiciels abandonnent toute ou partie de la compatibilité ascendante au cours de leur développement, le Web a une vocation historique capitale, rendant impérative la possibilité de lire dans cent ans les pages Web écrites il y a vingt ans.

Enfin, le succès du Web (aussi bien auprès de ses utilisateurs que de ceux ayant bâtis leurs services et produits autour de ses technologies) repose en grande partie sur les assurances qu’il fournit en matière de sécurité et de respect de la vie privée : il y a peu de raisons de craindre de suivre un lien inconnu sur le Web, alors qu’il est à peu près impensable d’installer un logiciel ou une application sans un minimum de vérification préalable quant à son origine et son exécution.

Je suis personnellement convaincu que ces spécificités sont essentielles et qu’il convient de les préserver aussi bien que possible. Mais ces spécificités induisent des contraintes dans la conception de ces nouvelles technologies que nous attendons tous avec impatience, et ces contraintes elles-mêmes nécessitent concertation, réflexion et expérimentation pour obtenir un résultat satisfaisant.

Il y a bien sûr aussi les mauvaises raisons qui expliquent les délais de nombreux autres projets : contrairement à une rumeur largement répandue, la communauté du W3C est constituée d’êtres humains qui parfois n’utilisent pas leur temps de manière la plus efficace. Il arrive qu’ils aient perdu de vue leurs objectifs initiaux, qu’ils se laissent embarquer dans des guerres d’ego ou de portefeuilles, ou bien encore qu’ils ne perçoivent pas correctement les priorités de ce que le reste de la communauté attend.

Mais au final, la principale raison de délai est, au W3C comme ailleurs, une affaire de ressources : la taille de la communauté des gens capables et disponibles pour les différentes tâches nécessaires à la standardisation est largement inférieure à celle qui permettrait une parallélisation optimale de tous ces travaux.

Il me semble aussi important de mettre en perspective l’impatience naturelle que nous ressentons pour telle ou telle amélioration : bien souvent, une fois disponible, ces améliorations passent rapidement au stade du banal, voire du kitsch. En ce sens, aussi pénible qu’un délai de deux ou trois ans puisse être, il est sans doute de peu d’importance comparé aux dizaines (et plus) d’années pendant lesquelles cet ajout de fonctionnalité sera utilisé sous toutes ces formes.

Qui détermine les futurs standards du Web ?

Nous venons de voir comment telle ou telle technologie est mise en place par les groupes de travail du W3C, mais qui décide qu’une nouvelle technologie doit être développée ?

Si, formellement, la décision de lancer de nouveaux travaux est prise par le directeur du W3C, en pratique, celle-ci résulte d’une variété de sources d’idées que le staff du W3C a pour mission de susciter et de surveiller :

  • les membres du W3C font remonter les besoins qu’ils voient émerger dans le cadre de leurs opérations ;
  • les groupes de travail en activité ont évidemment en général des idées sur des technologies qui compléteraient utilement leurs travaux en cours ;
  • le W3C organise régulièrement des ateliers (« workshops ») ouverts à tous, visant à recueillir les opinions des parties intéressées quant à l’opportunité de démarrer des travaux sur tel ou tel sujet ;
  • les employés du W3C essayent de s’impliquer autant que possible au sein de différentes conférences et événements publics qui leur permettent d’identifier les manques les plus flagrants.

En complément de tout cela, le W3C a lancé il y a un peu plus d’un an un nouveau programme destiné à faire émerger des idées d’une communauté beaucoup plus large que celle traditionnellement impliquée dans ses travaux de standardisation : les groupes communautaires (Community Groups) ; ce sont des groupes ouverts à la participation de tous, et que quiconque (membre du W3C ou non) peut proposer de créer. Ces groupes ont été conçus pour que la transition des travaux effectués en leur sein vers la standardisation officielle au W3C soit la plus simple et la plus souple possible. Il s’agit donc d’offrir une rampe de lancement pour des idées innovantes, ouvertes à tout un chacun.

Il y a, à ce jour, plus d’une centaine de groupes communautaires, de tailles et de succès très variables. Si la création d’un groupe communautaire n’est certes pas une condition suffisante pour voir une idée gagner le momentum nécessaire à sa standardisation, il y a déjà quelques exemples de groupes qui ont réussi ce défi, ce qui semble confirmer l’intérêt de cette démarche, tant pour ceux qui ont des idées à proposer que pour le W3C, et le Web en général. À titre d’exemple, les travaux autour de l’élément <picture>, une des solutions proposées pour permettre la mise à disposition d’images en fonction de la résolution de l’écran de l’utilisateur, ont démarré au sein d’un groupe communautaire avant qu’il soit « promu » comme spécification du groupe de travail HTML.

Est-ce que je peux participer aux travaux du W3C ? Comment ?

Il y a en effet de très nombreuses façons de s’impliquer dans les travaux du W3C, en fonction de vos intérêts et de vos possibilités.

Pour ceux qui aiment suivre les technologies en cours de préparation et comprendre leur intégration aux navigateurs, la relecture des spécifications techniques et l’envoi des commentaires aux groupes de travail appropriés sont extrêmement utiles pour identifier les manques ou les erreurs. Toutes les spécifications indiquent dans leur préambule comment et à qui envoyer les commentaires sur la dite spécification.

Les plus aventureux peuvent s’abonner à une ou plusieurs des mailing lists que les groupes de travail utilisent pour leurs discussions techniques ; le niveau d’activité et la technicité des discussions rendent l’exercice parfois difficile, mais toujours extrêmement formateur.

Pour ceux qui veulent partager leur compréhension des différentes technologies du Web, qu’elles soient standardisées ou pas encore, au W3C ou ailleurs, le W3C a lancé, il y a quelques semaines, en collaboration avec certains de ses membres, WebPlatform.org, un site collaboratif, neutre, de documentation des technologies Web. Le site est encore en alpha, ce qui veut dire que beaucoup reste à faire : c’est une occasion idéale pour exercer un rôle majeur dans cette communauté naissante.

Pour ceux qui se battent quotidiennement contre les différences d’implémentation entre les navigateurs pour telle ou telle technologie, une excellente façon de faire bénéficier tout le monde du fruit de ces batailles est de les transformer en cas de tests et de les soumettre au W3C. Cela permet non seulement de faciliter l’identification de ces problèmes d’interopérabilité, mais aussi de s’assurer que la spécification correspondante est suffisamment claire sur le problème identifié. Le formalisme et le processus pour créer et soumettre des tests reste aujourd’hui quelque peu ardu, mais nous travaillons à l’améliorer, et j’invite cordialement ceux qui seraient intéressés à me contacter pour les guider. Il existe par ailleurs une série d’évènements appelés « Test the Web Forward », ouverts à tous, qui servent précisément d’occasion pour faciliter la création de cas de tests au plus grand nombre.

Pour ceux d’entre vous qui ont une idée d’évolution du Web qu’ils veulent confronter à la réalité, les groupes communautaires sus-évoqués sont une très bonne façon d’exposer et de bâtir une communauté autour de leur idée, dans la perspective éventuelle d’une standardisation ultérieure.

Enfin et surtout, pour ceux qui souhaitent influencer directement l’évolution du Web, participer plus profondément aux travaux des groupes de travail, et plus généralement s’intégrer à cette communauté de passionnés du Web, sachez que n’importe quelle organisation, et en particulier la vôtre, peut devenir membre du W3C !

Toutefois, je me dois de vous donner deux mises en garde :

  • les premiers rapports avec certains groupes de travail peuvent se révéler quelques peu abrupts ; comme dans la majorité des communautés principalement virtuelles, on trouve sur de nombreuses mailing lists des gens impatients, discourtois, trollesques, et parfois bizarres ;
  • cette première barrière une fois passée, la participation aux développements du Web peut se révéler très rapidement extrêmement addictive : vous savez quand vous entrer dans cette communauté, mais il est difficile de prédire quand (ou si) vous en ressortirez !
Le W3C vu de l’intérieur

Note de cet article : 4 / 5

Pour pouvoir noter les articles, vous devez voyager avec un billet (c'est gratuit !).
Toutes les infos sur la page d'abonnement !
Déjà inscrit ? Connectez-vous.

Dominique Hazaël-Massieux travaille au W3C depuis 12 ans, et il y est actuellement responsable de l'activité Web mobile. Il est plus particulièrement en charge des groupes de travail Device APIs et Web Real-Time Communication. Ces deux groupes travaillent à rendre possible l'accès depuis les navigateurs Web à de nouvelles fonctionnalités via des APIs JavaScript : appareil photo et camera, batteries, carnet d'adresses, video chat, etc. En parallèle de ses travaux de standardisation, Dominique développe des outils et des applications dans lesquels il met en œuvre les différentes technologies développées par le W3C.

3 réactions à cet article (RSS)

Marie-Claire Forgue

#1

Et pour ceux qui souhaitent apprendre les technos Web de l’intérieur, embarquez dans le wagon restaurant du W3C, côté cuisine. Les chefs cuisiniers font partie des meilleurs. Ils vous guideront pas à pas et à votre rythme dans l’application de recettes de sites Web à la sauce mobile, et/ou dans la confection de belles applications Web mobiles à cuire dans tout type de moule à gâteaux (cuisson homogène et démoulage impeccable garantis). D’autres cours de cuisine sont en préparation sur W3DevCampus. Embarquez vite sur nos prochains cours en ligne !

Trop tard pour réagir... ;)

Cet article a plus de 30 jours, il n'est donc plus possible d'y réagir.