IE11 and the Mysterious Missing Browser Modes

Please note that some information in this article has been superseded. Please see IE11: Browser Modes Return.

Web developers give Microsoft a tough time. “Follow W3C standards”, we shout. “Force everyone to upgrade their browser”, we screech. “IE ate my kitten”, we bellow.

Some criticism was deserved. Microsoft abandoned their flagship browser, held back web evolution and they still take too long to release new versions. But, if we ignore the abomination that was IE7, the company has significantly improved Internet Explorer during the past five years. IE8 and a few shims remain adequate for all but the most sophisticated applications. IE9 won’t cause many issues unless you’re after CSS3 animations. IE10 is a solid alternative to any of the competing browsers.

You’ll still find issues in IE (please Microsoft — add transform-style: preserve-3d;), but you’ll find issues in every browser. None are perfect. Those who rant loudest usually find it easier to blame Microsoft than fix cross-browser issues in their own code.

IE11, to be launched with Windows 8.1 on October 18, 2013, finally includes WebGL and a great set of developer tools. You can install it today if you’re an MSDN subscriber (thanks to a little back-tracking on Microsoft’s previous decision). A version for Windows 7 will arrive a few weeks later.

However, one missing feature will incur the wrath of developers everywhere: browser modes have gone!

What are Browser Modes?

The developer tools in IE8, 9 and 10 provided an increasing number of browser rendering modes going back to IE7.

IE10 browser modes

The modes were added following compatibility outcries after IE7 was launched in 2006. The browser fixed several of the quirks and proprietary technologies developers utilized in IE6 so many applications broke following a browser upgrade. Browser modes was a solution which allowed companies to continue using legacy applications while they fixed the problems. An HTTP header or meta tag could force newer editions of IE to act like previous versions.

But it’s Not Emulation

Perhaps companies still use the modes but I bet far more developers use them for quick and dirty testing in older editions of IE. I certainly have. Browser mode removal will be ridiculed but there are a number of reasons why their demise should be welcomed:

  • Browser modes were a temporary fix for a specific purpose; not application testing.
  • Browser modes are no substitute for testing the real applications. Microsoft does not include four versions of Trident in IE10 — the browser makes superficial tweaks. Your site may work in IE7 mode but fail dismally in a real installation. (Note this also true for third-party solutions such as IETester.)
  • Browser modes should die. There were radical differences between IE6, 7, 8 and 9 but far fewer between IE9, 10 and 11. It shouldn’t be necessary to test older browsers in a world where users upgrade automatically. You don’t test Chrome 23 or Firefox 17; IE should be no different.

Back to Reality

For most of us, IE6 and 7 are dead. IE9 is dropping rapidly as Windows 7/8 users upgrade to IE10 — and both browsers are generally well-behaved. Unfortunately, IE8 retains a healthy 8% market share despite Microsoft’s attempts to encourage Windows XP migration. You therefore have three choices once IE11 is installed on your PC:

  1. Don’t bother testing IE8. Google doesn’t. With luck — and a little careful coding — your site will degrade gracefully much like any other aging browser.
  2. Use a browser rendering service such as BrowserStack, BrowserShots or NetRenderer. These are good for rudimentary cosmetic testing.
  3. Test your site in real installation of IE8. You need not buy another PC; Microsoft provide free virtual machines for Windows, Mac OS and Linux at modern.ie.

But please don’t be tempted to retain IE10 or use registry hacks to re-enable browser modes! They’ve always been flawed and lull you into a false sense of satisfaction. The sooner people upgrade, the sooner we can abandon ancient browsers.

Please note that some information in this article has been superseded. Please see IE11: Browser Modes Return.

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.

  • Jon Penny

    IE ditching browser modes is no big deal at all imo. Microsoft allow developers to download images of Windows with various browser versions to use in several virtual machine programs for free.

    I don’t know any developers that use browser mode and haven’t for years. They all use virtual machines. Or some, as the company I work for do, have several test machines with different versions of IE on. We even have an IE6 machine lying around just in case!

  • Anonymous

    The biggest problem with Internet Explorer has been, and remains, that each new version lacks backward compatibility with older operating systems. This is what stranded so many people on IE6 for so long (you needed at least XP SP2 to run IE7 or IE8), and is stranding so many people on IE8 for so long (you need Vista SP2 to upgrade to IE9). And they still haven’t learned their lesson since a fair number of people may similarly be stranded on IE9 (after initially requiring Windows 8, IE10 still requires Windows 7 SP1).

    • Craig

      Granted, IE6 to 9 had fundamental differences, but it’s been HTML5 all the way since v9. There are differences, but they’re mostly backward compatible, e.g. CSS3 animations work in IE10 but won’t in v9.

  • mVeliki

    for most of us IE is dead, not just IE6/IE7

    • Karen

      @mVeliki: True for us developers perhaps, but not for our site visitors. Whenever I’m helping a non-techie friend with something and see them using IE, I gently suggest something better, but the people viewing my site are not all people whose shoulder I have stood over!

    • Craig

      Really? You’ve abandoned a browser which one in four people (on average) use? Unless you have a site which is browser-specific (such as Chrome Extensions or Mozilla add-ons), I don’t think it’s safe to ignore any mainstream application.

      Fortunately, IE10 (and IE9 to a large extent) won’t give you too many problems. No more than any other browser, anyway.

  • Anonymous

    This might apply for “design” but not for code, you do not show any empathy for those writing complex webapps for enterprise customers, where most need to support any version of IE that MS does.

    Browser modes allow devs to quickly reproduce something a user is experiencing, and provides a quick way to test fixes in your own environment, yes the final fix should be tested in a non-emulated browser, but MS makes that hard since u cannot have more that one version of IE on a system at a time. And having to deal with VMs and such is not efficient. No matter what, front-end developers (especially mine) are going to need that emulation until ie8 and ie9 disappear. So please stop with the condescending talk and get back with reality.

    • Craig

      Unfortunately, your “browser mode” reality is not real. If you’re writing complex web applications, the modes are not an accurate representation of the real browsers. In particular, you won’t be using the correct JavaScript engine. While Microsoft’s single installation policy is a pain, they are providing free VMs and tools which help.

  • Jim

    “Back to Reality” – really Craig? Well, your reality doesn’t match that of much of rural America. In my admittedly backwoods area, my latest stats show 16.3% of site visitors on XP and 15.8% using IE8. In fact, just over 5% are still using IE7! Much as I’d like to ignore old browsers, I can’t do that. Reality is that in rural, low-income regions people hold on to old technology much longer. Like it or not, I still have to deal with it. Browser modes made that a little easier for me, but I realize that MS doesn’t care. I’ll just continue encouraging people to switch to Firefox or Chrome.

    • Dave

      I have a site that gets a lot of visitors from China (not sure why), and IE6 & 7 combined usage is 13.9%. On some of my other sites IE6 & 7 usage is less than 1% though. I think it is really important that developers check the usage stats for the sites they are working on before deciding whether IE6/7 support is needed or not.

    • Craig

      Of course, you should certainly use your own browser statistics to determine usage. If you’re targeting certain sectors such as China, large organisations or government departments you’ll find a far higher percentage of IE users. But don’t presume IE’s browser modes are enough to test for that audience.

  • brothercake

    I still test in IE7 and I don’t think that’s going to change in the immediate future. Of course you can degrade a design, but fundamentally, the site should still work.

    But browser testing in emulation modes is fundamentally unreliable, and lots of stuff will work in emulation modes that don’t work in the real version (eg. data URIs work in emulated IE7 but not in the real version).

    VMs are not hard to use, and once you get used to the workflow, they don’t impede productivity at all. IE7 inside a VM is no less practical than if it was on the same machine, it’s just a bit of extra chrome.

    • Dave

      While I agree with you that VMs are the best choice for testing old IEs, I have to disagree with you that they “don’t impede productivity at all”. My XP Mode IE testing VMs always seem to have windows updates that need installing (and take a long time to install). Visual Web Developer is also painfully slow running on a VM (though maybe it is on a native machine as well).

      If MS allowed installing multiple versions of IE on a single machine I think it would be a lot easier and faster to test and debug IE issues than having to resort to running a VM image for each version.

  • dan

    April 8, 2014 is the big date for XP and its bedfellow IE8, from that date on i expect IE8 % to drop through the floor.

  • Anonymous

    I’m really tired of «experts» who dictate their ways as the only ones valuable: it’s so childish & immature. Did you know that in Canada many federal agencies websites must be compatible with IE6? I don’t think so…

    So «Back to Reality»? NO!!! Back to YOUR reality.

    • Anonymous

      Woh Pixel_Solitaire — it sounds like you’ve had a frustrated morning debugging IE6 issues?!

      No one has said that IE6/7 are dead for everyone. I’m sure there are many developers who code for nothing else. However, they are the unfortunate minority.

      That said, I’m of the opinion that websites should be usable regardless of the browsing device. IE6? Easy … try IE2 or Lynx. I’m not talking about pixel perfection and wouldn’t suggest they can use the latest HTML5 video editor or canvas game, but they should at least see standard HTML content.

      • brothercake

        If you’re using HTML5 with a JavaScript shim you can kiss goodbye to all those old browsers. They won’t support the shim, which means that HTML5 elements won’t be blocks, and the end result will be an impossible mess of line-boxes running into each other.

        To me, that’s another reason why the JS shim is not an acceptable solution, but I’ve long since given up trying to persuade other people of that.

        • Anonymous

          I’m not convinced it’s a major issue. The primary reason for using the shim is to enable CSS styling on unrecognised elements in oldIEs. Other browsers don’t necessarily have that issue if they permit tags with any name.

          The worst case scenario is that your HTML5 elements render inline rather than block. It’ll break the design, but content should remain readable.

          • brothercake

            The primary reason for using it is to apply block display to block elements.

            The worst scenario is exactly as you describe, yes, but the results of that would be a lot worse than you give it credit for. The content won’t remain easily comprehensible because it will have little or no structure, with blocks of text running into each other. You may be able to read the text, but without the context of blocks, it might be a lot harder to understand.

            So embracing HTML5 means letting go of all those older browsers. The only question is whether that really matters!

  • Muhammad

    please microsft, leave the web alone… pleasee :(

  • Anonymous

    For testing different versions of IE on a single machine (on a Windows PC or in a VM), I ended up using:
    http://utilu.com/IECollection/

    This page on Smashing Magazine is a great review of the various options: http://coding.smashingmagazine.com/2011/09/02/reliable-cross-browser-testing-part-1-internet-explorer/

    Also don’t forget about http://www.modern.ie/, if you click on the “Get Free Tools” button you can download free images of various versions of Windows+IE for virtualization (though I understand you need to reinstall every 90 days when the trial license expires).

  • Anonymous

    Oops, I notice Craig mentioned modern.ie already…

  • brothercake

    I’ve always used VMWare. Sure, guest machines are somewhat slower than host machines, that’s inevitable, and they consume a lot of RAM so you can’t really have more than 1 or 2 running at the same time. But those are minor issues really, they don’t get in the way.

    The important thing is that it’s not software emulation — it’s hardware emulation — so in every important respect it’s no different than having a second computer. It doesn’t force you to update or anything like that, and you can take snapshots that allow you to easily test configuration changes, such as with or without flash installed.

    I don’t know if other VMs work the same way, but VMWare is my recommendation.

  • Dave

    Browser modes work well to test quickly the css during development. We in our team use it heavily. For JavaScript you have no other choice to use a VM.

  • Scotty

    IE8 is still very well installed in a lot of large corporate environments, and will be for a few more years. These companies do not upgrade and refresh as often as a small design agency will. Even small companies don’t update often; they usually don’t have the budget for it.

    JS testing is the biggest reason a real instance of IE8 is required. I’ve found IETester to do a nearly-perfect emulation of IE8-specific quirks with JS.

  • Eugene

    Craig, would you mind producing few examples of JS/HTML/CSS that will “work in IE7 mode but fail dismally in a real installation?”

    • Anonymous

      I would love to but any work I’ve done which had to work in IE7 would have been fixed. I’ve certainly experienced it but does anyone have any live examples? As a suggestion, try some reasonably sophisticated JavaScript and DOM manipulations without using jQuery 1.x or another IE7-compatible library.

  • beatnyama

    And for those products that we use that rely on us changing the browser mode to something lower first before changing? Does that mean that they stop working? So i’m sitting with applications that if i upgrade my browser to IE11 will start crashing and i have no way of using a previous browser without running a virtual machine? IF IE11 is like IE10, so why bother upgrade

    • Anonymous

      There will still be a compatibility mode in IE11 for IE7-like legacy applications. That’s likely to solve the majority of issues. As for other modes, do you have any applications which, say, only work in IE8 or IE9 but not IE10 or IE11? I doubt it – and they’re very unlikely to crash the browser.

      IE11 is a significant upgrade since and has WebGL, various HTML5 APIs and the new F12 developer tools. I’d certainly want those more than the (mostly useless) browser modes.

  • Mohammad Ashour

    The main issue devs face with IE, and I know this is besides the article’s point, is that IE doesn’t keep up as well as competitors with emerging browser innovations and standards. Craig, you mentioned that we ask MS to upgrade faster, and I agree. I do think, however, that the IE release cycle needs an overhaul. MS still release versions of IE like they did back in the 90′s and early noughts: Major version X, which is prepackaged with the latest MS OS but needs an OS update with earlier ones. As Douglas Crockford said during one of his talks, “People upgrade their browser when they upgrade their operating system.” This is archaic and needs to end. We should have incremental updates automatically pushed to IE and ideally, major updates to the browser don’t affect underlying rendering and DOM implementations as much as they update UI and OS integration. MS desperately needs to drop the idea that IE X is the next big thing and to adopt the more modern approach of iterative and minor updates. The conversation needs to be “everyone is shimming feature X on IE, so let’s prioritize that and auto update for our next monthly release.” Right now IE C, where C is the current release version, is up to date for a few months at the latest, and is quickly behind Chrome and Firefox thereafter. The web is moving forward at a rapid pace, and MS needs a release cycle that keeps up, or they will keep playing from behind.

    • Anonymous

      To be fair, IE now has automated updates.

      I agree the browser is engrained too deeply into the OS so those on older versions of Windows can’t upgrade. Rightly or wrongly, that decision was made many years ago. It would be difficult to change now because many Windows apps depend on IE web components. It’s not impossible of course, but I suspect Microsoft could only consider it when .NET, Office and other core software is superseded. It won’t happen soon, if ever.

      I would like to see more rapid — perhaps incremental — IE updates. The situation has improved but it could always be better.

  • Mohammad Ashour

    Yeah, well strategically they ingrained IE to beat out Netscape, and with little if any benefit (at least at the time) to end users. Karma, she’s a bitch. At any rate, a few things make IE dev easier these days some have already been mentioned. It’s just sad to see MS accept their recent position in the tech world so slowly. They *are* accepting it however, as recent re-takes on their views for Win8 and XBox One show. But IE keeps dropping in market share and the IE team needs to learn from the Win8 and XBox teams: If you don’t listen to your users and developers, a competitor will, and well, they’ll beat you out.

    My strategy would be to drop the losing horse. Put a new team together with a new browser and give it a new name. Make it faster than Chrome, and iterate on it like a beast, bringing all the common-sense goodness that MS brings to web standards (many MS DOM implementations make a lot more sense than W3C ones), and push those hard. All the while let IE phase out slowly. Oh, and for God’s sake, don’t integrate the new browser in any OS. Keep it lean and free. In fact, open source its engines. Fight the good fight and use your muscle to show the world that you can lead by embracing the new, open, agile, limber approaches to dev. But hey, what do I know, I work on a Mac and develop on Chrome :P

  • brothercake

    I can’t see that it matters that much either way. So one browser introduces a feature that IE doesn’t have — so what? That’s what progressive enhancement is for. So all browsers except have IE have a feature — well then IE users won’t get that feature. Does it really matter? Is it mission critical? Very rarely is that the case.

    Who cares what IE does. IE’s influence on the web is like Britain’s influence on world politics. It used to be really important, but now it’s just a whistle in a teacup.

  • Victor

    I just hope, as mentioned in the article, that the market share for IE8 finally starts to drop to next to nothing. Our customers are constantly asking for more modern coding and IE8 still gives us some pain. The sooner its gone the better.

    • Anonymous

      Do you know what they mean by “more modern coding”? IE8 isn’t outrageously bad. Ironically, it’s actually good at the modern trend for square corners and no shading! The only things you’re really missing are CSS3 animations, native media and canvas.

  • brothercake

    I was about to say the same thing — IE8 is not a problem.

    By current stats it’ll be at least 2 years before Windows XP drops out of usage, and IE8 is the latest version that XP users can run, so it’ll be a fair while yet before it’s gone.

  • Joan

    Hmm, there are still one fifth of people who use IE 6, and in my opinion, IE 6 and 7 are alike.

  • Anonymous

    One fifth? That will be the case for some websites and applications but unlikely for most. IE7 is a different beast to IE6 – that’s why Microsoft had to introduce compatibility modes.

  • mVeliki

    One fifth? According to my analytics all IE browsers together are below 10%! Thath way I state IE is almost dead.

  • Anonymous

    It’s a mistake to assume that your browser analytics (or reported “global” stats) are reflective of most sites. Some get very little IE traffic altogether, while others are still seeing legacy browsers in the double-digits. And that’s just from personal experience; the variety is probably much greater than that.

    That being case, saying that we should just stop testing in IE8 altogether as a blanket policy is a huge mistake, especially while Windows XP is still very much alive and kicking. It suggests that developers should willingly neglect a potentially large segment of their audience without data to support that action. Careful coding is always a good idea, but it’s no reason to neglect thorough testing.

  • citizen_anon

    But WHY does Microsoft keep breaking their own web development platform (ASP.NET)?
    Why don’t they release the browser fixes as a windows update in parallel w/ the roll-out of the new browsers w/ breaking changes? They are wreaking havoc on businesses & non-profits, & discrediting developers that use ASP.NET.

    Microsoft is damaging their credibility, and harming the operating system, browser, and development tool markets with these repeated gaffes. healthcare.gov has nothing on them.

  • baruchatta

    DON’T USE cancelBubble. THAT IS IE ONLY. USE saw.stopEventPropagation.

    In other words, perfectly good application code is now broken with IE 11. Even the error message is poorly worded, poor grammar, and not understandable by the user.

    How about a little BACKWARDS COMPATIBILITY in the browser????