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
[+]
IT: 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."
[+]
IE8 Will Be Standards-Compliant By Default 383 comments
A number of readers wrote in to make sure we know about Microsoft's change of heart regarding IE8. The new version of the dominant browser will render in full standards mode by default. Developers wishing to use quirks mode for IE6- and IE7-compatible rendering will have to opt in explicitly. We've previously discussed IE8's render mode a few times. Perhaps Opera's complaint to the EU or the EU's record antitrust fine had something to do with Redmond's about-face.
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!
Parent
Re:Wait a second? (Score:5, Insightful)
Oh come on. You and the OP should take a second and THINK before running your collective mouths off.
There is nothing wrong with using a special (standards compliant) tag to tell the browser to render differently than normal. In addition to preventing tens of thousands of websites from breaking, there are plenty of CDs and other media containing websites written over the last 10 years. Should all these become unusable just because Microsoft updated their browser? Is adding one tag really that much trouble for you?
I know it's fashionable on Slashdot to say things like "NOT STANDARDS COMPLIANT!?! HOW DARE THEY!!1" (and then get modded up for it!), however the real world requires more tact than that. Coming up with a solution like this that unifies the three Trident rendering modes (quirks, IE6, standard) is pretty elegant. It keeps real old sites from breaking. It keeps sites made in the last 7 years from breaking. Above all, it gives web authors the ability to fine-tune the way their page renders without a bunch of hacks.
Is it ideal? Obviously not, but unless you've got a time machine and can fix the problem, please shut up. Bitching about the past doesn't do anything except give people headaches. It's worth wondering if Microsoft's dedication to backwards-compatibility has anything to do with their success. It's popular around here to say "get with the times" but in the business world, that means money. The supposed "bit rot" is an artificial and man-made result of ignoring this fact.
Parent
Re:Wait a second? (Score:5, Insightful)
I am not proud of this but with tight deadlines cross browser standards compliance is the first thing to slip if you know you are developing a corporate intranet and all the client has deployed is IE6. Anyone who insists on developing for other browers in this situation is just wasting time and hence money.
I do not develop complicated dynamic websites as a religion or hobby, I do it as a job so tailor each project to the clients needs, not my own.
Parent
Re:People think Microsoft is a software company. (Score:5, Insightful)
As for this quote:
Parent
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.
Parent
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.
Parent
Re:Wait a second? (Score:5, Insightful)
I don't really know what people want from Microsoft now. They screwed up--it's obvious. They know it, we know it, web developers know it. Nevertheless, web developers have had to work around incompatibilities for years. What do you want, for Microsoft to change the rendering engine out from under people? Thousands of websites to stop working in that browser (the one that most people use) until the developers can fix the site? It's a bad situation, and it's Microsoft's fault to begin with, but what solution would you propose that wouldn't inconvenience a lot of end users (both developers and their customers, alike)?
Parent
Re:Wait a second? (Score:5, Insightful)
Yes. To anyone this affects: Your website was broken in the first place. It is partly MS' fault that it was broken, but mostly yours, for not trying it out with other browsers.
Yes. Let them add hacks like <use-fucked-up-block-model>. Don't make the standards compliant people have to add <dont-fuck-up-my-box-model/>.
(Yes, I realize it's an HTTP header. You think that makes it better? I mean, yeah, great -- now "save as" on webpages will break them, unless they're using <http-equiv>. And yes, it's got a browser version number in there!)
I wouldn't. I'd much rather have a little short-term inconvenience, if it means that in the long term, we can forget about all this. Maybe even forgive.
But no, we got the opposite -- something that works in the short term, but will come back to haunt us in the long term. I'm really not looking forward to the <no-really-I-mean-it-standards-compliant-this-time> tag with IE9 in another few years. Nor am I looking forward to IE15 unintentionally introducing a bug in the IE6 compatibility, breaking some decade-old site out of the blue -- I'd much rather it be broken now, when there's a greater chance someone's actually paying attention enough to fix it.
Parent
MS got the box model right. (Score:5, Interesting)
The box model is actually one of the few cases where Microsoft did it right in the first place, and the w3c did it wrong. Conceiving padding as something that's not internal to a given block is highly non-intuitive and annoying, it actually makes certain things impossible. Want precisely proportional columns, but fixed-width padding? You could do it with a sane box model with no additional markup, but with the w3model, you'll need another div.
I say this as someone who has a burning hatred for the IE product management team -- I'm normally a bleeding-heart compassionate type, but for the thousands of hours of my life they've stolen from not only me but every web developer in the world who has to work around the intentional weaknesses in their product, I'd happily smile as they were methodically flayed in a lemon juice bath between bouts of being shat upon by elephants. But they might deserve an ever so small moment of reprieve from their prolonged suffering for intelligently bucking the weak w3 choice.
Parent
Re:Wait a second? (Score:5, Insightful)
The only actual problem is that many IE6-only pages exist which declare a wrong doctype. A solution to that does not need to be extended into a mechanism which makes it a standard compliant behaviour to design to specific browsers and browser versions. The proposed solution puts Microsoft in the position where they can continue to disregard standards, because as long as the document declares for which browser it is written, every other browser has to cope, should this become a standard.
In conclusion, Microsoft could either provide a new browser which faces the same problems as every other browser, i.e. not being recognized as IE and therefore being excluded from certain pages and web applications, alongside a compatibility browser which emulates IE6 for those legacy applications. Or Microsoft could simply push for a new version of HTML, complete with a new doctype, which a new browser version would then render accurately while treating older doctypes like IE7 or IE6 does today. The only thing they really need is a way of saying "this is a new page, no quirks mode, for real" and a new HTML doctype would do that just fine.
What they propose is the same compatibility scheme which has failed miserably in Word: Each version of Word creates its own "standard" of the DOC file format and every successive version has to render all versions of that format. Even Microsoft, despite having the code to the older Word versions, doesn't get that right. Competitors don't even stand a chance because there is no specification and no code to look at. Do you really want that for the web? That kind of mess is exactly why standards and accompanying standards replaced the proprietary Netscape vs. Microsoft tag soup.
Parent
Re:Wait a second? (Score:5, Interesting)
Well, the "problem" they're trying to solve is that IE isn't standards compliant. It was never standards compliant, so why is it suddenly a problem that needs solving? Simply, because everything else (more or less) is compliant, and they realise that IE will become increasingly irrelevant if it refuses to play nicely with the rest of the world.
So the answer as to what else could they do is simple: they could drop IE! Rename the new version to "Windows Intranet Application Host" since that's about all it's good for anyway. There's enough other browsers already, and it's likely more would be created to fill the void left by MSIE. We now have reasonably well defined standards and several implementations of interoperable browsers; we simply don't need IE8.
People could still use IE 6 or 7 for legacy web sites and internal applications until they're no longer needed, at which point they'd just die off gracefully.
Okay, maybe it's not realistic, but it would be nicer than forcing the entire internet community to endure yet another round of Microsoft's ineptitude.
Parent
Re:Wait a second? (Score:5, Insightful)
No. They should be educated.
Inform them they are using a non-compliant browser and send them to download Firefox.
And if they insist on using a deficient product, it is not my problem.
I am an educator.
Every user I educate is a win for me.
And for everybody else, in the end.
Parent
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.
Parent
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.
Parent
Re:Wait a second? (Score:5, Insightful)
Seriously, you're new to this, aren't you? Not only will you have to test your page with browsers running in virtual machines, over the course of time you'll have to test it in IE8 pretending to be IE7, IE8 pretending to be IE6, IE9 pretending to be IE8, IE9 pretending to be IE7, and so on as you change the tag to benefit from newer rendering modes. All those render modes will either use combined code, which means they won't render exactly as the old versions, or they are essentially multiple browsers in one, which means they'll each have their own security vulnerabilities and plugin incompatibilities.
This page is for IE7; deal with it
Added benefit for Microsoft: They get to write their own standards again. If another browser sees that made-for-IE7 tag, it must recreate all of IE7's quirks (and those of IE6 and IE8 and IE9...), i.e. behave like some closed source software from Microsoft. MS DOC deja vu...
I really hope that the other browser developers show MS the finger on this one, because if you thought browsers are memory hogs and security nightmares now, wait until every browser has to implement all its predecessors' quirks and all its predecessors' competitions' quirks.
Parent
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?
Parent
Re:Wait a second? (Score:5, Insightful)
And that is not an excuse.
Firefox is not bugfree -- it leaks like a sieve (or "fragments"), chewing up half your RAM. Konqueror is not bugfree -- it crashes maybe every day or two for me. I'm sure Safari and Opera each have their own bugs.
But I can relatively easily make a website -- even a web app -- which works the same way in Firefox, Konqueror, Safari, Opera, and so on. This is the first 90% of the project. The other 90% is making it work on IE.
Why is it unrealistic to ask people to follow the standard, and to let IE be buggy? Why should we be working around Microsoft's bugs for them?
Perhaps, but has it occurred to you that this is exactly what DOCTYPEs are for? So that when XHTML 6.0 comes out, browsers will still be able to deal with XHTML 5?
Parent
Re:Wait a second? (Score:5, Insightful)
It's just like any other project in the software world. The first 90% of the project takes 90% of the time, and the last 10% of the project takes 90% of the time.
Parent
Just Like Before (Score:4, Insightful)
Re:Just Like Before (Score:4, Insightful)
The comments on the blog to the tone of "break the web" are amusing. I'd like to see the face of a CIO when his architect tells him that the corporate-wide upgrade to IE8 broke half the apps on the intranet because, you know, some technorati bloggers with snazzy-looking web sites signed the W3C suicide pact and wanted everyone to do the same.
Or, use Firefox and convince everyone to do as well. That's what I've been doing lately. Maybe IE8 will pull me back, but IE7 sure has heck didn't.
Parent
Re:Just Like Before (Score:4, Insightful)
How about option 3: Code to the standards, and ignore specific browsers. Obviously, you want to test it in other browsers to expose flaws in your own code/assumptions, but if a browser doesn't work due to actually being non-standard, I want that to be Not My Problem.
I've spent enough of my life hacking workarounds around Microsoft crap. How about they work around the standard for a change?
They already did, to some extent, with IE7.
Keep in mind, these billions of pages were already broken. They should not have been compatible with anything. Microsoft dropping compatibility for them would actually be a healthy thing, compared with, say, some of the things they broke with Vista.
I'd like to see the face of a CIO when his architect tells him that the corporate-wide upgrade to IE8 broke half the apps on the intranet because, you know,Because, you know, he was a moron who didn't test those apps on IE8 before rolling it out. Didn't know about WSUS, you know. Can I have his job when he's fired for incompetence?
Again: Same thing happened with IE7. Same kind of complaints, same intranets keeping everyone on IE6 for awhile.
The only reason you mention this is the same reason it's not a problem: On intranets, apps tend to be more tied to a single browser, because you can mandate that browser. Because the alternative was even worse -- mandating the install of some custom client-side app, maybe some Visual Basic + Access crap. This same freedom that lets intranet sites be lazy with respect to the standards also allows them to delay IE8 as long as they want -- or, yeah, use Firefox.
Parent
Re:Just Like Before (Score:4, Insightful)
Parent
Re:Just Like Before (Score:4, Insightful)
So, in order to have their cake and eat it too, Microsoft wants IE to be backwards-compatible to IE6 and more modern at the same time. The only way to do that is to make everybody add a redundant tag, and they trashtalk doctype to get their will. But doctype says to which standard a document was written. Microsoft on the other hand wants developers to keep writing pages to browser versions, which is what got us into this mess in the first place.
The correct way to solve this is to make new IE versions identify as something new, like MSWB, and provide an IE6 compatible control for applications which request MSIE. And tell developers to write to standards, not browsers, and test with more than one browser!
Parent
Forcing? Look on the bright side. (Score:5, Insightful)
Parent
Re:Forcing? Look on the bright side. (Score:5, Funny)
Unfortunately, I get it when I'm using iceweasel.
Parent
Re:Just Like Before (Score:5, Insightful)
Parent
Did I catch that right? (Score:4, Insightful)
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...
Parent
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?
Parent
Makes Sense (Score:4, Insightful)
At least their decision isn't going to mess with any other browsers.
OOXMLish (Score:5, Insightful)
<render-like-IE6>
Re:OOXMLish (Score:5, Funny)
Parent
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)
Parent
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)
Parent
javascript compatibility (Score:4, Interesting)
It would be nice to be able to write javascript without a bunch of compatibility hacks; however, the IE team hasn't shown much interest in javascript compatibility in the past and instead has focussed on CSS compatibility. CSS is also an important area, but it alone won't allow for hack free coding.
As it stands there's a lot of incentive to move to a different platform, such as flash or silverlight.
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.
(slightly OT) A suggestion for Google... (Score:5, Interesting)
"Invalid HTML" icon (Score:5, Interesting)
Browser makers could do a lot of good for standards compliance if they would warn the user (unobnoxiously, of course) when he/she is visiting a web page containing invalid HTML code. You wouldn't purchase from a web site that doesn't cause the little lock icon to show up on your browser, so would you also think twice if you knew the company didn't care enough to produce standards-compliant HTML code?
Since the web browser is used as a development tool, it should alert the developer of any syntax errors instead of attempting to silently recover from them.
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.
Parent
Re:Not seeing the logic here... (Score:4, Insightful)
It is like developing Perl or C with full warnings turned on. It can be a pain to satisfy every pedantic complaint of the parser, but eventually you learn to do it right the first time and you might even find that the warnings indicate a much more serious error in the program logic.
-matthew
Parent
Re:An awful first step (Score:4, Insightful)
Stan
Parent