June 29th, 2011
Web technologies across the board can make faster and better progress now that the CSS 2.1 specification is a final, completed standard and published as a Recommendation. First, finishing CSS 2.1 unblocks faster progress moving the Web forward with the rest of CSS and other important technologies in the broader W3C HTML5 family. Even more important, the lessons from CSS 2.1 raise expectations for measuring and improving the actual interoperability of Web standards.
Because CSS 2.1 has been “mostly working” for some time, it’s easy to overlook the importance of this milestone that has been in the making for over ten years. It’s exactly because CSS 2.1 is only mostly working that the milestone is so important. We expect our hard drives, monitors, and keyboards to do much more than mostly work. Finishing CSS 2.1 is a turning point for the Web.
Moving the Web Forward, Faster
Finishing CSS 2.1 provides a stable base for the CSS Working Group to move the Web forward with CSS3. The W3C and Web community recently finished work on the CSS 2.1 specification, completing the final step in the standards process (link) and publishing the CSS 2.1 Recommendation (link, link). The W3C published the final CSS3 Color standard at the same time as the CSS 2.1 standard. CSS3 Selectors and many other technologies (link) can now follow quickly – much more quickly than CSS 2.1 took to complete. Last week, at the working group meeting in Japan (link), the community made progress on a number of new CSS3 features including Microsoft’s grid layout proposal, Adobe’s regions proposal, and the flexible box model. Microsoft also proposed a new module for CSS3 Floats and Positioning.
Finishing a standard is an important part of making the technology site ready for developers and consumers. The problems for consumers and developers of prematurely putting unfinished and unstable technologies into products are covered in a previous post. The related (potentially NSFW) video dramatization of the experience for developers received many comments. The diagram below shows many of the W3C HTML5 specifications under development and where they are in the standards process. Stabilizing and finishing these technologies is important to advancing the interoperable Web’s state of the art.
CSS2.1 is the most tested and interoperable Web standard today. Its comprehensive test suite sets the bar for all subsequent standards. The community should expect at least this level of testability going in the future.
Testing is an extremely important part of the standards process for developers, consumers, and businesses. It is a crucial engineering pattern for high-quality, robust, industrial-grade standards to achieve real interoperability. The CSS Working Group and community worked hard to deliver this level of quality. Every feature has two or more independent and interoperable implementations, proving that the standard itself can work. The test suite is comprehensive in its coverage of the specification. The community’s work to make sure that all the suite’s tests are valid and that vendors are aware of and can fix the issues uncovered in their browsers is important to make the standard actually work in practice. For any new feature to work in an interoperable way, the community needs it specified unambiguously in a way that everyone can implement it interoperably and test its correctness.
The HTML5 Test Suite is critical for making sure that the same markup – the same HTML, CSS, and script – works the same across different HTML5 implementations. The community will need more tests than the current nearly 30,000 in the suite. Anybody in the community can contribute tests. To learn more about how to help, read the HTML Testing Taskforce Wiki pages and send questions to firstname.lastname@example.org. We encourage you to help us finish CSS3 modules as well by creating your own tests and submitting them to the W3C.
CSS 2.1’s completion is a milestone for interoperable and powerful Web standards. We’re excited for interoperable Web standards to keep getting better.
— Adrian Bateman, Program Manager, Internet Explorer