Thursday, July 15, 2010

CSS 2.1 Still Not Final

W3CWe all know that CSS3 is not final, nor is HTML5. What you may not know is that the CSS 2.1 specification is also not final.

CSS2 became a W3C recommendation on May 12, 1998, over 12 years ago. Since then the CSS Working Group has been developing CSS Level 2 Revision 1 (CSS 2.1) to correct errors and omissions from the original CSS2 specification. In fact, the CSS2 specification directs people to the CSS 2.1 specification as the de facto current version. CSS 2.1 is a Candidate Recommendation, and has September 8, 2009 referenced as the date of the specification.

The W3C has a slightly confusing progression of a specification before it is considered a "standard." There are essentially four steps:

  1. Working Draft (WD): This is the first time a proposed specification is shown to the public and open for comment.
  2. Candidate Recommendation (CR): Significant features are mostly locked and feedback is requested in how to implement the standard.
  3. Proposed Recommendation (PR): The specification has been submitted to the W3C Advisory Council for approval. Changes at this point are rare.
  4. W3C Recommendation (REC): The specification is final and endorsed by the W3C. This is what the general public considers a final standard.

To clarify, the CSS 2.1 specification is in the second of four stages. For context, the HTML 4 specification was approved on April 24, 1998. The HTML 4.01 specification was approved on December 24, 1999. Between those two versions, little more than a year and a half passed. To give another example, CSS3 is an amalgam of many different modules, some of which are still working drafts, while one (Selectors Level 3) is already a proposed recommendation (third of four steps). What this means is that some aspects of the next level of CSS are already moving along regardless of the status of CSS 2.1

When you look at the names of the editors working on CSS 2.1 (Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie) and compare them to the names on the CSS Selectors Level 3 proposed recommendation (Tantek Çelik, Elika J. Etemad, Daniel Glazman, Ian Hickson, Peter Linss, John Williams), you'll see some crossover. You may even recognize one of those names (Ian Hickson) as prominent in the WHATWG, working on HTML5.

The CSS Working Group recently (June 30) posted an update on CSS 2.1. Here are some of the salient points:

[G]iven the recent changes in the spec - we resolved a lot of issues some of them pretty complicated - we may have to go back to Last Call Working Draft and then back to [Candidate Recommendation] again. That's not a problem and can be relatively fast.

From that statement, the 2.1 specification may have to slide back a step before it can advance.

The W3C relies on a functional Test Suite before it can submit a specification to the next step, this is their expectation on the timing as a result:

[T]he Test Suite and the [Candidate Recommendation] should be available at same time and that time should be, as planned by the WG, after the summer. That should leave us enough time to reach Proposed Recommendation before the end of the year, as expected.

The Working Group does acknowledge that future CSS specifications hinge on what they are doing here:

[CSS] 2.1 must be released as a Web Standard because that's one of the current cornerstones of the architecture of the World Wide Web. We cannot make the next steps, CSS 3 even module by module, happen without 2.1 before.

I read that as a timeline on the soonest that CSS3 can move ahead as well, which is essentially no sooner than the end of 2010.

Update: October 8, 2010

I have been called out! HTML5 guru and all around odd bird has "referenced" me in his latest blog post:

CSS 2.1 “not ready for use” says journalist

Update: June 7, 2011

13 years on and CSS 2.1 is now an official recommendation. Read what I wrote when that decision cam down: CSS 2.1 is Finally Final

Another Update: October 14, 2011

Alexander Ovsov of Web Geek Science offered to translate this post to Romanian, and my ego could not resist. Go learn Romanian and read his translation:

CSS 2.1 nu este încă definitivă.

1 comment: