Internet Explorer: Difference between revisions

Content deleted Content added
Line 85:
=== Web standards support ===
 
[[Image:Box-model-bug.png|right|frame|The [[Internet Explore box model bug]]]]
Internet Explorer's rendering engine fails to completely implement the [[web standard]]s as defined by the [[World Wide Web Consortium]] (W3C). Although with each version Microsoft has improved standards support, including the introduction of a "standards-compliant mode" in version 6, the core standards that are used to build web pages ([[HTML]] and [[Cascading Style Sheets|CSS]]) are still implemented in an incomplete fashion. For example, there is no support for the <nowiki><abbr></nowiki> tag which is part of the HTML 4.01 standard, and there are bugs in the implementation of float-margins for the CSS1 standard. [http://news.com.com/2100-1032-5088642.html] [http://www.quirksmode.org/css/contents.html] The [[Internet Explorer box model bug|buggy implementation of W3C box model]] is also one of the best-known bugs in Internet Explorer's implementation of CSS.
 
[[Image:IE_PNG_bug.png|right|frame|The Internet Explorer PNG transparency bug]]
Thanks to these bugs, many developers have been using workarounds and [[Hack (technology slang)|hack]]s that utilize other bugs in the rendering engine, so as to hide and override CSS property settings from Internet Explorer. The CSS hacks are often very complicated, as they need to due with different versions IE under different platforms (mostly Windows and Mac). Some of the more common CSS hacks:
The lack of support for [[PNG]] alpha channel results a reduced usage of the PNG [[image format]]. The transparent part of the image will be displayed as gray or white, depanding on the [[image editor]] where the PNG image was created. The bug is documented in Microsoft Support [http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294714]. Despite of the fact that the image format has been around since 1995, there seems to be no active developement that would solve this problem.
 
Pages that are designed to be compliant with W3C standards may not render correctly in Internet Explorer, and can crash the browser in the worst case [http://lists.virus.org/bugtraq-0310/msg00041.html]. However Internet Explorer's dominance of the web-browser market for the last 5 years has lead many web developers to treat it as a [[de facto standard]] and design their websites for IE's characteristic rendering, rather than [[computer programming|coding]] them to conform to the W3C standards. This leads to problems for users who use other web browsers.
 
ThanksConversely, tomany theseother bugs,[[web manydesign]]ers developersbuild havewebsites beencompliant usingto workaroundsW3C standards, and then implement workarounds or [[Hack (technology slang)|hack]]s thatto utilizeaccount otherfor bugsInternet in theExplorer's rendering engineinadequacies, so asor to hide andadvanced overridewebsite CSS property settingsfeatures from Internet ExplorerIE. The CSS hacks are often very complicated, as they need to due with different versions IE under different platforms (mostly Windows and Mac). The hacks utiltize not just Internet Explorer-specific features, but also some rendering engine bugs that are well-known. Some of the more common CSS hacks:
* Exploiting [http://www.info.com.ph/~etan/w3pantheon/style/starhtmlbug.html|Star HTML selector bug]
* Exploiting [http://rooster.stanford.edu/~ben/notes/authoring/cssie.php CSS parsing bug]
* Using CSS2 selectors that IE doesn't recognize
* Using JavaScript and [http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/behavior.asp|IE behavior]
* Using IE [http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/filter.asp|CSS filters]
* Using [IE conditional comment|http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp]
 
One of the most popular IE hack collection is known as IE7 [http://dean.edwards.name/IE7/], by Dean Edwards. It is an attempt to make Internet Explorer more compliant when it comes to web standards. In addition to the support of some CSS2 selectors, it also fixes some of the IE bugs. However, as many client-side scripts need to be loaded and run before displaying the page properly, there is a considerable amount of loading time needed for every single page.
Pages that are designed to be compliant with W3C standards may not render correctly in Internet Explorer, and can crash the browser in the worst case [http://lists.virus.org/bugtraq-0310/msg00041.html]. However Internet Explorer's dominance of the web-browser market for the last 5 years has lead many web developers to treat it as a [[de facto standard]] and design their websites for IE's characteristic rendering, rather than [[computer programming|coding]] them to conform to the W3C standards. This leads to problems for users who use other web browsers.
 
Conversely, many other [[web design]]ers build websites compliant to W3C standards, and then implement workarounds or [[hack]]s to account for Internet Explorer's rendering inadequacies, or to hide advanced website features from IE.
 
In order to render as many web pages as possible, Microsoft has designed Internet Explorer's rendering engine with strong fault-tolerance in mind. It will compensate for errors made by web designers while building web pages, by filling in missing HTML tags and ignoring structural problems. The impact of this decision is mixed. This tolerance of invalid pages does help typical end-users who have asked to view that specific page, since even terribly nonstandard pages still provide information. However, since some developers test only by seeing if IE renders a page, nonstandard pages have proliferated, making it more difficult to create tools (such as specialized search tools) that automatically process and analyze web pages.