Molly Holzschlag recently posted an article about stopping the development on HTML 5 and XHTML 2.0 until implementations are consistent for HTML 4.01 and others. It is surprising because one of the main goals of HTML 5 is exactly this, a “CALL for consistent implementation of these most basic specifications in all current browsers and devices to this point”.
Let’s fix bugs
Then many developers go on in comments, saying “yeah, we should do that, stop everything.” Me too, I just want to fix bugs. I’m no implementers of a Web browsers, but I have reported bugs to implementers. I have also in my professional activity developed quite a lot of commercial and academic Web sites, before working at W3C.
But how do we fix bugs?
To fix bugs, an implementer looks at the specification, either HTML 4.01, DOM HTML Level 2, CSS 2.0, etc. and has to interpret what’s written into it. Sometimes specifications have ambiguities, sometimes an implementer goofed and made a mistake.
When the specification is not clear, what do we do? We create an errata, or if it’s a too big issue, we write a clearer specification for the implementer… HTML 5.
Trickier is the case of a bug in the implementation which becomes widely used. The bug somehow became a feature (Remember CSS rules for selecting browsers?). It means the vendor has to take the difficult decision by fixing the bug to break Web sites.
Here I have talked only of valid content.
The Valid Web?
What do we do with 95% of the Web? I’m talking about the invalid content. First the HTML 4.01 doesn’t define normatively what to do with invalid content and how to parse it. Common browsers have never been validating SGML parser, they all implemented a parsing engine which has never been specified in a document, until… HTML 5. So to have interoperability, parsing HTML has to be defined, the purpose of this specification.
Then what do we do when we have parsed an invalid document.
- Do we display the document at all?
- Do we send a big red warning sign for the user saying the Web site is crap?
- Do we recover silently? but then how do we have interoperability if the content is unpredictable?
How many developers serve their XHTML with
application/xhtml+xml? Not many Web developers do. What do we do about invalid CSS?
If you read me and you are the Web developer of a big company Web site. Please do follow these steps:
- Make your content XHTML 1.0 Strict or XHTML 1.1
- Serve your content as application/xhtml+xml
Then tell me how long it took before you got a phone call or an email.
Fixing bugs in browsers becomes a lot easier when the content is valid and correctly written. How do we fix all these authoring tools? these HTML scripting libraries in python, perl, .Net, etc? How do we fix authors who are writing bad HTML codes? How do we fix this 95% of the Web?
HTML 5 is the start of an answer. It is not the ultimate answer, but it helps a lot to achieve what you are exactly calling for. Getting interoperability.
Maybe you wanted to say HTML 5 without new features? That is the topic of another post :)