IE8: Standards Mode Opt-In is Back From the Dead

Internet Explorer 8.0Internet Explorer 7’s release in October 2006 caught many by surprise: Microsoft had made a concerted effort to follow web standards. The browser may not have been as advanced as Firefox or Opera, but it was heading in the right direction. Unfortunately, it broke thousands of web sites and systems.

Arguably, the faults were the responsibility of the web developers and their systems continued to use non-standard code. Unfortunately, many of those systems had been specifically designed for IE6 – flaws and all – and worked faultlessly for many years. Microsoft was caught in the crossfire and the move away from IE6 has been sedate at best.

In January 2008, Microsoft announced their solution to the site-breaking problem on A List Apart. IE8 would offer two rendering modes:

  • by default, every site on the web would be displayed using IE7’s layout engine
  • if you used web standards – and really meant it – you could add a meta tag that forced IE8 to render the page…
    <meta http-equiv="X-UA-Compatible" content="IE=8" />

The clear benefit was that every site that worked in IE7 would continue to work faultlessly. Even when IE57 is released, the web page you create today would fall back to the rendering engine it was originally tested on.

The standards community was in uproar:

  • Adopting web standards should help a website become device-independent and future-proofed.
  • A browser should render a page to the best of its ability – not resort to a previous version of itself.
  • What was the long-term future of this proposal? Would developers need to list every compatible browser and version?
  • Why did we need to update every standards-compliant page so it opted-in to opt-out of browser-specific targeting?

Microsoft listened and on 3 March 2008 announced they would abandon the plan. Everyone cheered.

Despite this minor victory, the story does not end here. A recent Microsoft blog article describes Compatibility View Improvements to come in IE8:

  1. When a user has a problem with a website in IE8, they can click the “Compatibility View” button to revert to IE7 rendering.
  2. The URL is sent to Microsoft who compile a list of IE8-incompatible websites.
  3. This list is sent to IE8 users so the site can automatically switch to IE7-mode for everyone.
  4. If your website is fixed or is accidentally added to the list, you can add a meta tag to disable compatibility mode!

Whilst this may not be as bad as Microsoft’s original proposal, the most practical solution is to add the meta tag to ensure your site can never be added to compatibility-mode blacklist. We are back where we started!

Is Microsoft’s proposal reasonable? Will this affect your sites for the better or worse?

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Jimi John

    Just makes me hate MS even more.

  • Justin

    “When a user has a problem with a website in IE8, they can click the “Compatibility View” button to revert to IE7 rendering.”

    This is ridiculous. Most everyday users are not going to realize there’s a rendering issue with this website or that. They’re not going to know what Compatibility View is, nor care. Also, I foresee this so-called compatibility blacklist of websites becoming a nightmare.

  • graphicmist

    By launching IE-8 microsoft is going in the right direction..its proposal will surely relieve the web developers….but what d well was ie6..it will take a lot of time to recover the reputation of ie among web developers…many of them are still worried with its new release….

  • Giuliano

    The list of websites should be stored locally and not shared between the clients otherwise, as sayd, we will be back where we started!

  • nachenko

    CRAP!

    Sites not IE8 compatible?

    They must me kidding…

  • madr

    Agree. The third sentence is a disaster. People will start blacklist each other, I tell you. I just hope the feature is misused SO badly they skip it in IE9.

  • ricktheartist

    OMG. How hard would an opt-in for ie7 mode have been? If the website the user is wanting to visit is messed up, then it is the responsibility of the website owner to fix. The user should contact the webmaster of the site to tell them of the issue they are experiencing. It then falls to the webmaster to choose how best to correct the issue (either making it standards compliant or add the ie7 opt-in meta tag). I already get plenty of notifications on my sites that this or that doesn’t work or look right. Users are not shy about pointing out problems. This is an aspect of natural selection on the web. Keep your sites working or you lose customers.IE7 opt-in made so much more sense to me.
    IE will suck for years to come.

  • http://www.geekgirlstl.com sjhapke

    I wouldn’t have as much of a problem if websites that were added to this list were vetted by an independent reviewer. To make the assumption that a website reported as incompatible by an “average user” is indeed so, is a bad idea.

    I commend Microsoft for trying to make everyone happy, but I agree with those above that have brought up the point that it is ultimately up to the designer to make their site compatible, no matter how much we may dislike this (as designers).

  • Hamranhansenhansen

    I am building a new site right now that supports Microsoft browsers through Flash only.

    Essentially, all the data and media is stored in standard formats that are common to both the Web and Flash platforms. So we have XML feeds and CSS styles and of course JPEG and PNG images. Then we create a PHP template that outputs HTML for the Web, and we lay that out with CSS and it works perfectly in WebKit and Gecko. Then we create a Flash movie, written entirely in ActionScript3, that is essentially a port of the PHP template and layout CSS. We use the same data and resources as the Web version, so it looks very much the same.

    The downside is the overhead of maintaining 2 sets of templates (one PHP, one ActionScript3), but the upside is that the work we do passes QA the first time in all Web browsers. If in Firefox or Safari, it renders like we built it to standards, and if in a Microsoft browser, it renders like it did in Flash.

    Since Internet Explorer does not exist anywhere that Flash does not exist, there is no reason to use IE’s rendering engines. They are too buggy, they pull in half your QA time, and they limit what you try to do in the browser in the first place.

    The typical thing that’s still going on today is to build one interactive product that then has to run on 2 different platforms: the Web and MSN, where it typically runs badly in both places. What we’re doing is explicitly supporting 2 platforms, but it’s the Web and Flash, where our stuff runs perfectly on either platform. About 90% or more is common stuff anyway, it’s only about 10% that is tailored explicitly for the Web or for Flash.

    The best part is I do my Microsoft QA remotely using crossbrowsertesting.com and it takes about 15 minutes to verify the Flash movie is loading in IE5, IE6, IE7, IE8 and I’m out. The time I save on Microsoft testing is way, way more time than it takes to make the Flash template.

  • DylanFM

    So, if IE8 is standards compliant, then Microsoft will end up with a list of all websites that aren’t standards compliant?

  • gmurran

    Are they going to change the EULA for Internet Explorer for this. What gives Microsoft the right to have some random person the ability to blacklist my site?

    Never using IE ever! ever! ever! again.

  • luciano991

    Spry menus I made in Dreamweaver totally don’t work right in IE8 running on Windows 7. Hope they get that fixed.

  • http://www.mikehealy.com.au cranial-bore

    Hang on, if a given page WORKS in IE8 and looks right, why would a user click the compatibility mode button? I don’t see the incompatible list being filled with false positives. So for the most part if your site is standards compliant and works in IE8 you shouldn’t have to do anything more.

    If the system is deliberately abused that may be another story, but there’s not much to gain by having your competitors site rendered by a different engine, especially if it also works in IE7.

  • tiago.brandes@gmail.com

    I believe the best solution would be to try and render the web page in Standards Mode first.
    If any errors are found, then the browser should automatically fallback to the infamous “quirks mode”, and have some feedback on the interface to indicate that the markup is not compliant. It would be up to the designers of the page to write it in a manner that doesn’t trigger quirks mode. Or not, whatever. (I just don’t know about the performance penalty this would impose…)
    I think it’s stupid to ask the user: “This page is screwed up. Would you like to see it in a decent way?”, when 99% of the users out there have no clue whatsoever about web standards.
    In the real world, being a commercial and evil company (…), Microsoft should try to provide the best experience to their USERS, NOT to the web developers.

  • Anonymous

    How about we instead add META tags to our content that block ALL MS/IE browsers from here on out until they create a standards based browser engine? The worlds largest technology company still can’t create a basic web browser…WTF?!?!

    I write all my code the way it should be, no hacks or work-around for IE, Macs, Opera, Safari, or any other browser or OS. The sooner EVERYONE quits employing hacks and crappy work-arounds, the sooner we all benefit. The problem isn’t just browser makers, but designers without creativity, skills or the guts to simply do their job the right way.

    I mean, how many dam builders do you think would get away with building dams with sub-standard work-arounds, half-assed measures and skimping on what you know you need for the job?

    Good code is written once…unless your client wants to pay you for the project twice.

  • http://nicknotfound.com nicknotfound

    I can’t think of a worse way of handling this than what Microsoft has come up with. Their original (and awful) decision to always render in IE7 mode was better than this. At least with that “solution” designers would know up front that they needed to add the new meta tag to tell IE8 to render in IE8 mode. In all their brilliance, this new method gives a designer a false hope that IE8 will handle his site properly, only to find out later (a month after successful IE8 testing) that the site has been broken because some idiot reported it as incompatible after being unable to find “that one sweet picture that totally used to be like right here, dude.”

    By continuing to support (and even favor) non-standard web development practices, Microsoft only serves to perpetuate the problem that they themselves started and have fostered for so long. This is most definitely not the way to win the hearts of the web development community, and as long as they continue in this direction, IE usage will continue its steady decline.

  • Andy Jones

    Arguably, the faults were the responsibility of the web developers and their systems continued to use non-standard code.

    Actually the fault lies solely with Microsoft. It is not fair blaming the web developers as they had no control over the issue. It was Microsoft who refused to follow/implement web standards. It was Microsoft who provided a patheticly insecure browser that they shoved down everybodies throats. It was Microsoft who still failed to followimplement standards in IE7. It is Microsoft who are still intent on making things difficult for developers in their new browser, IE8. Microsoft make the browser that implements the ‘non-standard code’. Nobody else has control over this. It is clearly Microsoft’s fault.

    Why did people use non-standard code? Because of the anti-trust issue of forcing their browser onto the desktop. The web developers had no choice but to implement the non-standard code because their managers, sheeple that they are, insisted that their sites work in IE – a broken browser.

  • http://www.optimalworks.net/ Craig Buckler

    Actually the fault lies solely with Microsoft

    That’s fair comment, although web standards were introduced in 1999 – before IE6 came out. However, standards were a new idea and IE6 didn’t support them correctly.

    The main problem was that IE6 dominated the market for over 5 years – Microsoft even announced they would never create another downloadable browser. Many applications were built for IE6 that would never work elsewhere. Standards could have been used – and made to work – but what was the point given that IE6 was the only browser available?

    We now thousands of legacy applications that depend on an 8-year old browser. That is primarily Microsoft’s fault: they had a monopoly and killed off the competition (court cases aside, IE was a better browser than Netscape, but they should have continued its development).

    But technology moves on. You would not expect code written for Windows 98 to work perfectly in Vista and you shouldn’t expect non-standard IE6-specific code to work in other browsers. If we use standards and make our sites and applications work everywhere, then users would have no reason to stick with IE6.

    With the benefit of hindsight, it may have been more effective if MS had created an IE6-compatibility mode in IE7.

  • http://www.tyssendesign.com.au Tyssen

    Spry menus I made in Dreamweaver totally don’t work right in IE8 running on Windows 7. Hope they get that fixed.

    Windows 7 is using a beta of IE8 and not the latest release candidate. A lot of stuff got fixed between the betas and the RC so checking your sites in Windows 7 is probably not the best guide.

  • http://www.cemerson.co.uk Stormrider

    So many idiots in this thread. Microsoft know their browser isn’t the best, and are taking steps to fix it, and all people can do is moan. This is the best possible solution I think. You have the meta tag in there to tell people that you want IE7 mode, and it will render in standards (IE8) mode by default.

    “This is ridiculous. Most everyday users are not going to realize there’s a rendering issue with this website or that. They’re not going to know what Compatibility View is, nor care.”

    …which is the whole point of the list. I’m sure it’s not going to be a permanent thing, just something to smooth the transition between different IE versions to help IE8 uptake, which will be a win for everyone.

    They have even thought of a solution for websites that get added to the list accidentally, so I cannot see how this can be abused.

    Microsoft were a victim of changing user expectations right when they made a decision (which was at the time valid) to not continue improving on Internet Explorer. People moaning either don’t understand the issues involved, or don’t seem to want to listen to the perfectly valid reasons why IE is in the state it is now.
    Yes, it’s not a great browser, but the whole market was different back then – people didn’t care about standards, the browser wars weren’t that far behind, where both browsers (IE & Netscape) would introduce new features to outdo each other, that was just how it worked back then. It’s only AFTER IE6’s release that people’s expectations have changed, and the standards movement picked up, the W3C became more important etc. The browser is just a victim of the times changing, it’s not MS’s ‘fault’ as such.
    They then have a very popular browser on their hands, which they can’t obviously just get rid of and bring in a whole new rendering engine for IE7 which would break most websites out there at the time. I think they are doing their best to come into line with the other major browsers (who didn’t have the problem of a large user base to please from the start), and this is one of the things they are trying. Just making it more standards compliant didn’t work, as shown by the number of people still clinging to IE6.

  • http://www.optimalworks.net/ Craig Buckler

    You have the meta tag in there to tell people that you want IE7 mode, and it will render in standards (IE8) mode by default.

    IE8 will render in IE8 mode by default. However, if a few people click the compatibility mode button, the majority of IE8 users will see it in IE7 mode. As a site owner, you can prevent that, but you need to add a meta tag that states the site is IE8-compatible and shouldn’t be ‘downgraded’.

    That’s the real problem. Anyone who adheres to web standards may still have their site viewed in a ‘lesser’ browser without their knowledge.

    There is also another problem: IE7 is not the same as IE7 compatibility mode. Differences have been spotted in the betas. Your testing regime will need to include IE8, IE8 in IE7 mode, and IE7.

    Of course, Microsoft could have prevented all this confusion by simply allowing multiple versions of IE to be installed on the same PC!

  • http://www.flixon.com jgd12345

    Stormrider, i think you’ve got it spot on. Most people on here are from PHP/Adobe backgrounds, therefore they like to criticize Microsoft whenever they can. I feel alot of you need to come out of this or you risk being left behind as Microsoft are starting to change. Silverlight and ASP.NET MVC are examples of excellent technologies that i’m sure many people on this site would benefit from but their ignorance to anything Microsoft product is definately not helping them.

  • http://www.optimalworks.net/ Craig Buckler

    Microsoft-bashing is easy, but they trying to do something for users who experience problems. However, Mozilla, Opera, Apple and Google do not deem it necessary to offer downgraded rendering engines in their browsers?

    The situation is a mess and it’s primarily been caused by Microsoft’s inaction with IE6. But I’m still surprised that IE8 is known to break IE7-compatible sites, especially if they adhere with W3C standards?

  • http://www.cemerson.co.uk Stormrider

    Mozilla, Opera, Apple and Google aren’t in the same position as Microsoft, their users are generally a bit more web-savvy, and will upgrade their browsers pretty quickly to new versions. They also understand the reasons some sites don’t work in their browsers a lot better than your typical IE user (not because they are stupid or anything, just because they don’t know better). These browsers also don’t have the same history that IE has, and I think it is a bit silly to compare them with IE and ask why they don’t have to do something similar.

    The situation IS a mess, and MS are doing their best to sort it out – IE8 adheres to standards, IE7 does not fully, so yes sites would be compatible with one and not the other. If the site is IE7 compatible and not IE8 compatible, then it can’t meet w3c standards, so I don’t understand your last point.

    If MS were to immediately switch to standards compliance and not give a thought to sites that don’t meet this, the browser would not get adopted (because it ‘breaks’ sites in the users’ eyes), which wouldn’t help anyone, and wouldn’t advance the adoption of standards on the web. Instead, they have come up with a solution that allows their new browser to be fully compliant, AND not break existing sites, so the browser will get adopted by people, but still advance the web standards movement.

    How is this not a win for everyone involved?

  • http://www.optimalworks.net/ Craig Buckler

    IE8 adheres to standards, IE7 does not fully, so yes sites would be compatible with one and not the other

    No browser is fully compliant with web standards. It is not true to say that a standards-compliant site won’t work in IE7, will work in IE8, or vice versa. Standards help your site work in every browser.

    Many developers are happy that their site will work with IE6, IE7 and IE8. However, they want users to have the best experience, and that means using the latest rendering engine. Even if I know my site works best in IE8, it still may be forced into IE7 mode. That won’t help anyone.

  • http://www.ijwebsites.com/ IJoeR

    I think IE8 should render the pages like IE8 renders the pages. I don’t think there should be this alternate option. I don’t see FF offering a hey view your website in v2 rendering engine. I mean, the point of the upgrade to IE8 is just that, make your browser better, adopt all of the current standards. Oh how I wish the major browser companies would all put there heads together and all adopt a single, unified rendering engine! And then, leave the look of the browser and other extras to the discretion of each company.

    I think wow that would be fantastic. What if microsoft did what Google did. what if microsoft adopted the FF rendering engine but then added a bunch of extras to its browser to set it apart from FF and other flavors.

    These days I’m liking Google chrome alot. I think its the fastest browser on the market.

  • http://www.ijwebsites.com/ IJoeR

    I think what microsoft needs to is make a version of Windows and give it away for free. If they did that then would be able to convince people like me to upgrade from WindowsXP PRo to Vista. I’m not going to pay $500 for an OS. My point is Vista is too expensive.

    The other thing is by doing this they get people off of IE6 and onto IE7 or IE8. Thats what the web means. We need to get IE6 gone and buried. I have a helluva time trying to get my websites to work in IE6 and most of the time i have very little trouble getting my sites to work in IE7 and all other browsers.

    just my two cents.//.

  • http://www.cemerson.co.uk Stormrider

    Even if I know my site works best in IE8, it still may be forced into IE7 mode. That won’t help anyone.

    Then you use the tag to tell IE8 to render in standards mode, which is the whole purpose of the tag!

  • http://xslt2processor.sourceforge.net boen_robot

    Reading the comments and all, I’m not sure I see anyone offering a better solution.

    – All IE8 – compatibility problems for end-users. Even with compatibility view, many people won’t be wise enough to try the compatibility view button. For example, my mom. Gather many people like her, along with many sites that are not IE8 ready, and you get lack of adoption, which won’t benefit anyone (least of all web developers).

    – All IE7 – we all know what’s wrong with that. Sites that were supposed to be written correctly will be punished by not getting the new features, and we’ll only keep reinforcing IE7, up until MS later decides to bite the bullet.

    – Another engine – won’t happen, as if something goes wrong (security wise), the MSIE team won’t be able to fix it as soon as they can now. After all, they’ll have to either synchronize with the engine developers or will have to make direct contribution themselves. The first is not feasible for MS (and for end users too really), and the second… ask yourself if you really want that. I mean with what IE is, do you really want Gecko or WebKit to have that Microsoft-ish smell to it? Besides, this still won’t help compatibility. Many sites simply give IE one thing and another thing to everyone else. Even if another rendering engine is used, the detection mechanisms will have to remain (UA string and all), meaning a lot of sites will still break miserably by giving IE what is supposed to be for another browser.

    What is missing here (and I’ve said this on the IEBlog too) is an easy way for sites to get themselves removed from the list without using X-UA-Compatible. If you get IN, the MSIE team will contact you via your domain’s WHOIS email, telling you your site appears not to be IE8 ready, and that you can quickly force yourself in/out with X-UA-Compatible. When you need to get OUT though, you need to write them back an email, explicitly requesting that you’re removed and wait to see if they’ll indeed do that. Once they do it, you get removed on the next scheduled list update.

    Too laborious and time consuming, don’t you think? What if… you could automatically be scheduled for removal by sending an email? A program could easily be made that will process these special emails (forwarding the rest to the MSIE team for manual consideration) and automatically remove you from the upcoming list. The removal will also grant you “list immunity”, at least for the IE8 version (when IE9 comes, we’ll all be targets for it again). For security reasons (you don’t want people falsly removing big sites just to make end users unhappy), the email address from which you send this message will have to be the email in the domain’s WHOIS record. Any thoughts? Better ideas?

  • http://www.sitepoint.com/ mmj

    While forcing all existing sites to update themselves in order to be compatible with IE8 is an idealist’s dream, the compatibility mode is ultimately necessary.

    I largely agree with Joel Spolsky’s view on the subject, which he explains at length here.

    http://www.joelonsoftware.com/items/2008/03/17.html

  • http://www.cemerson.co.uk Stormrider

    (when IE9 comes, we’ll all be targets for it again)

    If IE8 is fully standards compliant, there won’t be any need for an IE9 tag, only ‘= IE8′ categories – the site will either work in a standards compliant browser, or it will be built for previous versions of IE (well, and ones that break completely).

    Also, trying to get every browser to use the same rendering engine would kill innovation on the web. Competition drives invention & innovation, and more support for different standards as the makers of the engines compete. Everyone using the same rendering engine would mean noone would add new features or support for different things, because there would be nothing compelling them to do so.

    mmj: THANK YOU for that link! I read it ages ago and always tried to find the link again, but never could.

  • http://www.sitepoint.com/ mmj

    mmj: THANK YOU for that link! I read it ages ago and always tried to find the link again, but never could.

    No worries. It’s an interesting site.

  • Stevie D

    think IE8 should render the pages like IE8 renders the pages. I don’t think there should be this alternate option. I don’t see FF offering a hey view your website in v2 rendering engine. I mean, the point of the upgrade to IE8 is just that, make your browser better, adopt all of the current standards.

    I agree with the principle that IE8 needs a compatibility mode. There are websites out there that won’t work properly in IE8 Standards mode and it is not in Microsoft’s or their users’ interests to ignore those sites. If the list has some sort of vetting and whitelist procedure, it could well be the best way to get most people seeing all websites in the best light.

    No, Firefox doesn’t need compatibility mode because there is very little difference in rendering between v2 and v3 – there will be very few, if any, sites that will work fine on Fx2 but will not work as intended on Fx3.

  • Ohyay

    Poor idea.

    It’s screwing up the web more. I’d rather a temporary screw up now, than the big mess M$ continues to make.

  • brian

    None of this would be a problem if Microsoft:
    A) could make a good browser
    or
    B) would just give up and say “Well guys, we tried that whole browser thing and it just wasn’t working out so it’s time to cut our loses.”