daz, it really is that hard. Bill Gates once called the web browser the single most complex piece of PC software in history.
Microsoft knows about your tests. Not literally, of course. But they know that real-world web authors don't actually read every word of every W3C recommendation, and reflect upon any possible ambiguities in their understanding of them, and seek clarification before proceeding. In the real-world, web authors are mere mortals who look at some samples written by other mere mortals, who skim the 3-page magazine article, and then write code which complies with a common-sense interpretation of the standards.
Microsoft built a browser for these people. Not because these people are anti-standards, but because these people are pro-reality. And there's a heck of a lot more of them than the Hakon Lie types, so if you want to win the web, you'll cater to the masses of web authors, not the elite few.
Mozilla built a browser for hard-core coders. Not just coders, but coders with time to kill. For example, if you had to time to kill, you might have stumbled on the fact that Mozilla has multiple rendering modes. But the default mode is to render with all of Netscape Navigator's historical quirks. If you simply add a DOCTYPE to the top of your pages which lets Mozilla know that you are not expecting backwards-compatibility with Navigator, you'll find that it renders a ton of stuff better. Strictly speaking, W3C has been telling people for many years to use DOCTYPE, but until Mozilla, nothing besides validators actually used DOCTYPE. In the real-world, few web authors know what a DOCTYPE is, and even fewer include them as a habit. Yet if you ask these same web authors whether they want browsers to be standards-compliant, every one of them will insist that they do.
See http://www.mozilla.org/docs/web-developer/quirks/ for details.
Why does Mozilla default to rendering as crappy as Navigator? Despite it being written from the ground up with the desire to support standards, most of the "open source volunteers" who did the bulk of the hard work on Mozilla were actually Netscape employees, meaning two things:
1. During those years that Netscape Navigator was free for educational and personal use, Netscape paid its bills by selling Navigator and Communicator to corporate customers and ISPs. Organizations which had shelled out bucks for Netscape's browser had then authored lots of intranet pages and apps specifically for Navigator. Netscape was obligated to provide a backward-compatible upgrade path to these folks, and Mozilla was going to have to provide the engine for that upgrade.
2. A lot of these people were the ones who screwed up implementing standards the first time around. I'm sure it wasn't pretty easy for them to implement "quirks mode" compared to "standards mode."
|