IE 8 on Acid
Date : 2008 03 06 Category : Tech & DevelopmentThe IE team posted that they were passing Acid2 a few months ago, yet people are seeing a broken face when they tested with IE 8 beta.
Phil Nachreiner of IE explained the situation:
Although we said that IE8 Beta 1 passes the ACID2 test, some of you may be seeing results like the image above; we thought we should explain what’s going on. IE8 passes the official ACID2 test hosted on http://www.webstandards.org/files/acid2/test.html. (Note, this seems to be a popular destination at the moment. You may have trouble reaching the site.)There are also a number of copies of this test around the net. One popular copy that I’ve seen of late is http://acid2.acidtests.org/
IE8 fails the copies of ACID2 due to the cross domain security checks IE performs for ActiveX controls. Since IE does not natively handle HTML content in the OBJECT tag, but rather uses IE’s rendering engine as an ActiveX to display this HTML content, the same cross domain security checks also apply.
Given that, let’s take a look at how the acidtests.org copy from above relies on OBJECT fallback to render the eyes. Here’s the snippet of the test for the eyes:
PLAIN TEXT HTML:<object data="data:application/x-unknown,ERROR">
</object><object data="http://www.damowmow.com/404/" type="text/html">
</object><object data=”data:*the eyes DATAURI* …>
</object>
IE stops the OBJECT fallback process at the highlighted line above. The team and I involved in this work decided that this is the right thing to do because IE would have to allow navigation to this cross domain content in order to determine if the failed resource is a 404 HTTP error code or any of the other failed resource indicators that are part of the standard. To maintain compatibility and be secure by default we didn’t want to invoke fallback either, as original web authors might not have intended this behavior. We started with the most secure solution and are now looking into whether we can safely loosen this restriction in a future beta.
With all that said let’s also take a look at the official ACID2 page hosted by www.webstandards.org:
We see:
PLAIN TEXT HTML:<object data="data:application/x-unknown,ERROR">
</object><object data="http://www.webstandards.org/404/" type="text/html">
</object><object data="data:*the eyes DATAURI *>
</object>
Note that we see the same domain as the test, so everything works fine.
What about Acid3?
For IE7 and ACID3 I got: 14/100
The rendering was seriously messed up (boxes and off-color elements everywhere).
For IE8B1 and ACID3 I got 17/100.
The rendering was much better. The blocks showed up and appeared to be pretty correct size but were all black and gray (no color).
This just came out, so hopefully the team will have time to look at it before a beta in the future.
John Resig has a nice catalog of JavaScript related fixes in IE 8. I like how it is our release:
Our day has finally come. CSS coders got some love with Internet Explorer 7 - us JavaScript folk got absolutely nothing. In fact, at last count, all we got were a couple new bugs to deal with (file:// requests not working via XMLHttpRequest and <object>.getElementsByTagName("*") always returning no elements).
Internet Explorer 8 is our release.
