Blog: Testing legacy versions of Internet Explorer


Internet Explorer frequently causes problems for web designers and developers. In this post I will discuss some of the things you can do to test the old versions of Internet Explorer.

Microsoft doesn't exactly make it easy for us. Internet Explorer is tightly coupled to various components of Windows. This makes it difficult to for instance install IE6 on Vista. There are various alternatives a developer can utilize, but no solution is perfect and has certain drawbacks, and some solutions are unavailable for certain platforms or OS versions.

Option 1: Dropping legacy support

Okay, you got me. It isn't an actual solution, but to be honest, it's my favorite. Personally, I believe that regular users (that excludes us geeks) need to see a benefit in upgrading to a new version. If you do not particularly care about the new features introduced in newer versions, then why bother upgrading? Don't fix what isn't broken, right? I say "let's break it then". By keep supporting legacy versions we do not give those people an incentive to upgrade. Conversely, if we drop support and they start seeing the sites they use on a daily basis break then they have to. This is of course difficult and requires collaboration between web developers. If just a few sites do it then users will assume that that particular site is broken, but if a lot do it then I believe it will significantly help.

Do not get me wrong. I am not talking about blocking people. A properly written website will still work even if you turn CSS and Javascript off. IE supports the core HTML functionality just fine, which means that if you did your job properly then the basic functionality of your website should still work even if your site may look uglier in old browsers.

Users might still be confused though, but the solution to that is telling them why things look a bit weird. For Internet Explorer you can use conditional comments [] (finally an IE proprietary feature that's useful!):

<!--[if IE 6]>
<div id="ie6-upgrade-msg">
	<p>You are using an old version of Internet Explorer. Our web site uses many modern
	web features that are not supported by your browser. We recommend that you, to get
	the most out of our site and all other modern web sites, upgrade to a more modern
	browser. Should you decide not to upgrade you will still be able to use the web but
	will be missing out on many of the features that the 21st century web offers.</p>
	<p>You can <a href="">download
	the latest version of Internet Explorer</a> or you can choose one of the following
	<strong>free</strong> browsers: <a href="">Mozilla Firefox</a>,
	<a href="">Opera</a> or <a href="">
	Google Chrome</a>. If you are not the administrator of this computer you may have
	to contact your local IT administrator.</p>

On PHP Freaks we dropped support for IE6 about a year ago when the new website was developed. Statistics show that about 6.5 percent of our users use IE6, but that probably has to do with the topic of this website though.

If you do not want to drop support just yet, or if you are forced by your client/boss to support older versions then you have a couple of other options.

Option 2: IE8's compatibility view

If you drop usage statistics then it might be fair to say that you will support the current major version minus one. This currently means supporting IE6, but according to Wikipedia, IE8 is scheduled for final release this month, so that bumps us up to only supporting IE7 and IE8.

Microsoft has introduced a new feature called compatibility view. It allows you to switch to the IE7 version of the rendering engine. You can access it through Tools > Developer Tools (F12).


I think this is a good solution, but it is obviously only available to Windows users.

Method 3: Multiple IE

Sorry GNU/Linux and Mac OS X users. We'll get to you a bit later. This solution is also only available for Windows users, but there is an additional caveat: it won't work on Vista. This is probably one of the most well-known solutions too.

Multiple IE [] is a way of running standalone versions of old IE versions on Windows XP. It's fairly simple to use as long as you meet the requirements. Just download the installer and execute it.

Method 4: Xenocode Browser Sandbox

This is something I have recently discovered and works really well. It allows you to run a range of browsers (including IE6-8) on Windows (including Vista). Though I haven't used it very much, it seems to be working pretty well and with nice performance too.


Just go to the Xenocode Browser Sandbox [] and download one of the executables, then run it. Fairly simple, but still only for Windows platforms.

Method 5: Virtual environments

Finally an option that works for all platforms. Strictly speaking you are not able to do this unless you own a valid Windows XP license for every VE you are going to create though, but I don't think Microsoft would get after you. It has to be a version of Windows not higher than XP SP 2. As far as I know it is not possible to run IE6 on later versions (not on Vista anyway).

There are a couple of virtualization programs available such as WMware Workstation [] (Windows and GNU/Linux), WMware Fusion [] (Mac), and VirtualBox [] (all platforms).

While probably being the most stable and reliable method, it also comes with a significant drawback. Running a VE is like running an additional OS on top of the host OS, so it requires a lot of resources. Running a couple of those on can quickly consume all your memory (unless you got a lot of that of course), and if you're on a laptop then it might drain your battery.

Method 6: IEs4Linux

IEs4Linux [] is a way of running Internet Explorer on top of Wine on GNU/Linux platforms. Again, you'll strictly speaking need a valid Windows license for this to be perfectly legal. I haven't used this for a long time, but I remember it as being somewhat buggy. That might have changed over the years.

Method 7: IETester

IETester [] is a free browser that enables you to browse with the rendering engine of IE8 RC1, IE7, IE6 and IE 5.5 on Vista and XP. Unfortunately, it is really unstable and crashes a lot. I do hope it improves because I think it's an excellent project. Try it out though, it might perform better for you.


I've now presented you with a series of options. I hope you can find one you like (go method 1!). Do you know any additional solutions? Let me know in the comments.