CSS2.2 | May 6, 2007
The early pace of CSS development was pretty impressive. First proposed by Hakon Lie in Oct 1994, CSS1 became one of the first W3C recommendations in Dec 1996. Nipping at its heals, CSS2 became an official recommendation in May 1998, just 18 months later. By June 1999 the first 3 draft modules of CSS3 had been published, and in their ground breaking book published that same year, Bert Bos and Hakon Lie postulated that CSS3 would arrive sometime in late 1999.
Over 7 years later, and we’re still waiting. This begs the question, what went wrong?
For a recent conference, I decided to do a talk on CSS3. While researching all the cool CSS3 features modern browsers support, I became intrigued why things were taking so long. I started reading up on the W3C, how it was structured, how you became a member and exactly who was on the CSS working group. I started speaking to existing members and invited experts, reading blog posts from critics and people who had resigned, and looking at every bit of public information I could find.
Organisations pay thousands of dollars to join the W3C, and in return get to set the agenda on forthcoming technologies. While most of the companies involved are eager to shape the future of the internet in a positive direction, they all have their own agendas. Some obviously want to build better browsers, while others are worried about backwards compatibility and engineering problems. Some organisations have a vested interest in technologies such as SVG, while others are more concerned with opening the web up to different platforms like mobile phones and TV. By paying to be a member of the W3C, companies are able to get some of the brightest minds in the industry working on the issues important to their business, and who can blame them?
CSS3 has been in development in it’s current form since early 2000. There are currently 5 modules in “Candidate Release” status, and a further 6 are in “Last Call” status. This sounds good, until you realise that the selectors module was in “Candidate Release” as far back as 2001, and got rolled back to “Last Call” in 2005. Some of the current modules are set to be rolled back, while other modules like the “Box Model” module haven’t been touched since 2002. Of the 40 or so modules, only the TV profile and media queries modules are nearing completion. Lucky us.
There are various reasons why this is taking so long. Many of the issues are technical and can’t be avoided; problems when testing, issues with backwards compatibility and bugs with browser implementation. However there also seems to be a lot of politics involved. Discussions are getting bogged down in the same old arguments that occur time and again, priorities have been given to the wrong areas, and companies have been pursuing their own personal agendas.
Despite being broken down into separate modules, the scope of CSS3 is vast. As well as trying to look at the needs of the current web, the W3C are trying to anticipate the future. One of the big issues is internationalisation, which brings up problems most of us haven’t even heard of before. Tibetan style text justification anybody? Also with the project taking so long, the W3C are working in a constantly shifting environment. What may have been true about the web back in 2000, may not be true today, next year or in the next decade.
My fear is that the W3C has bitten off more than it can chew, and this is having a negative effect on the web. We currently live in a world of live texture mapping and rag doll physics. And yet as web developers, we don’t even have the ability to create rounded corner boxes programmatically. The W3C are so concerned with shaping the future, I’m worried that they may have forgotten the present. Forgotten the needs of the average web designer and developer.
I’ve been thinking about this for a while, and wonder if we need an interim step. If CSS3 is as big and complicated as the development timeline suggests, maybe we need something simpler? Something that gives us designers and developers the tools we need today, and not the tools we need in five or ten years. Maybe we should take all of the immediately useful parts of CSS3 such as multiple background images, border radius and multi-column layout. Maybe we should take all the CSS3 properties, value and selectors currently supported by the likes Safari, Opera and Firefox. Maybe we should take all of this information and build a simpler, interim specification we can start using now. Maybe, just maybe, it’s time for CSS2.2?
Over to you.
Posted at May 6, 2007 7:30 PM