Don't Break the WebLet's set the context via a brief history lesson: Internet Explorer 5.5 Back in the days of IE5, there really were few web standards -- or at if there were, developers didn't often pay them much heed. Much of the web content displayed was written in an IE5 non-standard interpretation of of the CSS2 (Cascading Style Sheets) specification. And all the world was fine because Internet Explorer was really the only browser heavily used (yes Netscape was there, but...) and who really cared anyway. Pages displayed properly, websites worked as expected. Internet Explorer 6 In 2001 Internet Explorer 6 showed its face and still very few companies were developing their sites or applications in standards mode. Microsoft however, decided to implement a switch that enabled developers to implement a standards mode if they wanted. The switch is known as the DOCTYPE switch. If used the browser assumes developers knew what they were doing and wants the standards applied. Otherwise the browser would render the content the old way -- in what was called "quirks mode." Why was the DOCTYPE switch used? Because Microsoft was committed to ensuring the backwards compatibility was maintained for older web content. This was captured in the motto "don't break the web." Having the DOCTYPE switch was a way for developers to opt-in to the new "standards." So at this point Microsoft was supporting two modes for their browser: quirks and standard. Internet Explorer 7 For almost 5 years all was well with the development world -- working away on their applications and website, ensuring they worked with IE6. During this period of time, web standards really started to kick in and more companies were forcing developers to write to the standards. Unfortunately, although they opted-in using the DOCTYPE switch for IE6, the standards it supported really weren't all that, er, standard. So many did workarounds for IE6's shortcomings -- and a lot of work was needed at times. Essentially, Microsoft fudged the standards mode. So, when in late 2006 Microsoft released Internet Explorer 7, all hell broke loose. By this time, more than half of the US websites were in standards mode, Microsoft found out. Microsoft had taken many steps to make the standards mode more "standard" in version 7, leaving quirks mode alone. They made a lot of changes to support the standard CSS specification. The problem was so many developers had been using the IE6 standards mode and had done so many workarounds to that version of the standards, that when they viewed their sites or applications in IE7 -- they found that the new standards mode broke the old standards mode content. And thus Microsoft had broken their own rule of "Don't break the web". That's a big reason why you only see IE7 available now as an automatic update to your browser and why so many companies were so slow to adopt that version internally.
The three modes of Internet Explorer 8In the IE7 postmortem things weren't so rosy for Microsoft. One of their supposedly most important rules was broken -- and they had to fix it. With over half of the browser market dominated by one version or another of IE, they needed to find a resolution that would help maintain compatibility, but would demonstrate their desire to commit to supporting web standards. And so they have found a solution. This is with the help of the the Web Standards Project (WaSP - Microsoft Task Force). The new motto the team adopted went like this:
"...enable (and encourage) interoperable web development, but don't force IE to break pages that work properly in IE today."The technical solution to their problem was to create three modes for Internet Explorer 8. These are as follows: Mode 1: Quirks This is the same mode that has existed since Internet Explorer 6. It continues to support content developed for older browsers like IE5.5. No changes to this mode will ever be made (intentionally). Mode 2: Standards that are less than standard This is the so-called "standards" mode of IE7. It's a start on standards, but does not really achieve fully standards support. Mode 3: True Standards This is the newest "standards" version of IE and the third mode. Some call it "super standards." This mode was not originally going to be enabled by default, but after community feedback and perhaps a new corporate emphasis on Interoperability Principles, they changed their mind. Now true standards support mode will be enabled by default and developers who want IE7 "standards" must turn it on by adding a meta tag to their pages that looks something like this: <meta http-equiv="X-US-Compatible" content="IE=8" /> This meta element should be placed in the head of a document, as close to the top as possible. Using it brings IE8 to a level that is comparable with FireFox 3, Opera and Safari. All will now deliver full CSS2.1 support (although IE8 is not completely there yet). This meta element essentially enables browser "version targeting" and goes somewhat against the whole browser independent standards application. The arrival of this new tag has generated some healthy debate. For some fun reading, see non-harmonious commentary here, here and here.
Following Key Web StandardsSupporters of the new meta element say it allows developers to make the choice of when they will support a newer browser version -- or when they are sure they do support it. Others say it now requires that Microsoft add additional modes for each new version of the browser they implement, resulting in a larger download and a more complex code-base for IE. It's not clear yet if other browser like FireFox and Opera will move to support and implement similar version targeting capabilities. Passing the Acid2 Test What is true is that Microsoft has demonstrated that IE8 does support a number of key web standards. In December it passed the Acid2 test. This test is a demonstration of how modern browsers will work across several different web standards. Yes, recently word came that IE8 is not passing Acid2 -- but Microsoft gave an answer for why it's happening. They state that because it's not the official ACID2 test, but rather a copy, that IE8 is failing due to cross domain security checks that IE performs for ActiveX controls. Enhancements to the standards include: * Standards support (CSS/HTML): Data: URIs, the abbr tag, CSS generated content; Display: table CSS properties, fixes for a number of CSS and HTML parsing bugs * Standards support (DOM) and AJAX : IE8 contains an enhanced and standardized DOM as well as support for AJAX with features like DOM: Storage, Cross Document Messaging (XDM) and the Selectors APIs * Accessible Rich Internet Applications (ARIA) Specification: IE8 will also support the new ARIA specification from the WCAG. Things like support for ARIA Markup and DHTML Extensions for Accessibility are included.
Should Browsers have Multiple Modes?The biggest question floating around is whether Microsoft should truly be supporting multiple "standards mode." If IE7 was really not standards compliant, shouldn't Microsoft just do the right thing and make v8 a well behaved W3C supporter? And shouldn't companies just bite the bullet and do what they have to to bring their sites and applications up to what the standards are? Would this not be good for the web as a whole? We think so, but there's another side to this, namely, that Microsoft needs to deliver something new to the corporate audience.
IE8 Supports an "Emulate IE7" Mode While the the ability to render correctly in a number of different browsers is critical for public websites and web applications, it's not as important when it comes to those things that live behind the firewall. In these corporate net preserves the bit surfing audience is captive. And for reasons that include security and simplicity corporate policies often force employees to use a specific browser. It seems likely that it's just this audience who want that "non-standard" standard to stay in place -- so they don't have to re-write or fix their sites and applications. That's understandable. The problem is that such environments become forever tied to IE -- which is great for Microsoft but potentially bad for businesses. Maybe this is Microsoft's real interest -- do whatever they have to to keep the enterprise crowd locked in their corner. So while we'd assert that multiple so called "standards modes" seem just plain wrong, the fact that MS has a history and maybe a related agenda to consider make this a somewhat inevitable scenario. However, once IE9 comes there should no longer be an excuse for such embarrassing wrinkles.