Internet Explorer 7’s release in October 2006 caught many by surprise: Microsoft had made a concerted effort to follow web standards. The browser may not have been as advanced as Firefox or Opera, but it was heading in the right direction. Unfortunately, it broke thousands of web sites and systems.
Arguably, the faults were the responsibility of the web developers and their systems continued to use non-standard code. Unfortunately, many of those systems had been specifically designed for IE6 – flaws and all – and worked faultlessly for many years. Microsoft was caught in the crossfire and the move away from IE6 has been sedate at best.
In January 2008, Microsoft announced their solution to the site-breaking problem on A List Apart. IE8 would offer two rendering modes:
- by default, every site on the web would be displayed using IE7’s layout engine
- if you used web standards – and really meant it – you could add a meta tag that forced IE8 to render the page…
<meta http-equiv="X-UA-Compatible" content="IE=8" />
The clear benefit was that every site that worked in IE7 would continue to work faultlessly. Even when IE57 is released, the web page you create today would fall back to the rendering engine it was originally tested on.
The standards community was in uproar:
- Adopting web standards should help a website become device-independent and future-proofed.
- A browser should render a page to the best of its ability – not resort to a previous version of itself.
- What was the long-term future of this proposal? Would developers need to list every compatible browser and version?
- Why did we need to update every standards-compliant page so it opted-in to opt-out of browser-specific targeting?
Microsoft listened and on 3 March 2008 announced they would abandon the plan. Everyone cheered.
Despite this minor victory, the story does not end here. A recent Microsoft blog article describes Compatibility View Improvements to come in IE8:
- When a user has a problem with a website in IE8, they can click the “Compatibility View” button to revert to IE7 rendering.
- The URL is sent to Microsoft who compile a list of IE8-incompatible websites.
- This list is sent to IE8 users so the site can automatically switch to IE7-mode for everyone.
- If your website is fixed or is accidentally added to the list, you can add a meta tag to disable compatibility mode!
Whilst this may not be as bad as Microsoft’s original proposal, the most practical solution is to add the meta tag to ensure your site can never be added to compatibility-mode blacklist. We are back where we started!
Is Microsoft’s proposal reasonable? Will this affect your sites for the better or worse?
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.