Slashdot Log In
Microsoft Confirms IE8 Has 3 Render Modes
Posted by
kdawson
on Tue Jan 22, 2008 04:04 PM
from the no-i'm-an-expert-really-i-am dept.
from the no-i'm-an-expert-really-i-am dept.
Dak RIT writes "In a blog post this week, Microsoft's IE Platform Architect, Chris Wilson, confirmed that IE8 will use three distinct modes to render web pages. The first two modes will render pages the same as IE7, depending on whether or not a DOCTYPE is provided ('Quirks Mode' and 'Standards Mode'). However, in order to take advantage of the improved standards compliance in IE8, Web developers will have to opt-in by adding an additional meta tag to their web pages. This improved standards mode is the same that was recently reported to pass the Acid 2 test, as was discussed here."
Related Stories
[+]
IE 8 Passes Acid2 Test 555 comments
notamicrosoftlover writes to tell us Channel9 is reporting that Internet Explorer 8 has correctly rendered the Acid2 page in "standards mode". "With respect to standards and interoperability, our goal in developing Internet Explorer 8 is to support the right set of standards with excellent implementations and do so without breaking the existing web. This second goal refers to the lessons we learned during IE 7. IE7's CSS improvements made IE more compliant with some standards and less compatible with some sites on the web as they were coded. Many sites and developers have done special work to work well with IE6, mostly as a result of the evolution of the web and standards since 2001 and the level of support in the various versions of IE that pre-date many standards. We have a responsibility to respect the work that sites have already done to work with IE. We must deliver improved standards support and backwards compatibility so that IE8 (1) continues to work with the billions of pages on the web today that already work in IE6 and IE7 and (2) makes the development of the next billion pages, in an interoperable way, much easier. We'll blog more, and learn more, about this during the IE8 beta cycle." There's also a video interview regarding IE8 development on Channel9."
[+]
Developers: IE8 May Not Pass the Acid2 Test After All 434 comments
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."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading ... Please wait.

Wait a second? (Score:5, Insightful)
I have to add a fucking tag to say I'm compliant? That's insane.... Those that fuck up compliancy should be punished. Heck, no, if I specify XHTML strict, it should render strict. The doctype does say enough. Those who want to adhere to standards just say "strict" and that's it. We do not need an additional tag. The doctype is not broken as he says in the article. You fuckers broke it!
There you have it... It wasn't rendering accurately... Who's at fault, eh?
He's simply not realising that adding another tag will have the same effect as the doctype... And in 5 years will have a 4th rendering mode. Great! Long live standards, those that I can choose!
This is a misguided attempt of someone trying to keep backwards compatibility. The standards are open and published, adhere to them.
Re:Wait a second? (Score:5, Insightful)
You really expected true standards compliance? I am SHOCKED! SHOCKED I tell you!
Re:Wait a second? (Score:5, Insightful)
So, it isn't DOCTYPE switch that failed, but it was Microsoft that failed to implement the standards and set the proper expectations with their developers and their customers; and then faked the standards mode for their own benefit to be backward compatible to the broken rendering mode they had before. Nice twist to the truth though - would have probably made it through some junior VB script kiddies if it was more sugar coded.
Re:Wait a second? (Score:5, Insightful)
So, it isn't DOCTYPE switch that failed, but it was Microsoft that failed to implement the standards
Boy would I hate to be the one to break that awfully shocking news to them. Don't suppose they will survive that one, you think?
Anyway. Get over it. Detect your browser version and render your custom CSS. Play like everyone else plays.
Or leave it broken for the people without a proper browser.
If it's strict, it's strict. If your browser cannot render strict properly, go and bitch to the manufacturer.
Re:Wait a second? (Score:5, Funny)
So can super high-traffic sites measure the amount of bandwidth they have to pay to use to send out this unnecessary tag to millions of people and bill MS for it? Oh, I forgot, their EULA says they're not responsible for their products.
Re:Wait a second? (Score:5, Informative)
No, actually you'll be adding a tag that says "This page displays properly on IE7, Firefox 2, and some other browsers I tested it with" and it'll be up to the browser to figure out how to be compliant with you. In IE's case, IE8 will see that and say "I'd better render this page like IE7 does, because it probably has IE-specific workarounds that'll render incorrectly in IE8's really-standard-compliant rendering."
When you're good and ready, and you see enough IE8 hits in your access log to make it worthwhile, you can get IE8, test your pages, and if they look good, you can update the tag. It'll be under your control when users start to see the new rendering engine in IE8; you won't have to worry about when your users decide to upgrade themselves.
This approach has some great benefits; the IE team actually can safely break compatibility with IE6 and IE7 specific websites and implement standards correctly, because those websites will continue to be rendered with the existing renderer until they explicitly say it's safe to render with IE8's renderer. If they do this well, all we web developers will need to do is remove any IE-specific workarounds if the browser is not IE6/7... IE8 will be treated like any other standards-compliant browser, with no special coding or styling.
Another great benefit for us developers is that we'll be able to change the new tag to get an IE7 rendering from IE8... no more virtual machines just to have different versions of IE on the system. (Except for IE6, but Microsoft is supposedly going to try to force most IE6 users to IE7 next month.)
I can't tell you how much time I've wasted over the past few years trying to get standards compliant pages to look right in IE6 and IE7. I'll be very happy to be able to have my Apache server insert a response header that says "This page is for IE7; deal with it" and not have to worry that my application is going to break when people start to upgrade to IE8 in-between my releases.
Then opt-out. (Score:5, Insightful)
But more importantly, they are adding a non-standard tag to indicate standards-compliance, which is just fucked up. How about you use a non-standard tag to indicate non-standards-compliance -- to indicate that you want the old way of doing things? How about you just drop your DOCTYPE?
If you don't maintain your website enough to even be able to do that, I don't see how that's Microsoft's fault. And it really pisses me off that Microsoft has the audacity to demand that the rest of the world code specifically for IE. You had to do that before, anyway, but this is the first time they've publicly admitted it. Can we have our antitrust suit back, please?
let me see if I get this ... (Score:5, Insightful)
Re:let me see if I get this ... (Score:5, Insightful)
I know that was a joke, but the answer is no, it uses a standard HTML tag.
Which is used to add a non-standard HTTP header, "X-UA-Compatible". Standard HTML, non-standard HTTP.
Which leads to the great possibility of a webpage looking different on the local computer compared to the server it was originally downloaded from...
Re:let me see if I get this ... (Score:5, Funny)
Indeed. You have achieved Microsoft Zen(tm).
Would you like to verify that your MS Zen product license is genuine?
OOXMLish (Score:5, Insightful)
<render-like-IE6>
Credit where credit is [somewhat] due... (Score:5, Interesting)
That being said, IE has come a long was since the days of version 6 (those that came before version 6 are unmentionable), and some credit has to be given to Microsoft for finally trying to do something about their browser. Seeing as how it is the de-facto standard, it's good that they're putting at least some effort into making it better.
I love Firefox, and I love that Mozilla is the reason why Microsoft is being forced to update their browser (competition is everything), but we're going to be stuck with Internet Explorer for the foreseeable future, and progress can only be a good thing.
The web was invented in 1989 (Score:5, Funny)
My Suggested Meta Tag (Score:5, Funny)
How could it have passed Acid2? (Score:5, Insightful)
So how could IE8 possibly have passed the Acid2 test? The test page doesn't contain the magic META tag that IE needs to pass the test!
Re:How could it have passed Acid2? (Score:5, Insightful)
as long as they don't touch my <blink> tag (Score:5, Funny)
<blink>i heart you</blink> blink tag, no one loves you like i do
In summary (Score:5, Funny)
I like to think of the different modes as:
No the best, but better than I had hoped for. (Score:5, Insightful)
1) Don't try to support standards properly.
2) Obey the DOCTYPE, even though many programs and people put it on old pages which aren't going to render properly in a standards-compliant browser
3) Add a new flag that means "Yes, I promise I know about standards".
For years, they have been doing (1). It would be nice if they did (2), and just broke all the badly written IE 6 pages with an improper DOCTYPE. But they aren't going to do that, their users don't want them to do that, and to be honest I don't either. That leaves them with adding a new flag which lets people admit they know about standards.
In their favour, they are:
1) Designing the option in such a way other browsers can be extended by it
2) You can pass it as a HTML header, so if you want just add it to your apache config, and all pages on your website will be rendered in IE8 cleanly (this is the option I intend to take).
Yes, this isn't perfect and it is evil Microsoft, but it's bettered than I'd hoped for. I'm looking forward to popping the option into my apache config and seeing if IE8 really is standards compliant.
That META tag is... (Score:5, Funny)
Implementation Hell, Unnecessary For Firefox (Score:5, Interesting)
http://weblogs.mozillazine.org/roc/archives/2008/01/post_2.html [mozillazine.org]
http://weblogs.mozillazine.org/roc/archives/2008/01/slipping_the_ba.html [mozillazine.org]
One interesting thing is that as far as I can tell, this will become a crushing burden on IE development.
Forcing? Look on the bright side. (Score:5, Insightful)
Re:Forcing? Look on the bright side. (Score:5, Funny)
Unfortunately, I get it when I'm using iceweasel.
Re:Just Like Before (Score:5, Insightful)
Re:Not seeing the logic here... (Score:5, Interesting)
Seriously, where is the benefit to the web devs to turn on this mode?
Gosh, I don't know, being able to save a fuckton of time and effort by writing code to a known and openly-documented standard *and* being able to have things work fairly reliably almost everywhere without having to poke blindly at shit until it works? :P
This always seems to come up, and I'm bewildered by the fact that it does. Here, once again, is the core issue: IE as it stands right now doesn't suck to write code for just because it doesn't follow a particular set of standards, it sucks because there *isn't* a reliable set of standards to use when coding for it. Writing markup etc. for IE isn't a methodical process, but a series of guess-and-test maneuvers and a lot of F5. There's a degree of this to be expected in generating complicated layouts, but it should be towards the end of the process; doing things for IE, this starts way early in the process. It's a time sink. It's akin to, say, getting a kit for building a shed but there not being any instructions -sure you know what a shed looks like, and the pieces themselves -screws, planks of wood, etc. are known to vaguely work in such-and-such a way, and you put it together mostly on trial-and-error, and as long as it stands up and looks approximately correct, it's done. It's stupid, inefficient, and frustrating.