The Future of Web Standards: On the Crisis of the W3C

Addendum to c't magazine issue 1/07, page 160

Interview with Håkon Wium Lie

Zur deutschen Fassung ...

Håkon Wium Lie is CTO of the browser manufacturer Opera Software. He introduced his concept of style sheets to the W3C in 1994 and took a decisive part of the work on the CSS specifications. He joined the WHAT WG in 2004 and contributed to their drafts of Web Forms 2.0 and Web Applications 1.0 (also known as "HTML 5").

It took only four years from the first CSS ideas to the completion of the specifications CSS level 1 and 2 in 1998. Today, CSS level 3 is a construction site and the first revision of CSS2 has been in development for more than four years. Has CSS development run out of momentum?

Certainly not. Writing specs is only a small part of the CSS development – writing style sheets is much more important. Since around year 2000, CSS has been an integral part of web authoring and most pages use CSS today. That's quite an accomplishment for a specification that was not part of the original web – only JavaScript has had a similar success.

Part of the reason why CSS has been successful where other specifications have failed is that the W3C CSS Working Group cares deeply about implementations and interoperability. When CSS2 came out in 1998 it was far ahead of implementations. Too far, probably. By scaling the specification back, we have increased interoperability. This benefits the real developers: those who write style sheets, pages and applications for the web.

So, one shouldn't measure success by counting issued W3C Recommendations; success should be measured by use on the web.

Having said all this, I should also mention that I'm very exited about some CSS3 specifications. For example, I'm the editor of Media Queries which allow styling of content for all kinds of devices. Opera pushes the web into lots of new units and Media Queries will help us make compelling content.

If you are a subscriber to the W3C newsfeed, you hear about new Working Drafts almost daily, but there are hardly any completed recommendations. Why has the development of new standards slowed down so much?

The development hasn't stopped, it just takes longer to reach recommendation stage. There are two main reasons for this, I believe.

First, the web has stabilized as a technical platform. Core technologies – HTML, CSS, JavaScript, DOM – are used in a billion browsers. Changing them through evolution takes time. This is a good thing. It means that our documents will live for a long time.

Second, W3C has also evolved. In the early days, turning a Working Draft into a Recommendation was a simple month-long stint as Proposed Recommendation. These days, you have to issue call for comments, answer all the comments, make sure there are two implementations, and so forth. The formal process has become much longer and only specifications that have serious backers end up as Recommendations.

Most of the changes from CSS2 to 2.1 are cancelled features like text shadows or printing features. Have all good things gone into CSS3?

The main purpose of CSS 2.1 is do describe the features web authors can rely on. Unfortunately, text shadows and some other desirable features have not been widely supported and authors can't rely on them yet. These features have therefore been moved to CSS3, but there are still plenty of goodies in CSS 2.1. For example, fixed positioning is there and now that IE finally supports it, authors can start using it for real.

In the six years that have passed since Opera added fixed positioning, we've been busy adding other stuff. Opera Widgets is a great way of writing applications for the web, using web standards!

The CSS1 recommendation stated that "CSS1 is a simple style sheet mechanism", while the CSS2 specification leaves out the word "simple". Has CSS become too difficult for many web designers?

Simplicity has, and still is, an important goal. The CSS2 specification said that "CSS2 is more complex than CSS1, but it remains a simple style language which is human readable and writable.". Also, it's much easier to use CSS today than it was in 1996. Today all authoring tools and all browsers support CSS. I still write all CSS and HTML code in emacs, but some things will never change.

Many designers make things unnecessarily complicated, though. We have seen this for years in HTML and we are now seeing it in CSS as well: layers of historical code continue to be sent across the wire. Many of the tags and style rules have no effect but people are afraid of removing them in case something breaks. This makes it unnecessarily hard to debug documents on the receiving end.

One service I'd really like to see on the web is a simplificator – you submit at URL and it returns a page where unnecessary tags, attributes and style rules have been removed.

W3C standards CSS and XSL both can be used for layout and design. Isn't that like inventing the wheel twice?

XSL is a style sheet language often used in print-oriented production lines. CSS and XSL, although sharing a basic formatting model, are quite different in their approach. XSL is a programming language, CSS is not. Is there a need for both languages? I believe CSS can handle most use cases for XSL. For example, Prince has shown that it's possible to create wonderful print publications with CSS. Others will disagree and argue that you, in some cases, need a programming language.

Instead of forcing the two approaches into one language, I think it has worked well to have two different Working Groups and two different languages. This way, it is easier to reach consensus within the group.

You are one of the members of WHAT WG. Is this working group an anti-W3C? A web standards laboratory? Or even a browser manufacturers' conspiracy?

It's fair to say that the active participants (including myself) of the WHAT WG have been sceptical of some attitudes found within W3C. For example, we didn't think XML was suitable for absolutely all purposes. And we didn't cheer when a member of the HTML Working Group pronounced that "the browser is dead". We wanted evolution rather than revolution. Instead of fighting an uphill political battle inside W3C, we found it easier to start a mailing list and do the technical work. It's a very open group – anyone can join.

In a talk with some W3C officials one year ago, I mentioned WHAT WG – some didn't know it, the rest didn't take it seriously. Now Tim Berners-Lee writes about the "breakaway WHAT WG" and obviously picks up some of your suggestions. Was it high time for an alternative standards organisation?

Not for an alternate organization, but for a change in course. Indeed, W3C has turned around this year. They are now much more open to evolving existing standards rather than only focusing on new things. The change in course is, in part, due to the WHAT WG. It remains to be seen if "HTML5" is issued by W3C with WHAT WG backing or by some other constellation. But I believe it will happen.

Is there a chance that WHAT WG's concepts become widely used standards without the support of Microsoft?

One of the key beliefs in the WHAT WG is that backwards compatibility is important. And there are lots of IE browsers out there. If content doesn't degrade gracefully for older browsers, authors will not use it. The WHAT WG specifications have been created with this in mind and don't depend on unrealistic demands that everyone upgrade their browser. Now!

However, I hope Microsoft will catch up technically with other browsers. It took them five years to go from IE6 to IE7 and they still use the same old rendering engine (known as Trident). They've given it a paint-job, but it's used car by now – a Pinto, not an Explorer.

May I suggest trying Opera instead?

Does WHAT WG dislike W3C's "XMLification" of web standards? Would you prefer HTML5 to XHTML2?

Personally, I don't think XML is suitable for all purposes. CSS is one example. CSS was was developed before XML. When XML came along, people started asking for an XML syntax for CSS. I think the CSS syntax is more suited for a style sheet language than the XML syntax.

XHTML2 has some very good ideas that I hope can become part of the web. However, it's unrealistic to think that all web authors will switch to an XML-based syntax which demands that browsers stop processing the document on the first error. XML's draconian policy was an attempt to clean up the web. This was done around 1996 when when lots of invalid content entered the web. CSS took a different approach: instead of demanding that content isn't processed, we defined rules for how to handle the undefined. It's called "forward-compatible parsing" and means we can add new constructs without breaking the old.

So, I don't think XHTML is a realistic option for the masses. HTML5 is it.

I can't help but asking this, too: Is Opera's CTO Håkon Lie always happy with the work of W3C contributor Håkon Lie?

That's a great question! For the most part, the CTO is happy. CSS is a strategic specification for the web and therefore for Opera. Arguments sometimes arise over consistency of specifications versus supporting Opera's initial implementation. Also, the W3C contributor sometimes spends time on specifications that seem less relevant for the CTO. For example, the W3C contributor is passionate about making CSS work well for printing. Fortunately, he has support for this quest from a third person, namely Håkon Lie, the director of YesLogic. YesLogic makes the Prince formatter which converts web content to PDF by way of CSS.

Oh, one more thing. Aren't you going to ask me about microformats? Microformats are very cool. They allow authors to add semantics to existing documents without requiring browsers to support new specifications. The best specification is the one you don't have to write.