What would a new CSS validator look like?

Part of Developers

Author(s) and publish date

Skip to 12 comments

A couple of weeks ago I attended, along with a few hundred other W3C participants, the yearly Technical Plenary meeting: a week's worth of meetings, encounters, ideas and exchanges. For many of us, this is the most exciting and exhausting time of the year: it takes quite a lot of stamina to survive through a week intellectual and geeky stimulation from breakfast to bedtime.

Discussions at the TPAC week have born some wonderful fruits we will soon talk about, but today I wanted to share a thought experiment started over lunch on the technical plenary day. Daniel, the co-chair of the CSS Working Group, was waxing lyrical about the power and simplicity of a CSS engine entirely built in javascript: simple, fast, portable across platform, distributed computing needs… What about rewriting the CSS validator that way?

I don't yet have a clear opinion on Daniel's idea, but I like his approach. The CSS Validator is now a 6-years-old piece of software with a level of complexity deriving from years of following the CSS specifications and their evolutions, a reasonably low amount of known bugs, a test suite, and only few souls brave enough to dive into its massive collection of java code.

What if we started again from scratch today? What if today we build a brand new CSS validator? Or, better, what if today we build a brand new tool to help bring better CSS style sheets to the web? What would you build? What would you want to use?

  1. What would the basic features of that tool be? How would they be different from the existing CSS validator?
  2. What would the cool extra features of that tool be?
  3. What engine, what language would you build this tool with?
  4. Would you sacrifice some flexibility for performance and simplicity? For example, one of the very costly features of the current validator is to have different tokenizers, parsers and grammars for CSS1 CSS2 and CSS2.1. Would it be a big loss if the tokenizer and parser were only defined by the latest stable CSS, while keeping the ability to check against each "profiles" (properties and values)?
  • Update 2008-11-12: clarified the last question about “obsolete” CSS 1 and 2.
  • Update 2008-11-12: there is an entry on a public w3c wiki with a section on the vision and roadmap for the CSS validator. Let's record the ideas of this blog conversation on the wiki?

Related RSS feed

Comments (12)

Comments for this post are closed.