IE8 May Not Pass the Acid2 Test After All
dotne writes "CNET has published an article called Acid2, Acid3 and the power of default. The article predicts that IE8 will not pass the Acid2 test after all: '[Another] scenario could be that Microsoft requires Web pages to change the default settings by flagging that they really, really want to be rendered correctly. Web pages already have a way to say this (called doctype switching, which is supported by all browsers), but Microsoft has all but announced that IE8 will support yet another scheme. If the company decides to implement the new scheme, the Acid2 test — and all the other pages that use doctype switching — will not be rendered correctly.' Microsoft's IE8 render modes have been discussed here previously, and they've caused an uproar in the web development community. According to the scheme, authors must put Microsoft-specific <meta> tags into their pages in order for them to be rendered correctly. I doubt Acid2, nor Acid3 will have Microsoft extensions in them."
ACID is designed to test a browser's adherence to a set standard. Its not designed to just 'test' a browser to see if it works. It's designed to see if it works the way a browser should. I say break the millions of web-pages and force them to get updated.
Firefox 3 should be ale to pass the acid 2 test. They have been working on it, and they don't introduce custom extensions to doctypes to render correctly, rather they are fixing their browser itself.
MSFT dug itself into a hole. instead of getting out and filling the hole back in they are digging another hole to bring people down to their level.
i thought once I was found, but it was only a dream.
The reason this is happening is because IE6 already actually uses the doctype tags. Depending on the doctype, it renders in quirks mode or in standards compliance mode, just like Firefox. The problem is that the standards compliance mode isn't even close to standards compliant. So now we have quirks mode, IE6 standards compliance mode, and IE7 standards compliance mode. Microsoft dug this hole and now the only way to fix it without breaking pages is to add yet another mechanism.
Microsoft kept redefining the meaning of "standard" so that they were right and everyone else was wrong. Now that they are actually starting to follow the standard, they are scrambling trying to make sure that it doesn't look like they were ever wrong.
IE (just like Firefox, etc.) has a "quirks" mode which renders things in a non-standards compliant way, but is designed to "more or less work" with all the pages out there that are not strictly coded. This new tag is supposed to apply to web-pages where the web author has already explicitly said he wants strict rendering, because he said so in the DOCTYPE. But instead of just fixing IE so that it renders that standards-compliant code better and better, they propose to freeze that rendering sub-engine, and force web-developers to add a new tag that basically says "yes I really meant I wanted you to render strictly!"
It seems to me that the majority of pages that rely on rendering quirks will be okay, since they will be rendered in quirks mode. But pages that were intended to be standards-compliant should be treated as such.
Microsoft's plan isn't sustainable or elegant: they basically want the entire web-community to add another tag each time MS releases a new version of IE. (If they want a custom tag for the IE7->IE8 transition, they probably will want a new one for the next transition...) The entire point of these standards was to get away from browser-specific tags and hacks. A web developer shouldn't have to think about what browsers are on the market today (or 3 years from now): he should just code to the standard.
Put otherwise: Instead of asking everyone who has written a standards-compliant page to add-in a non-standard tag to make it work in IE... wouldn't it be easier to tell everyone "hey, if you've coded a page that is ~almost~ standards-compliant, but relies in some way on IE7-specific behavior, then add in this <NotQuiteStandard> tag, and IE8 will render it like IE7."
It's a simple, elegant and practical solution to this very real problem.
It's a problem, though, that only Microsoft has. Everyone else is just expected to conform to the standards.
Read here for the WebKit team's response to this and why they're not going to define or obey any such tags themselves.
E pluribus unum
As I recall, the reason many pages broke between the IE6 / IE7 transition was because people were hacking up their CSS and the parsing bugs underlying their hacks failed.
Yeah, I'd be fine with that, but that is unfortunately not how it works. IE8 will default to IE7 mode, and will only be standards compliant if you add the tag telling it you want it to be. That's what the uproar is about. This solution basically makes sure IE7 will be around (and targeted by developers not knowing any better) forever.
Read it and weep, I know I did. (Last 3 paragraphs are the relevant ones.)