Last week I was privileged to be invited into the heart of where the World Wide Web is defined – I was to be an observer in the latest CSS Working Group’s face-to-face meeting.
The CSS Working Group (CSS WG) is the team of independent experts and employees from W3C member organisations (including Apple, Microsoft and Google) who write and maintain the standards for all the CSS we use on a daily basis. Almost everyone in the group is a volunteer, contributing in their spare time, or as a part of their day job with the blessing of their employers.
Six continents were represented by the folks in the room. This means that much of the CSS WG’s work is done remotely, but three or four times a year they get together to resolve particularly thorny, contentious or impactful issues face to face. Resolutions that will potentially affect us, as web designers, for years to come. It was fascinating to see how those decisions were arrived at, and to be able to make a modest contribution to some of them along the way (as anyone can do actually – more on that later).
I seated myself next to Rachel Andrew, an Invited Expert of CSS Grid fame. The first piece of advice Rachel gave me was to open up the IRC channel which would be used to share links and continually minute proceedings (thanks to the indefatigable Dael Jackson). If you’re unaware of IRC you can think of it as a lightweight precursor to WhatsApp groups or Slack channels, predating the Web.
The first activity performed by the group was the most efficient round of introductions I had ever encountered. With each person announcing themselves in the room and on IRC as “Rossen Atanassov, Microsoft”, “Richard Rutter, observer, Clearleft”, etc., we got through 35 people in less than 2 minutes.
The agenda for the three days had already been agreed and shared through the CSSWG wiki, so I was aware of what was to come. Almost all the issues addressed were opened in Github, with an hour or more allocated to a particular CSS module or other area of the overall specification. Each issue required a particular action or answer, such as “How do we allow for paragraph-level line breaking?” and “Should we implement or unship word-break:break-word?” and even “Who defines box-sizing?” (yes the box model ambiguity still rumbles on.)
The room was refreshingly quiet and respectful, with just one person speaking at a time (mostly). There were a few key voices who were ever-present in the discussions, but for the most part each person got involved when their area was raised. Otherwise folks were silent, keeping on top of things through IRC, with half an ear on proceedings, seemingly getting on with other business. Just occasionally the restrained voices would get raised, ears would prick up and heads would lift above laptops:
— There’s no need to make it personal, I'm making a forward looking statement where if we see this in the future it behooves us to pay attention.
— Right let’s just move on.
— We’ll resolve to add an issue and a fix for 2.1 to disambiguate width for inner and outer width. Any objections?
Just as in that snippet of conversation, all discussion worked towards a solution or a proposal. These were phrased very specifically as ‘resolutions’ with each one being opened up for objections and passed if there were none. It was a remarkably efficient way to gain consensus, almost certainly helped by much of the hard thinking being done prior to the meeting. In the spirit of openness – a founding principle of the Web, the resolution and the relevant part of the IRC log would then be posted to the originating Github issue.
The consensus building is vital. Representatives from all the major browsers were in the room, collaborating closely by proposing ideas and sharing implementations. But most fundamentally they were agreeing together what should go in the specifications, because what goes in the specs is what gets built and ends up in the hands of users.
A day and half of proposals, discussions and resolutions later, my turn came. It was time to resolve a whole afternoon’s worth of font and text issues. I chimed in with a few contributions and got to see first hand why some of my variable font tutorials would now need updating, as it was resolved to modify the CSS Fonts Module specification in a number of ways, and hence to change some current browser implementations (definitely for the better, so I’ve no complaints on that front).
All in all it was fascinating to see inside the CSS Working Group, and I’m extremely grateful to Elika for inviting me. We all have a lot to thank this group of smart, extremely hard working folk. One of the best ways any of us can do so is to contribute to the discussions on the W3C’s CSS WG Github issues. It was clear to me that all comments from web designers and developers (“authors” in W3C parlance) are welcome and form part of the debate leading to better CSS standards, so quietly and respectfully do join in the conversation.
* * *
For more CSS, typography and variable fonts fun join me and a fantastic line-up of design experts from around the world at Ampersand, the web typography conference, now in its fifth year.