Dealing with Internet Explorer 8

As Internet Explorer 8 is just around the corner with the RC1 beta already available for download, we all need to make preparations for the new browser which will be released with Windows 7 or as an update to XP and Vista.

IE8 yet again attempts to comply with web standards, but this means yet another browser to optimise for. Fortunately Microsoft gave us a cheap way out with it's X-UA header allowing us to revert to IE7 standards.

The Good News and the Bad News

So IE6 is still going strong, well, strong enough that we can't neglect it, and IE8 is going to give us 3 different versions of Internet Explorer, each we have to deal with separately. That's the bad news.

I'd like to say that IE8 complies with all standards, CSS3 included, but as always, IE is in it's own little world trailing far behind with standards recognition. Yes - it does vastly improve yet again, but it's still far behind Webkit or similar rendering engines. So we have improved standards support, but not equal to other DOM-compliant browsers, and we also have a new range of IE bugs and odd behaviors.

The good news - Microsoft understands our pain. So any web master probably has a lot of websites that are going to need patching to make room for IE8's entry, but this time we have a quick fix: The X-UA header. The X-UA header allows us to specify to IE8 and above which rendering engine the website supports. So we can ask IE8 to use IE7's rendering engine.

X-UA Header

The "X-UA-Compatible" header (Experimental - User-Agent Compatible) can be delivered in meta data or as a true HTTP header. Makes life easy enough, both server-side scripts and template developers can set the header information then. How, well, since only IE is supporting this new feature so far, the simple answer is:
X-UA-Compatible = IE=EmulateIE7

In theory, as browsers evolve, this header can be expanded to include all browsers, and will allow you to say "use version X" or "use the cutting edge renderer".

As a HTTP Header

If you have control over the HTTP headers, such as in a PHP application or low-level control over the HTTP request, then you need just set the header, here's a PHP example:
header('X-UA-Compatible: IE=EmulateIE7');

As a Meta Tag

Not a programmer? Web developers can still easily use the header via meta data with the http-equiv directive in your HTML <head> section:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Changes in IE8

So what does IE8 bring us other than a new rendering engine to account for? Well since Google decided to release an open-source browser with some very nice developer tools, Microsoft decided to do a bit of copy-pasting (as Microsoft love to) and copied Google's "Object Inspector", which allows a developer to take a look into how IE8 is rendering the page, and a MUCH better console and error report. Great news for anyone trying to debug IE's ambiguous and often inaccurate error messages.

IE8 also supports native fall-back support. A user can press a button on the toolbar to have IE render the website using "compatibility mode", which is just forced fall-back into IE7 mode. Using this, a developer can also gain some insight into how IE7 will behave without having to use 3rd party tools. Unfortunately we can't see how IE6 will look, however.
 
 
 

Select the job type:

General Enquiry
Website
Desktop
Linux/server
Database
* Name
Your full name
* E-mail
An e-mail address we can contact you back on
* Phone
The prefered phone number for us to contact you
 
Company
The company name to which this project belongs
Website
URL of existing or intended production
Message
Any additional information you wish to let us know
  Submit Cancel
Loading..
 
 
Name
Your full name
E-mail
An e-mail address we can contact you back on
 
Loading..