Recently my blog was added to the Planet Mozilla aggregator thanks to a nomination from Asa Dotzler. So if you're reading this post over there, hello, and thanks for having me. Be forewarned that not all my posts will be about open web standards - you'll likely see a bunch of personal posts as well. It is my personal blog after all and I do tend to write about whatever is on my mind.
Four months ago I started contracting at Mozilla to work on several standards in the areas of Web Applications UI and Web Identity, as well as reach out to the broader web design and development communities on those same topics.
Rather than provide a broad but shallow list of things done etc., I thought it would be more interesting to take a moment to explore one particular question that I've heard from the community from time to time, not in these exact words, but in general:
Why do CSS spec improvements take so long?
The answer involves quite a few things, but perhaps it is time we start talking about them, maybe even just one or a few at a time.
First and foremost, editing W3C drafts is a royal pain.
Nevermind the process (or typical W3C member costs!) for joining a working group, or (re)chartering a working group, or IP battles, or even the frustrations of getting CVS working with W3C's setup (I'm working on making that less painful, see related resource: W3C CVS For Dummies), all of which contribute to an excessively high barrier to materially participating in the evolution and iteration of W3C specs ( = very few people have the time, money, focus, persistence to do so - I for one am fortunate that Mozilla, with their mission of supporting the Open Web, has hired me to do so, and thus I am able to spend a lot more time on them).
Here are three recent CSS drafts that I've edited as a case study to explore some of the challenges.
- CSS Style Attributes - a fairly simple draft, documenting how the 'style' attribute in HTML works (and in any other language that has one as well). This draft is largely stable, done, etc. and now just waiting to be officially published as a Candidate Recommendation (CR). What's left?
- According to the W3C Process Document, numerous specific tasks - most of which reasonably asks for public documentation.
- In this case, the last remaining step is to schedule a teleconference with the W3C Director, presumably to make sure the aforementioned steps have been taken, and then get a date for publication. Typically the W3C staff contact for the working group arranges the telcon. If they or the Director are particularly busy, this can take potentially weeks.
- CSS Color Module Level 3 - this draft is more extensive, but has already been through a Candidate Recommendation stage, then taken back to Last Call, and with a test suite and implementation reports demonstrating interoperability, it should be ready for publication as a W3C Proposed Recommendation (PR). Once again, the W3C Process regarding a PR provides the necessary steps, which typically require a teleconference with the Director, again, arranged by the working group's W3C staff contact. Similar challenges to the previous draft, however, more of them, as PR is a higher bar to meet. Because there's more work to do to get CSS3 Color to PR, I've decided to keep a list of the CSS3 Color tasks to PR on the CSSWG wiki.
- CSS3 Basic User Interface Module - this draft was published as a CR many years ago, and since then, browsers have implemented most of it, as well as a few other CSS UI related features such as the 'pointer-events' property. However, CSS3 UI faces much more difficult obstacles than the other two drafts - it's no longer officially in scope for the working group.
For the first two drafts, CSS Style Attributes and CSS3 Color, what's taking so long now is essentially a set of bureaucratic checks and balances. I'm fairly confident they'll be taken care of in days or at most a few weeks.
For CSS3 UI, the problem started because in the previous rechartering of the W3C CSS Working Group, doing work on "user interface" was completely dropped. That means that until the group recharters again, it can't publish any official drafts pertaining to that subject area.
Fortunately, the W3C CSS Working Group discussed rechartering at the recent meeting in Oslo, and decided to re-include "user interface". With any luck the rechartering process will complete relatively soon, and by sometime in November, the groups will be able to officially publish a new draft of CSS3 UI. Until then, you'll have to just keep up with the above-linked unofficial public editor's draft.
And these are just three out of numerous CSS3 drafts in development. Each of which requires a diligent editor (or a few!), familiar with W3C's CVS setup, that regularly updates the editor's draft, and keeps up with emails, issues, etc. related to their draft(s), nevermind figuring out what specific next steps need to be taken to advance the draft(s) along in the W3C's process. It's a lot of work for just a few people, no wonder it takes so long for CSS drafts to make progress!
I hope that sharing some of these details has helped at least provide a better understanding of some of the challenges with pushing standards forward at W3C. I think there's a lot of potential for improvement. For example, the CSS Working Group has been doing a lot to encourage more community participation, e.g. with requests for contributions to test suites to help demonstrate interoperability.
There's probably more that we could do though, with spec-editing, and perhaps with help simplifiying the overall process as well. If you've got suggestions for the CSS Working Group, or W3C in general (e.g. regarding the W3C's processes), perhaps write up a short blog post, and tweet it, referencing @csswg and @w3c respectively.