Idiosyncrasies in the various versions of IE -- especially IE6 -- have created problems for other browser vendors and Web developers. Even Microsoft has struggled to maintain backward compatibility with bugs, nonstandard methods and other issues it has created for itself. As a result, Microsoft has had to drag along an installed base of corporate and public Web sites that were built to the quirks of its previous browsers, trapping itself into endless iterations of standards noncompliance to provide backward compatibility.
"It's difficult for them to keep their own bugs alive over the years because they know that they can break thousands of pages," says Philippe Le Hegaret, interaction domain lead at the W3C.
For example, in an inconsistency in IE that Chris Wilson, platform architect for Internet Explorer, calls the "CSS overflow problem," Microsoft's IE7 browser displayed overlapping text when viewing Web pages designed to IE's nonstandard approach used in IE6. The Web sites were sending IE 7 a special case style sheet for IE6 while serving up standards-compliant renditions of the pages to Firefox and every other standards-compliant browser. The sites worked with every browser except for IE7.
Because of IE's overwhelming market share, many developers have historically coded their sites to the nonstandard methodologies and work-arounds required to support IE6 and earlier browsers. Those sites often don't render properly when viewed from competing browsers, even if those browsers follow W3C standards. To address that, many developers keep two sets of cascading style sheets -- one for IE and one for everything else.
But times have changed. It used to be that everyone developed for IE first. Now it is the special case. Many developers code to a standards-compliant browser such as Firefox first and then present a different style sheet to IE users.
That's what Eric Meyer does. Meyer, a prominent Web developer, author and principal at Complex Spiral Consulting, says he might develop in Firefox first, using an extension like Firebug, then test it in Safari, Opera and other standards-compliant browsers. "In the end, I'll fire it up in IE, find out what went wrong and work the code around that," he says.
Looking toward IE8
As it develops its next version, Internet Explorer 8, Microsoft has gotten serious about supporting standards first. "In the past we've focused more on [backward] compatibility than interoperability. Now we're trying to be as interoperable as possible," says Wilson.
Microsoft's IE group is also playing a larger role at the W3C. "Microsoft has expressed that they want to support standards 100 percent on several occasions, and they are participating in our groups," says Le Hegaret.