IE Compatibility List Pruning


Hi, I am Michael Benny, a tester on networking in Internet Explorer. During the Internet Explorer 8 development cycle I was responsible for verifying many of the pieces of Compatibility View. We have discussed earlier about how the Compatibility View feature works and the steps a site author can take to ensure the Compatibility View button never displays for IE8 users visiting your site. There is another scenario that we have not yet covered, if my site was already added by an End-user to their Compatibility View list before my site was updated, and now it’s ready, how would I get the site off of that user’s list? I wanted to share one particular feature that we haven’t blogged about before – the ability to “trim” domains from a user’s Compatibility View list.

As a quick refresher on Compatibility View, Internet Explorer 8 uses its most standards-compliant rendering behavior by default. This configuration may cause problems with websites that expect the older, less interoperable behavior from IE. As a site administrator, you have a number of tools at your disposal to ensure IE8 clients have a compatible experience with your website – taking advantage of the standards improvements in IE8 or using the X-UA-Compatible header to tell IE8 “display content as IE7 would have” being the two most common options site authors have requested.

End-users also have a way to mitigate compatibility issues they may encounter in the course of normal browsing on sites that do not have the X-UA-Compatible option explicitly set. They can choose to view a site in Compatibility View, an IE7 emulation mode, by toggling a button on the browser’s address bar. Internet Explorer 8 remembers Compatibility Button presses on a per-domain basis in order to provide a more seamless return-visit experience. These domains are stored in a registry location on the client at HKCU\Software\Microsoft\Internet Explorer\Browser Emulation.

When a site is in a user’s Compatibility View list, the default document rendering behavior will be set to IE7 Emulation mode and it will affect the User Agent String used to request pages. As a site admin, you are always in control of how your site is displayed. Using the X-UA-Compatible tag, you can override Compatibility View on the client and dictate the exact rendering mode your site should be displayed in. Site admins also have the option to deploy the X-UA-Compatible header for a large section of pages as an HTTP header (Example: IIS and Apache). You can take this one step further by using the X-UA-Compatible to also remove your domain’s entry from the user’s Compatibility View list. Here’s how…

For a domain to be trimmed, the End-user must first land on a page with the X-UA-Compatible Meta tag or HTTP Header. The presence of an IE8 <META> tag does indeed trigger the list clean-up process, but that’s not all there is to it. The next step is to look for a file called ‘IEStandards.xml’ placed at the domain root. IE will first make an HTTP HEAD request for this file looking for its presence. Absence of the file means that the domain remains in the user list. If the HEAD request is returned successfully, then IE will perform an HTTP GET request for the file. In the file, a tag called ‘IE8StandardsMode’ signals the list entry is really ready to be trimmed. Here is an example of the correct server configuration for ‘example.com’:

  1. Set the page X-UA-Compatible header set to a value indicating IE8 mode
    <meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE8″>
  2. Place a file at the root of the domain ‘example.com’
    http://example.com/IEStandards.xml
  3. The file should have a root XML element called IE8StandardsMode:
    <IE8StandardsMode/>

Site admins should be aware that this affects all sub-domains. So if a user visits a page at ‘support.example.com’, which is configured as shown here, but there is another sub-domain like ‘mail.example.com’, which would still like to respect the user’s choice to put the site into Compatibility View, then the ‘mail’ sub-domain will use IE8 Standards mode rendering.

Domain graph.  There is a subdomain support.example.com which has the meta tag set to IE8, at the root there is an iestandards.xml file now if the user visits mail.example.com they will view that subdomain in IE8 standards mode.

The entries on the Compatibility View list reflect an entire domain, example: ‘example.com’, rather than subdomains like ‘mail.example.com’ and ‘support.example.com’. IE must process the request to trim the domain entry from a source that represents the entire domain, otherwise side effects to subdomains may occur. As an example, suppose the entire ‘example.com’ domain is on the user’s Compatibility View list. Later, ‘support.example.com’ does great work to update their site to support IE8 and includes a HTTP header / <META> tag indicating that portion of the site is best viewed in IE8 Standards Mode. ‘example.com’ and ‘mail.example.com’ have still not been updated. If IE were to remove the entry for ‘example.com’ from the user’s list based solely on the presence of the HTTP header / <META> tag value found at ‘support.example.com’, the user could encounter a compatibility failure when they visit non-updated content at ‘example.com’ or ‘mail.example.com’. Checking for the ‘IE8StandardsMode’ file at the root domain level solves this case by requiring that someone “authoritative” for the domain signal list cleanup. That way, IE users can be assured of a consistent compatibility experience on the domain.

Getting the IEStandards.xml file follows a very similar model to how IE will request favorite icons for domains, but we wanted to address the issue of server overhead. To avoid IE8 making multiple and unnecessary requests to a server for this file on every page navigation with the X-UA-Compatible option set, there exists a 30 day timeout period since the last request. This 30 day timeout period is also set when a user adds a domain to their user list, so do not be alarmed if you still see IE8 Compatibility View requests after deploying the file to the domain root.

Timeline of traffic between IE8 and the webserver which determines  when IE can remove a site from the compatibility list.

Thanks,
Michael Benny
IE Test

Update 6/4/09: Correcting a reference to IESettings.xml which should be IEStandards.xml

Comments (75)

  1. Anonymous says:

    I’ve always loved this line:

    "less interoperable behavior from IE"

    Why don’t you come straight out and call a spade a spade when talking about IE before IE8.

    "buggy as all get out behavior from IE"

  2. Anonymous says:

    @rusty

    Because IE7- behaviours are not buggy. MS was just sticking to their de facto standard for the sake of everyone.

  3. Anonymous says:

    @Eden

    Same here, when I write code I don’t have any bugs, they’re features!

  4. Anonymous says:

    For the sake of everyone? The children in Uganda, Lynx users?

  5. Anonymous says:

    I’m pretty sure the file is called "IEStandards.xml", not "iestandards.xml". (The difference is very significant for anyone using e.g. Apache on Linux.)

    Later in this post you also mention "IESettings.xml", which probably should be "IEStandards.xml" too.

  6. Anonymous says:

    "As a site admin, you are always in control of how your site is displayed"

    — one major exception there – If the site in question is at the mercy of an old CMS which generates an html comment and places it before your DOCTYPE, you’ll incur the IE bug that flips the browser into quirks mode regardless of your DOCTYPE or, it seems, any manually set compatibility strings set with the X-UA-Compatible tag.

    Are there any plans to allow us to finally kill that bug in IE8 by making the X-UA-Compatible tag override the bug?

    James

  7. Anonymous says:

    Many work/information for less result.

  8. It’s great the IE8 Team has added this feature to use the X-UA-Compatible tag to remove one’s domain entry from a user’s Compatibility View list.

    "If IE were to remove the entry for ‘example.com’ from the user’s list based solely on the presence of the HTTP header / <META> tag value found at ‘support.example.com’, the user could encounter a compatibility failure when they visit non-updated content at ‘example.com’ or ‘mail.example.com’. Checking for the ‘IE8StandardsMode’ file at the root domain level solves this case by requiring that someone “authoritative” for the domain signal list cleanup. That way, IE users can be assured of a consistent compatibility experience on the domain."

    Look at this scenario here: ‘example.com’ and ‘support.example.com’ are owned by different individuals and the owner of ‘example.com’ places an HTTP header / <META> tag after updating the site, while ‘support.example.com’ has not been updated. Won’t users experience a compatibility issue when they visit the non-updated content at ‘support.example.com’?  In this case does IE8 still view ‘example.com’ as “authoritative”? Or am I missing something here?

  9. Anonymous says:

    @Eden – I’m presuming you are a troll.  If IE was following standards to begin with we wouldn’t be in this mess now.

    I agree with @rusty that the line Microsoft uses tries desperately to put a "softer spin" on what qualifies as a major mistake.

    I’m just glad IE is fixed now! All I have to do now is drop support for IE7 and I’ll never have to worry about coding special hacks for IE again!

  10. Anonymous says:

    @Mick

    I wish your last point was true "I’ll never have to worry about coding special hacks for IE again!"

    Maybe the following is not really a hack, but it is certainly extra time.

    Most of the other browsers are now or close to supporting css rounded-corners, text-shadow and box-shadow.

    If I want to create a div to hold some content which is nicely styled with round corners a slight shadow. It can be done with a few lines of css code.

    If I want to get IE8 to do the same way I need to start opening a graphics editor to create a bunch of background images for the same effect.

    The question is do I forget the images and let IE users see ugly blocks or waste a few hours getting it to look good in IE.

    I really can’t quite fathom how a phone browser can be supporting rounded corners yet my dual core super powerful desktop machine running IE8 can’t.

    Why can’t the IE team start making more regular incremental updates to the browser and start adding these feature. Or even announce they plan to add them.

  11. Anonymous says:

    @Mike – Can I get a what, what!  I would love if rounded corners were available in IE and yes they should have announced their roadmap for inclusion when IE7 beta was on the table. pity.

    @Quality Directory – You are not confused.  There were major flaws in the design of Compatibility mode that were pointed out to Microsoft but fell on deaf ears.

    1.) Localhost/127.0.0.1/192.168.100.x **SHOULD** all display the compatibility mode icon.  I could care less which mode it puts me in by default, but I should be able to switch **RAPIDLY** during testing… which always happens on Localhost/127.0.0.1/192.168.100.x!!!

    2.) Since many sites use the subdomain structure to organize **DIFFERENT** code functions (e.g. Blogs, Trouble Ticketing, Beta’s, Mail, Admin (DB, Appserver, Web server,…) or in the case of many shared hosting sites, multiple customers.  Thus there should have been since day 1, a setting for foo.example.com AND bar.example.com AND baz.example.com etc.

    Two heavy blows to developers trying to adapt to Microsofts latest version of IE.  I feel very sorry for anyone that needs to go through the above steps to move a site out of compatability mode.

    Personally I had 3 legacy apps that **were** subdomains that failed to function under a main app that was built to standards.  Since there was no realistic support option for this arrangement I had to port the apps to a different server.  Maintaining SSO was a nightmare but oh well.

    @Mick – Very thought provoking. I dropped IE6 support in April which cleaned up several ‘k’ in hacks and horrible IE behaviors to workaround bugs but I still have a bunch of IE7 hacks in place.  I think if another 10% of my users move from IE7 to IE8 or another browser I’ll go for it.

  12. ahacks says:

    IE8 apparently has some bugs which M.S. has not ironed out that work  correctly previous in IE versions.

    <p><strong>Bug issue:</strong> Transparent animated GIFs when repeated (repeat-x or repeat-y) in a background,  the transparency fails and shows as a black cover.</p>

    <p><strong>Replicated sample:</strong> <br /> <br /> <br /> this bug is being replicated and displayed for the time being on <a href="http://www.ahacks.com/">www.ahacks.com</a></p&gt;

  13. @Lenard, the problem is even more complicated when someone sells his/her sub-domain, support.example.com, and the new owner of the sold sub-domain moves it to another server. In this case, why should IE8 still give the owner of the domain, example.com, the "authority" to define how the sub-domain, support.example.com, should be viewed?

    In my opinion, IE8 needs to give "independence" to sub-domains.

  14. Anonymous says:

    @Quality Directory

    As a site author you always have control over how your site is viewed by an visitor. If you set X-UA-Compatible to IE=EmulateIE7 on the subdomain with legacy apps, then that will override this setting.

    The purpose of this feature is to allow domains to clear themselves from a list that is stored locally on each users machine.

  15. @Michael Benny,

    Thanks for replying and enlightening me. One more question, please.

    After setting X-UA-Compatible to IE=EmulateIE7 on the sub-domain with legacy apps, the iestandards.xml should have a root XML element: <IE7StandardsMode/>. That’s Am I right?

  16. Anonymous says:

    @Quality Directory

    In IE8, the iestandards.xml will only interpret a root element with the value <IE8StandardsMode /> to remove a domain that is already on a visitor’s Compatibility View list.

    But, even if the domain root has that available, setting the X-UA-Compatible to IE=EmulateIE7 will store force those documents to behave like IE7 (where we use doctype switching to determine using quirks mode or strict mode ‘IE7’)

    When applying this to the documents in an entire subdomain, I would recommend using a serverside HTTP header to ensure that legacy documents do not need to be updated, and that it is applied to all the documents there.

  17. Anonymous says:

    How is it possible to Uninstall Internet explorer at Win. Vista?

  18. @arvids: You can uninstall IE8 to go back to IE7 by following the instructions here: http://www.enhanceie.com/ie/ie8.asp#uninstall

  19. @James, as far as I can tell, the X-UA-Compatible:IE=IE8 header *does* override the behavior where a document with a leading comment is kicked over to quirks mode.

  20. Anonymous says:

    @eric, great news – thanks for clarifying… I think I got confused since document.documentMode returns "CSS1Compat", which to my mind sounds a bit bizarre when we’re aiming for full CSS2.1 compatibility… Automatically assumed this meant we were still in quirks mode.

  21. @James: You’re thinking of document.compatMode, which is a legacy property which has only two values: "BackCompat" and "CSS1Compat".

    http://msdn.microsoft.com/en-us/library/ms533687%28VS.85%29.aspx

    document.documentMode will return 5 (Quirks), 7 (IE7 Strict), or 8 (IE8 Standards).

    -Eric

  22. Anonymous says:

    When are you IE developers going to realise that your browser is fundamentally broken?

    Safari doesn’t need a compatibility mode. Firefox doesn’t need a compatibility mode. Opera doesn’t need a compatibility mode. Chrome doesn’t need a compatibility mode. Why? Because they all make a serious effort to support the web standards that have been put in place for a very good reason.

    We developers do not want to mess about with "compatibility mode". We want to write websites that work in all web browsers, so that we don’t have to fill our web code with extra stuff just because Internet Explorer won’t play nice.

    Once your browser passes the Acid3 test, then we’ll talk.

  23. Anonymous says:

    Compatability testing with iframes. Content hosted as a content area in a master page sizes correctly with IE 6, but any attempt to change the rendered size of an IFRAME fails in compatablity mode fails. the iframe hieght is about five lines of 10pt type regardless of settings.

    Are there any solutions to this?

  24. Anonymous says:

    Neil, when are YOU going to realize that the web is "fundamentally broken"– not the browser?

    Safari/Firefox/Opera/Chrome all have assorted problems rendering sites that were written (hacked together?) for IE6 and older (pre-standards/early-standards) browsers.

    For compatibility with those sites, users use IE, which is why it remains more popular than all competing browsers combined. It’s not a coincidence.

    You should be praising the IE team for developing a new version of their browser with a default "Standards mode" that is compatible with those standards-compliant but somewhat-real-world-incompatible browsers. If IE8 didn’t offer a "Compatibility mode" then the majority of the world that uses IE6+IE7 wouldn’t upgrade, and users would stay on browsers that don’t support standards as well and browsers that aren’t as interoperable with those other browsers.

    btw: your suggestion that other browsers don’t have "modes" is wrong– look up "quirks mode" and "almost-standards" mode on wikipedia or the Mozilla Developer Center.

  25. Anonymous says:

    I just want IE to fully support window.navigator.plugins and window.navigator.mimeTypes.  If third party plugins and ActiveX objects are the weak link, let’s make simple browser plugin detection more unobtrusive, instead of loading a potentially untrusted plugin and raising the fear level with in-your-face security warning popups.

  26. Anonymous says:

    @Ian

    > the web is "fundamentally broken"– not the browser

    IE 8 does not support DOM 2 Events interface, does not support DOM 1 Core like other (Firefox 3, Opera 9, Safari 4, Konqueror 4) browsers, does not comply with DOM 2 CSS interface, does not support DOM 3 Core interface like other (Firefox 3, Opera 9, Safari 4, Konqueror 4) browsers, has HTML 4 bugs, DOM 1 bugs, DOM 2 bugs, ECMAscript specification violations, has non-compliant results or unsupported elements, unsupported attributes, unsupported properties, unsupported methods, unsupported accessibility requirements/recommendations (UAAG 1).

    The web is still very much broken and this, in large part because of MS products like MS-FrontPage, MS-Word HTML export feature over the last 10 years.

    > For compatibility with those sites, users use IE, which is why it remains more popular than all competing browsers combined.

    If the main problem on the web is severely malformed markup code, then the solution, the real solution is to remedy+improve, to correct, to upgrade those websites, to offer customized assistive softwares (eg HTML Tidy, A real validator, iWeb, BlueFish) to help web authors to upgrade their websites and not by providing them more "IE-bugward" rendering modes, more "IE-bugward" settings, buttons, checkboxes, managed compat-lists, etc.

    IE 8 is a 3-IE-browser-versions-in-1 IE . Per se, using it will not change anything on the web, with the web.

    > If IE8 didn’t offer a "Compatibility mode" then the majority of the world that uses IE6+IE7 wouldn’t upgrade,

    Again, read your very own initial statement. The problem is with the web, not the browser. So, upgrading to IE 8 does not change anything in the web, about the web, regarding the web.

    > other browsers don’t have "modes" is wrong

    Other browsers have backward-compatible "quirks" rendering mode (document.compatMode == BackCompat) and web-standards-compliant rendering mode (document.compatMode == CSS1Compat). That’s true.

    But they try to maintain the number of quirks to a minimum, they offer documentation to solve compatibility issues, they do not create and implement more buttons, switches, modes, customizations, preferences, document.documentMode, compat-list and settings to manage all this which can only increase the level of complexity and at the same time, confort and encourage web authors into NOT upgrading their severely malformed+invalid markup code and CSS code with parsing errors.

    regards, Gérard

  27. Anonymous says:

    @James, @EricLaw [MSFT]

    > as far as I can tell, the X-UA-Compatible:IE=IE8 header *does* override the behavior where a document with a leading comment is kicked over to quirks mode.

    We (Ingo Turski in march 2008 in IE Blog, Dean Edwards in september 2005 in IE Blog, and others) reported such *bug* before. Do not call such thing as a behavior when it is clearly a CSS implementation bug. A perfectly valid (markup code, CSS code, doctype declaration pointing to/referencing to a strict DTD) should honor the CSS 1 box model accordingly, as specified by the specs.

    gtalbot.org/BrowserBugsSection/MSIE7Bugs/#bug140

    gtalbot.org/BrowserBugsSection/MSIE7Bugs/#bug170

    gtalbot.org/BrowserBugsSection/MSIE8Bugs/#bug99

    gtalbot.org/BrowserBugsSection/MSIE8Bugs/#bug196

    This bug happens maybe more frequently than Microsoft expected.

    E.g.: the whole website of nwa.com is affected by such IE bugs.

    E.g.: there are some advanced text editors which will output some comments at the beginning of an .html file

    Again, this is a bug in IE (all versions since IE 6) and not anywhere else.

    Gérard

  28. Anonymous says:

    @Ian

    > the web is "fundamentally broken"– not the browser

    Microsoft introduced and implemented the hasLayout feature into IE. A very very wide majority of web developers, web authors denounced such feature as incompatible with CSS 1 and CSS 2.1 specs, as unbelievably difficult to understand and use.

    No other browsers implemented such nebulous, unbelievably-difficult hasLayout feature.

    So, while I entirely agree with saying that the problem is now on the web, with the web, regarding the web, a rational examination of the issues involved must also point out IE bugs, IE implementations, IE-rendering-engines related web authoring tools.

    "If I had known about [hasLayout feature] this from the start most of my worries would’ve been solved. I even regard [hasLayout feature] it as a worse problem than IE6’s stupid box model."

    StackOverflow: What do you wish you knew before you spent hours trying to fix a bug in IE6, by Joshua, October 28th 2008

    In the last 10 years, there has been even tools which have been developed to remove bad code output by MS products like MS-Word and FrontPage:

    tidy.sourceforge.net/docs/quickref.html#bare

    tidy.sourceforge.net/docs/quickref.html#word-2000

    There’s also Microsoft Demoromizer:

    fourmilab.ch/webtools/demoroniser/

    My conclusion:

    Once you’ve debugged, corrected, upgraded the HTML rendering engine and the CSS parsing+rendering engines in IE, then you need to do the same with web|HTML authoring tools, assist web authors into upgrading the markup code and CS code of their malformed+poorly-written webpages. Better tools.

    Also better documentation. The whole set of MSDN documentation webpages on web standards, web development, HTML, CSS, DOM, etc. is atrociously invalid, malformed, full of errors, even and especially in the code examples supposedly there to teach the readers/visitors of such webpages. Blatant wide-scale contradiction here. And many have denounced this during years.

    If the problem is with the web, then Microsoft should start with their own IE Blog webpages and with its whole microsoft.com website. There is no reason – never was – to have hundreds of markup errors per page, thousands and thousands of validation markup errors all over in all websites controlled, owned, funded by Microsoft.

    regards, Gérard

    regards, Gérard

  29. Anonymous says:

    @Anthon

    > I just want IE to fully support window.navigator.plugins and window.navigator.mimeTypes.

    Anthon, please specify what you’re requesting here…

    "

    (…) one of the most short sighted decisions, they [Microsoft IE team project managers] decided not only would they [Microsoft IE team project managers] not support either technique, but they [Microsoft IE team project managers] would support the collections. They [Microsoft IE team project managers] would just leave them empty. Their documentation gives a completely inaccurate description of the collections, making it impossible to understand what approach to take.

    "

    howtocreate.co.uk/wrongWithIE/?chapter=navigator.plugins

    We reported this in the past. Again, while it’s true that the major part of the problems is on|about|in|regarding the web, it is absolutely fair and correc to state that there are still many bugs, issues, problems with the IE 8 browser.

    regards, Gérard

  30. Anonymous says:

    Gerard, I hope you’ll agree with me that when one comes across as a whiny child, telling others what they may and may not say, they are far less effective in bringing about the changes they seek. Food for thought?

  31. Anonymous says:

    @ahacks

    I checked your dynamic curtain demo with IE 8 when forced into web standards compliant rendering mode and, after a superficial examination, I’d say that there is a great probability that there is a bug in IE 8 in web standards compliant rendering mode. More time, closer examination would be required to be sure of that.

    It could require quite a bit of time to figure out what exactly is the bug (curtains.gif is an animated gif), then create a reduced testcase out of it since the page uses a table unneedlessly (curtains.gif is defined as a background image within a table cell), has no doctype declaration, uses deprecated elements and attributes.

    regards, Gérard

  32. Anonymous says:

    The compatibility view button seems to have exactly the effect that I was afraid of. In the last day or so we had 1020 visits with IE8 in normal mode and 145 in compat mode. And this even though the site works a little better with standards mode than with IE7 or IE8-as-IE7 mode.

    This is exactly the thing that I was afraid of from the start with the compatibility view feature – that in the end, one would have to opt in into sane behavior, even though IE8 is in standards compliant mode by default.

    And problems like this of course lead to hacks like the one that is announced here. I really think that it would have been better to force sites to opt in into IE7 behavior, if needed. Since this was not done, those sites who can benefit from IE8, cannot trust it unless the actively opt in. In effect this reverses the model and will create problems that will still linger when IE7 has already been flushed out.

    By the way: Could anyone share their ratio of IE8-in-standards-mode against IE8-in-compat-mode visitors? I would be most interested, how this looks elsewhere on the web.

    Best Regards

    Christian

  33. Anonymous says:

    P.S. does this feature also work with IE=edge? What would the XML file contain in such case?

    Also, how will this feature interact with IE9? Will it be possible to request proper IE8 behavior for IE8 and proper IE9 behavor for IE9?

    There are people that just want the sanest browser behavior available instead of enumerating the versions you have released. Please try to keep this in mind.

    Regards

    Christian

  34. Anonymous says:

    I am in compatibility View on a personal webpage and cannot locate a problem, error, or any mistake. Actually my opinion is solved and can move on to even more things.

  35. Anonymous says:

    document.domain=’x.cn’;

    error: "invalid argument"

    document.domain=’x.com’; OK

    WHY?

    HTANK U!

    msn: cgisir@hotmail.com

  36. Anonymous says:

    My most of the themes of wordpress not compatible in  Internet explore , what i can do to fix this problem.

  37. Anonymous says:

    "How is it possible to Uninstall Internet explorer at Win. Vista?"

    ??????

    msn:cagri_tekir@hotmail.com

  38. Anonymous says:

    @koxp: You can uninstall IE8 to go back to IE7 by following the instructions here: http://www.enhanceie.com/ie/ie8.asp#uninstall

  39. ahacks says:

    I swapped the old webpage with the newer one as you suggested w/o and the needless table and proper DTD standards:

    http://www.ahacks.com

    I validated and placed the W3C kosher stamp of approval 😀 , this should do away with all the naysayers.

    now if only the geniuses at MS would fix this bug!

  40. Anonymous says:

    I second Christian’s question: does it work with IE=edge?

  41. Anonymous says:

    @Ian the web is "fundamentally broken"– not the browser: It is a matter of perspective. As a web developper, I think both a brocken: IE (including IE8) is broken beacuse they still do not support a miminum of web standards. This forces web developpers to code pages that use non-standard IE-specific functions.

    For example, according the W3C, Javascript event can be attached by addEventListener. This function is not available in IE and a non-standard function attachEvent must be used. When IE had more than 80% of marketshare, some developpers didn’t even bother and used only attachEvent. This problem has been here for years, and IE8 still does not support addEventListener!

    There is also a long list of standards (see Gérard’s post), that IE8 does not support. This forces the use of non-standard IE-only solutions. Already Firefox 1.5 supported SVG, but still now one has to use VML for IE8. Currently the OpenLayers javascript library does not work in IE8 because of a VML problem. Indeed, one could say that OpenLayers is broken, but there wouldn’t be this problem is IE would support SVG.

  42. Anonymous says:

    Please disable all activex controls from the IE’s Internet Zone, don’t let IE to be attacked by a next 0-day flaw.

  43. Anonymous says:

    @mial: You can easily do this using the Tools / Internet Options / Security tab.  You will likely find, however, that many major sites (e.g. any site that uses Flash) rely on ActiveX controls.

  44. Anonymous says:

    Alex, you’re missing the point… the point is that if IE stopped supporting attachEvent(), then many websites would break. The IE team has to add standards support without breaking older sites, or the new versions of IE won’t be adopted, meaning that standards are much slower to be adopted.

  45. Anonymous says:

    @Mitch 74 and Christian

    Yes, this behavior will get triggered when using X-UA-Compatible IE=Edge or IE=IE8 as well

  46. Anonymous says:

    Michael Benny, it would help web designers out alot if you fixed the bug with IE8 listed here:

    http://en.wikipedia.org/wiki/Internet_Explorer_8#Bugs

  47. Anonymous says:

    Dear Michael

    thank you very much for the clarification.

    However, my main confusion is, that IEStandards.xml  contains a version number in its  "IE8StandardsMode"-tag.

    Which effect will this have when IE9 comes out? Will it – together with IE=edge – opt out of any future compatibility modes? Is there a way to explicitly specifiy edge-mode in the Xml-File too, so that it matches the declaration in the page, for example by writing something like:

    <IEEdgeStandardsMode />

    I am trying to understand how this XML file (especially with IE=edge) would affect things, when IE9 or 10 or 11 comes out. Of course that is hard to tell, what these browsers will do but it would be important to know how you think this xml file will be extensible, if something like this should be needed again by future versions of IE. Or would there have to be new XML files for future IE versions, as soon as they require a similar switching mechanism?

    Having a version number in the root element of the XML file does not seem to make it very extensible and feels a little ad-hoc to me.

    Thanks & Regards

    Christian

  48. Anonymous says:

    Reading the results of a survey on Digg as to why/when they will drop IE6 support they asked IE6 users why they are using IE6.

    The answers were shockingly scary:

    http://farm4.static.flickr.com/3483/3707763174_5bf03a2cdb_o.jpg

    7% couldn’t upgrade due to windows version (e.g. win2k)

    37% couldn’t upgrade due to not having administrator priv.

    32% couldn’t cause someone at work said they couldn’t

    17% didn’t feel the need to upgrade

    7% actually preferred IE6

    For the I.T. Admins blocking upgrading to IE7/IE8 Why on earth are you making your end users suffer with IE6?!

    For the end users without admin priv. to upgrade themselves – I pity you. I could not work at a company like that. I would need to quit within a week.

    For the end users that have been told no – ask again – raise a stink – there is no reason why you should be suffering with IE6, and your companies neglect in upgrading **IS** holding back the web.

    And finally for those that don’t feel the need, or prefer IE6… you need to think outside the box and explore new browsers.  Not only is IE6 a horrible browser in 2009 but you are missing out on so many improvements in speed, tabs, security and ease of use that you owe it to yourself to upgrade… even if to IE7 or IE8! (yes I’m a Firefox fan, but any browser better than IE6 would be a massive improvement)

    see here for the full blog post about Digg dropping IE6 support (someday soon… TBD)

    http://digg.com/d1wK0V

    Good read.

  49. Anonymous says:

    @Christian – you are correct about the opt-in to IE7 rendering comment.

    This was (as many have mentioned) an Epic Fail in terms of moving towards supporting open standards by default.

    I cringe every time I think about how this was brought up in discussions over and over yet the wrong choice was still made.

    Grrrr! I’ve got to go offline now… need to throw something very heavy and curse up a blue storm.

  50. Anonymous says:

    @Ian: I know that IE would not suddenly drop attachEvent. But IE should support addEventListener in *addition* to attachEvent and depreciate the use of attachEvent. Having both functions (during a transition period) would not break a single web page. There should not be a problem supporting multiple APIs for tying events to HTML elements since all browser support at least 2 ways for defining events (addEventListener (or attachEvent) and the old-style onclick attributes).

    The addEventListener is a W3C recommendation since 2000! I just cannot understand why it takes so long for Microsoft to implement this basic function crucial for DHTML.

  51. Anonymous says:

    Alex, you assume that there are no pages which simply check for addEventListener and then do stupid things (like assume you’re in Firefox or that some other L2 DOM functions are available). That’s an incorrect assumption.

    Supporting both also assumes that there aren’t lots of pages which do "if (addEventListener) {foo}; if (attachEvent) {bar}" and that too is a bad assumption.

    While it’s fine to say: "That’s dumb, break them" this isn’t the way that the IE guys work.

  52. Anonymous says:

    Hi,

    using ie8

    it crash a lot

    sometimes it does not render well

    sometimes get too busy message

    sometimes it hang

    congrat ! u got an award to give me the most crashing browser !

  53. Anonymous says:

    Good to see your guys are colaborating with the Office-97-Team to construct some beautiful diagrams there! 😉

  54. Anonymous says:

    @Andrew: A significant majority of crashes and hangs are caused by buggy browser addons.  See http://www.enhanceie.com/ie/troubleshoot.asp#crash

    As for complaints about rendering, it would be helpful to provide URLs of sites where you’re having problems.

  55. Anonymous says:

    What the $#@! is going on with IE8 recently? I can’t edit any of my bookmarks, and I can’t set any new bookmarks!

    I’m pretty sure 2 weeks ago this all worked fine.

    Now all my favorites don’t point to a URL, but link to a file on my PC… thus creating a bookmarklet is now impossible and all the ones I have fail to work.

    For the record the error I get trying to add a new bookmark is:

    =====DIALOG==========================

    Windows Internet Explorer     [Red X]

    ————————————-

    [Red X Icon] Unable to create ‘{TITLE_OF_HYPERLINK}’:

    Class not registered

    [OK]

    =====DIALOG==========================

    PS This occurs if I am in regular mode or starting IE8 in no-addons mode.

    So much for doing any debug/development in IE this week.

  56. Anonymous says:

    Ian, I agree with you that in the cases you mentioned, the web page would break. Any web page made with the assumption that IE will never implement addEventListener, will break (obviously) once this function is implemented in IE. I would already be happy if Microsoft would have implemented this function in IE8 standard-compliant mode. Web pages assuming non-standard IE7 behavior have to be upgraded anyway to use IE8 in standard mode.

  57. Anonymous says:

    @Alex – any site that has a test to check for addEventListener vs. attachEvent *should* be checking for the addEventListener method first.  If a developer has "ASSUMED" that IE would never implement the addEventListener method they the DEVELOPER building the site need to fix THEIR code.

    We can’t continue to support those that don’t develop half-decent code.

    What *IS* important here, is that MICROSOFT publishes an INTENDED ROADMAP (hmm, that’s only been said a thousand times already) that indicates that they PLAN to FIX this issue by IMPLEMENTING the addEventListener method in a future release (preferably indicate IE9 support, but even COMMITMENT would suffice)

    ONCE MICROSOFT has ESTABLISHED that a FEATURE is "ON THE ROADMAP" – THEN, and *ONLY* THEN can developers have some UNDERSTOOD EXPECTATIONS of what is coming, and start addressing these concerns.

    When the blog post comes out on the IE Blog that these changes are coming – developers will have the chance to start updating and investigating their code for issues etc.

    NOT HAVING A CLUE what is coming up in the IE.NEXT release is what is so frustrating…

    That said, someone should make a quick site that checks a site for you… finding code that should be looked at.

    e.g. Test example.com

    Results:

     1.) Use of document.all (other than to provide workarounds for legacy IE) should be removed.

     2.) Use of attachEvent (should check for W3C Standards addEventListener first)

     3.) Use of createElement(‘HTML STRING’); should be avoided in IE8+ browsers. Use the appropriate W3C DOM methods instead.

    With a service like this, developers would have somewhere to go to see if they have issues as well as provide a URL for other developers to pass on to those less experienced with Web Development to set them on the right path to future success, or help them with existing issues.

  58. Anonymous says:

    STEVE, i LIKE capital LETTERS too!!! WILL you BE my FRIEND?

  59. Anonymous says:

    @Martin: It sounds like one or more of your registry entries was corrupted. You might try re-registering the InternetShortcut class (www.enhanceie.com/dl/RegisterInternetShortcutClass.reg) to see if that helps, but you may need to repair/reinstall.

  60. Anonymous says:

    Please allow the backspace key (navigate to previous page) to be disabled.  This is problematic when one is editing text boxes on a web page and focus on the edit box is lost due to (javascript) or page refresh.  This makes normal editing keys navigate between pages.  Please let the backspace key be disabled as there is ALT-LEFT ARROW to do the same thing.

    This is equivalent to how you can click accidentally on an OK button when editing a word document when that other application opens a modal message box.  It’s happened to me many times (a nuisance at least and a security hole at most) as I spend lots of time in Word, Excel, email, etc.

    June 12, 2009 — IE8 Smart Address bar: What’s new

    # Backspace / delete  – Tuesday, June 16, 2009 10:59 AM by Greg

    Please make the delete key delete the character in the URL edit field and NOT go to the previous page.  The edit box for the URL should behave like an edit box.  The delete, backspace, tab, shift-tab keys should work like a normal edit box.

    # re: IE8 Smart Address bar: What’s new  Tuesday, June 16, 2009 11:33 AM by EricLaw [MSFT]

    @Greg: I’m not sure what you’re seeing, but delete/backspace keys already work that way and always have.  

    If you see that backspace in the address bar does anything other than delete the prior character, chances are good that you’ve installed a plugin which is using a keyboard hook incorrectly. @Xepol: Agreed.

  61. Anonymous says:

    @EricLaw MSFT – I tried that registry setting but had no luck.  So I went to try and repair IE8, but no option for repair exists either in the IE8 menu, or the Add/Remove programs window.

    Therefore I’ve given up and am about to Uninstall/ReInstall IE8.

    I can’t exactly say I’m enthused about this process since I’m a web developer that needs to test in IE regularly.

    Oh well… what’s half a day of downtime… mmm can’t wait for the endless reboots 🙁

  62. Anonymous says:

    @Martin: I’d start with Tools / Internet Options / Advanced / Reset IE to default settings.

    As to the "half a day of downtime," I’m not sure how long your days are, I’ve uninstalled/reinstalled IE multiple times per day for nearly a year and it takes me less than 30 minutes each time.

  63. Anonymous says:

    @EricLaw MSFT – yeah the re-install did take less than I expected ;-)… but I still had 2 reboots (1 after the uninstall and 1 after the reinstall).

    That said – NO LUCK!

    My Bookmarks are still completely un-editable.

    Am I the only one experiencing this?  Is there an addon within windows or IE that even though addons are disabled is still affecting my browser?

    I’m still in a "I can laugh at my woes" mode regarding this but if I can’t solve this soon I’m going to need to test all content on another PC which won’t impress me at all.

    Are their any specific Registry Key values I should verify are set?

    If I Google "Unable to create" "Class not registered" I get about 3,000 matches but most don’t seem to match my issue.

    I did get this result though…

    http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.internetexplorer.beta&tid=30d9c5e1-7afe-432a-a1ad-8ba9d7f19fad&cat=en_us_2BAF8EC5-645C-4477-A380-0F1CF6C102F9&lang=en&cr=us&sloc=&m=1&p=1

    which claims to have a solution pointing to here:

    http://iefaq.info/index.php?action=artikel&cat=35&id=133&artlang=en

    I’ll try this and see if it fixes IE8.

  64. Anonymous says:

    Okay! yeehaw! that worked!

    well kind of.  It works in that now all **NEW** bookmarks I add are editable but my current ~85 or so bookmarks all fail.

    that process was a real pita.  I certainly hope that (if) this happens again, using that MVP reg tool will fix IE8 without the re-install.

  65. Anonymous says:

    Just a question: Why is there no IE6 mode in IE8, similar to how there is an IE7 mode? Seems like a way to get those corporate IT departments to upgrade without forcing them to redo their intranets.

  66. Anonymous says:

    Looks like yet another Active X security hole was discovered in IE.

    http://news.cnet.com/8301-1009_3-10285486-83.html

    It affects Office XP, Office 2003, Internet Security and Acceleration Server 2004 and 2006, as well as Office Small Business Accounting 2006.

    —-

    Microsoft Quote:

    Microsoft is investigating a privately reported vulnerability in Microsoft Office Web Components. An attacker who successfully exploited this vulnerability could gain the same user rights as the local user. When using Internet Explorer, code execution is remote and may not require any user intervention.

    We are aware of attacks attempting to exploit the vulnerability.

    Customers may prevent the Microsoft Office Web Components from running in Internet Explorer either manually, using the instructions in the Workaround section, or automatically, using the solution found in Microsoft Knowledge Base Article 973472.

  67. Anonymous says:

    Morton: You’re confused. The browser and its plugins are different things. When a Firefox extension has a bug, it’s not a bug in Firefox, it’s a bug in the extension.  When an ActiveX control has a bug, it’s not a bug "in IE" (unless the ActiveX control is a part of IE).

  68. Anonymous says:

    I think the IE team has done a very good job to make sure older websites work with IE8. Now that they have accomplished that, they need to think about future web standards.

    What are your plans for IE9?

  69. Anonymous says:

    anonymous: Can yours? Did you actually install the nightly? Did it work on any real sites? When do normal people get to use it? Do I really want 3d CSS advertisements flying over my web pages? Really?

  70. lenen lening says:

    @David I agree! Already very curious about IE9 🙂

  71. Anonymous says:

    Since I downloaded the newer version of Internet Explorer, my coputer has a window tht constantly says Internet Explorer is shutting down. Can somebody help please We brought the tower in to be repaired and no one was able to help Can You?

    forcb1@aol.com

  72. Anonymous says:

    @Joni: The majority of IE crashes are caused by buggy addons.  See http://www.enhanceie.com/ie/troubleshoot.asp#crash for troubleshooting information.

  73. Anonymous says:

    Here’s one for the compatibility issues.  I’m filing my tax return with HMRC (HTTPS throughout) and it all worked fine last year.  I have 3 machines, A, desktop with Vista Business, IE8; B, laptop with XP home, IE8; C Desktop with XP Home, IE7.  Other than IE, all machines uptodate with patches.

    End of tax return process is to produce an optional PDF of completed return.  This year none of the machines will produce a PDF file.  process apparently works, but no PDF appears. Compatibility mode does not produce any change. Out of interest I tried loading Firefox on A and the PDF file pops out no problem.  However on IE8 the request for PDF generates a separate window; in Firefox its within the same window.  Now however on A, uninstalling Firefox and going back to IE8 I ‘can not log on’.  Quotes because the logon procedure appears to work, in as much as if I put in an incorrect logon, I get an error, but the correct one just leaves me in the logon page. I wondered whether it was a timing issue, but having tried it after a delay, no change and I can log on properly on machines B & C.  I’m going to try re-installing Firefox and see if that returns at least the logon functionality and then re-installing IE8, but given that it is burried in the update history, that is obviously not as simple as it could be.