Testing legacy versions of Internet ExplorerPrint
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.
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="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">download the latest version of Internet Explorer</a> or you can choose one of the following <strong>free</strong> browsers: <a href="http://getfirefox.com/">Mozilla Firefox</a>, <a href="http://www.opera.com/download/">Opera</a> or <a href="http://www.google.com/chrome"> Google Chrome</a>. If you are not the administrator of this computer you may have to contact your local IT administrator.</p> </div> <![endif]-->
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).
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.