Don't Ask Me To Think, I Was Hired For My Looks

Posted: 18/02/11

Newer Is Not Always Better

We have been developing an application which is in the final stages of testing, and all was going well, until the client tried it out on Internet Explorer 8. This came as rather a shock, since the application was written to web standards and validated using the W3C on line validator. We'd tested it out on IE8 as well, so the reports of it looking a mess were rather a surprise.

The screen shots supplied did indeed look hideous, but when we tried it again on our IE8, it was fine. Quite a conundrum. Checking the code against the W3C Validator proved our code was clean, the DOCTYPE was good and our house generally in order. Even our CSS validated.

IE8 has various page rendering modes, and attempts to pick the one it believes best matches the page it's been fed. This is as a consequence of all the broken web pages that litter the web, which were designed to work on browsers such as IE6 and IE7 which had there own peculiar view of what standards really mean. We noted from the developer tools that IE8 was picking "Browser mode: IE8" and "Document mode: IE8 Standards". All good. However, on the client's machine, the browser mode was getting set to "IE8 Compatibility View", and the document mode was "IE7 Standards". Pardonnez moi? We suspected that the client had been mucking around with the developer tools and setting the browser/document standard, but they had other machines doing the same thing.

Then an epiphany - their machines are shiny and new and come with Windows 7. Ours are off-white, and XP. All the XP machines had no problems, the Windows 7 ones consistently rendered pages incorrectly. As our HTML was demonstrably valid and written to standards, there wasn't a lot that could be fixed. Our solution, was to tell IE8 to stop being stoopid and follow the standards - which we did with:

<meta http-equiv="x-ua-compatible" content="IE=8">

in the head section. Both Windows 7 and XP now rendered correctly.