Why does Internet Explorer have so many incompatibilities with other browsers

internet explorermicrosoft

Internet Explorer has a number of proprietary features that aren't found in other browsers as well as a number of incompatibilities with the standards. Does anyone have an idea what is the cause of those incompatibilities?

For example: I develop a browser extension using Crossrider framework. The extension works well with all combinations of [Windows | Mac OS | Linux] and [Chrome | Firefox] but it does not work with IE because IE handles $(window).height() and $(window).scrollTop() a bit differently.

Is there a known thorough analysis of that situation, or an interview with an insider that would clarify the cause? Is it the corporate culture, the design process, a QA flaw, or some horrid unknown legacy?

Best Answer

Why is Microsoft® Internet Explorer® incompatible with other browsers and published standards?

  1. To add features that other browsers don't have
  2. When programmers write web pages that use IE-only features, the code will not work on other browsers. This encourages end-users to view those sites in IE (and thus more people use IE, and since it only runs on Windows, more people use Windows).
  3. Microsoft tools (FrontPage is the most famous for this) tend to produce code that only works on IE, or works best on IE. While this promotes #2 above, it deserves its own bullet because the next developer to work on that web site or web application is now has to use the same Microsoft technologies that were originally used produce it, or have to rewrite the entire project in a different technology.

Corporate intranets are particularly vulnerable to this strategy because they provide an environment where all users are on the same browser (until a new version comes out). Also, if a site is not customer facing, there will be no budget for even the tiny cost of supporting multiple browsers. Over time, the legacy intranet sites at a company prevent that whole company from abandoning IE (or even a specific version of IE) for another browser.

Microsoft's approach is a double-edged sword. On the one hand, it has produced the XML/HTTP asynchronous request functionality which made AJAX possible (and other positive innovations) which other browsers quickly copied. But Microsoft also ends up producing versions of IE which are incompatible with each other, thus biting the very developers who played the most into Microsoft's plans.

My favorite example of intra-version IE incompatibility is Micrsoft's own IE6 Countdown campaign where they encourage people not to use their own browser. The theory being that Microsoft can encourage people to upgrade to a more recent version of IE, whereas others who shout "IE6 Must Die" are more likely to encourage users to use another brand of browser instead of IE.

In short, it's a fairly successful market-domination strategy by Microsoft which has sometimes hurt and sometimes helped the rest of the industry. For myself, I try to produce only validated, standards-compliant HTML that is tested on the latest version of any browser with 2% or more market share (plus the latest 3 versions of IE).


Microsoft and Internet Explorer are registered trademarks of Microsoft corporation in the US and/or other countries.