Does IE8 Really Pass Acid2? [Updated]
thevirtualcat found some inconsistencies in IE8's Acid2 results that made him wonder what's going on. Can anyone replicate these results or, better yet, explain them?
Update: 03/22 23:54 GMT by KD : Several readers pointed out this has to do with cross-site scripting prevention, as described here.
Update: 03/22 23:54 GMT by KD : Several readers pointed out this has to do with cross-site scripting prevention, as described here.
As TFA mentions (at the very end!) this is explained here.
Summary: cross-site security means that if you move the test off the original domain, the test changes. In fact IE8 does the wrong (nonstandard) thing in these cases, but according to them it's more secure (it fails earlier). They're considering making it more standards compliant once they're convinced it's secure enough.
Problems with IE8's Acid2 results stem from cross site scripting issues which they're still working on. Rendering is done just fine, but the cross site scripting is posing a problem.
I heard the exact details about this over at MIX but I don't remember them now.
Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
The reason you're seeing the result is due to an "overly secure" default for beta 1 when it comes to cross-domain embedded objects.
:)
Here's the explanation:
http://blogs.msdn.com/ie/archive/2008/03/05/why-isn-t-ie8-passing-acid2.aspx
Google is your friend next time...
Comment removed based on user account deletion
I would go with "inaccurate" over "intriguing", actually.
Dude, you forgot to mask out your IP address in one of your screens.
SD
I read on various web sites that IE8 passes Acid2... a day or two later I read that Acid3 has just come out, and IE8 fails. Can you correct the inaccuracies please? I'm sincerely curious of the truth. I would go with "inaccurate" over "intriguing", actually.
Film at 11.
Notice they have a "Task Force" for testing Microsoft, but no such group for Firefox, Opera, Safari, etc.
The Acid tests are test cases used to assess a browser's web standards support.
Yet, in the explanation of the incorrect rendering at the IE blog, AciveX is invoked, with some excuse about cross-domain security.
ActiveX has absolutely nothing to do with Web Standards.
This leads me to believe that MS plans to keep playing the Internet game by their rules for a while yet.
n/t
"Be light, stinging, insolent and melancholy"
Microsoft is right to turn cross-domain restrictions on by default. Cross-domain is the same as cross-site, and we all know the pain XSS vulnerabilities can bring. The failure of "copies" of acid2 to render correctly in IE8 are actually due to the "copies" of acid2 being "copied" incorrectly. To copy the acid2 test, you have to make slight modifications to the test contents itself to update the test for the domain it is being hosted on. Them are the breaks of complex tests. Acid2 is a complex test and cannot simply be copied carte blanche.
IE8 has a problem initiating fallback content when a resource can not be acquired. This is exactly what this particular part of the acid2 test is meant to test, fallback code. The fact is, that IE8's fallback behavior works correctly in some cases, but not in others. Specifically, the fallback code works if the failed to acquire resource is supposed to be on the same domain as the acid2 test, whereas if they are on different domains, IE8's code fails to behave properly.
The fact that the blog writer mentions security is a red herring. While it is true that this does have something to do with security code, the real problem is that the fallback behavior is poor.
Write your own Choose Your Own Adventure. http://www.freegameengines.org/gamebook-engine/
The IE team announced their internal IE8 build passed Acid2 in mid-December. Acid3 was released March 3. IE8's first public beta went out on March 5.
I was kind of hoping that IE8 would at least be more compatible with CSS as I possess only basic HTML skills and find it a huge pain to try and make things look similar in multiple browsers by using javascript hacks and other crap.
But even the most basic CSS like
margin-left: auto;
margin-right: auto;
to center a DIV doesn't work in IE8 while it works great in Firefox.
Maybe I just read the wrong HTML/CSS tutorial sites but it would be nice if they rendered things consistently.
Acid3 had been in development for 11 months so it's not like this suddenly sprung into existence overnight to "prove" Microsoft's inadequacies or anything. Even if you consider the release date to be intriguing, I'm not sure what difference you think the Acid3 developers thought it would make to have IE8 fail Acid3. It's not like there are really any users who decide which browser to use based on its ability to accurately render complete standards anyway. Most people don't know what the web standards Acid tests are and won't care even if you tell them.
Putting all that aside, it would still hardly constitute some unfair conspiracy. For one thing every other renderer in released browsers fails quite miserably at it too. Secondly, it's not some arbitrary test, Acid3 measures accuracy of conformance to DOM and ECMAscript standards. Acid3 didn't just make up the standards on the spot, they have existed for years and IE could have (and should have) been attempting to conform the whole time (as should every other renderer).
In other words: No, I don't find it intriguing. It's a mild coincidence, nothing more.
Spelling mistakes, grammatical errors, and stupid comments are intentional.
>if that were to happen, Firefox and Opera would do everything possible to catch up immediately. But firefox doesn't pass acid2 either. I must have missed your point (or you're wrong)
Ah well, I guess I'll put my tin foil hat back on. The IE team announced their internal IE8 build passed Acid2 in mid-December. Acid3 was released March 3. IE8's first public beta went out on March 5.
No, it does not pass.
There is no cross-domain insecurity in <object> as defined by the HTML specification. There is a problem in IE8's broken implementation.
If object can't be displayed, browser should ignore it. Ignored <object> isn't any more dangerous than <div>. In such case there's only one document, with one DOM, all within same domain.
But apparently IE8 can't ignore undisplayable <object> properly, so they've hacked around the problem by spawning new IE8 instance that pretends to be a plug-in that handles the invalid <object> (an <iframe> effectively). And when you do stupid things like that, of course you've got a security problem!
No Acid2-passing browser has any problems with displaying same-origin fallback to cross-domain object.
I 3 Firefox and all, but it's not standards compliant. Tried Acid 3?
You obviously do not have the beta.
I believe his point was that if IE supported Acid2 and Acid3, Firefox and Opera would strive even harder to maintain competitive against IE with even further standards compliance. But, that'd seem to be a general truism, given how Firefox and Opera are already striving rather hard for standards compliance.
Eurohacker European paranoia, gun rights, and h
Umm, misinformation a bit?
Acid3 was recently released so that people have new standards to meet. Nobody is 100% Acid3 compliant as of yet, and not everyone is Acid 2 compliant. This has been discussed to death in a million threads.
Firefox is and will likely continually be one of the more compliant browsers, as opposed to IE, which will continually be one of the less compliant browsers. That's just how it is. Not "the best" or "the worst".
"Be light, stinging, insolent and melancholy"
I think the Acid 2 test is great in all as a way to test if a browser supports CSS well. But it seems as though IE is now targeted at Acid 2... What I mean by that is that, from the few days of playing with IE8 I've noticed a great deal of problems with some really basic CSS (like padding) when in "standards mode". Sites that function perfectly in all modern browsers fall apart in IE8 (Google Maps come to mind). And, it might be just me, but it seems as though the IE team worked very hard to pass Acid 2, not to build a browser that renders CSS correctly and as a result passes Acid2.
Developer of Heap CRM and Torch Project Management (WBP SYSTEMS)
Internet Explorer is losing ground to Firefox, so they come out with a new version and claim that it meets standards and works better. Nope, it's just more of their marketing spin.
The real problem is that Microsoft has lost sight of the goal. They're supposed to be producing software that meets the needs and desires of their customers, but they're busily producing software that's only intended to further their goal of "world domination". Their marketing department is busy trying to make that pig look like a swan, but it's not working.
Too bad that Linux distributions aren't quite "there" yet - close, but not yet. This is a golden opportunity for a real competitor...
That would be true in situations like horseshoes and hand grenades, but not here where mostly compliant is very good and not very compliant sucks and causes headaches. Where browsers like Firefox, Opera and Safari fail are largely (unfortunately not exclusively) obscure test cases that don't show up in the real world. I would like it to be that an even slight failure to meet the standards would set a browser apart from everyone else. But that just isn't true.
Of course, 2.0.0.1.2 Firefox doesn't pass Acid2 either. So, not so much.
Its just a bit strange to me to have Microsoft acknowledge the problem, yet be so nonchalant about the fact that its because objects are handled by Active X. Okay back up. Last I checked Active X isn't a standard. Its just so lame the fact that things may look like they render correctly or have engineers trying to make one test pass (though crookedly). Its not standards compliant. Nuff said.
* A world imprisoned screams with pain There are no leaders you can blame Your avarice destroyed your sphere And the
Acid3 isn't a standard, it's a set of tests for specifications that have already existed for years. Acid3 didn't make Firefox less compliant, it merely pointed out ways in which Firefox was already non-compliant.
Bogtha Bogtha Bogtha
But firefox doesn't pass acid2 either. I must have missed your point (or you're wrong) You must have. His statement is as follows:
if( IEPasses(ACID2) && IEPasses(ACID3) ) {
FirefoxWorkHarder(StandardsCompliance);
OperaWorkHarder(Standardcompliance);
} else {
continue(PresentSituation);
}
We're stuck in the else case since, you know, IE doesn't pass both tests yet...
No, that's exactly wrong. If an <object> element can't be rendered, its content should be rendered instead.
Bogtha Bogtha Bogtha
IE8 Beta 1 - 18%
Firefox 3 Beta 4 - 68%
Safari - 75%
If you go to the appropriate wikipedia page you will see a long list of CSS 2 and 3 features.
Beside this list is all the major browsers and how they implement each feature (fully, partially, broken, not implemented, etc...).
Voila! Partial compliance.
...even if it's a shame it's taken this long to get there. Pre-releases of Safari and Konqueror passed this almost exactly 3 years ago, and Opera's Presto engine wasn't far behind. The fact that Gecko has taken nearly as long to catch up as IE/Trident is disturbing, but they had their own self-inflicted issues to fix (XPCOM? ewww).
All of this can only mean web developers sleep more soundly at night, and more real work gets done. The IE developers can give themselves a big pat on the back for achieving something useful that will make everyone's lives better, like they used to do with IE3 and 4 and initial CSS1 support. Shame the management decided to slack off on IE development so long. Microsoft: intelligent geeks, ruined by management.
Now, on to Acid 3. IE8 is still clearly trailing everyone else by some distance and is probably going to play catchup for a while yet until they implement native SVG (think about the possibilities for Explorer and Office, that Apple, KDE and friends are just beginning to explore).
As an aside, think how good MS Office might be if they had this level of competition due to having to implement a proper Open Document standard not specified by them. Everyone would get more work done, would be fitter, happier, healthier and better, and Microsoft would probably still have the lion's share of the market. OOXML needs to die now, for everyone's sake, including Microsoft's.
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. As we all know, developers (developers, developers, developers) NEVER intend for a fallback resource to be utilized when primary resources fail. Microsoft has once again taken the initiative to embrace the developer community as a loving parent and save us from our own incompetent, foolish selves.
"What does 'It's not a bug, it's a feature' mean, daddy?"
"I'll tell you when you're older."
CAn'T CompreHend SARcaSm?
One must ask, does IE 8 only fail on cross site objects of type text/html, or are other cross site objects affected? (e.g. flash, embedded youtube videos, quicktime, etc)...
Come as you are, do what you must, be who you will.
But then that code just terminates before reevaluating whether or not IE passes the Acid tests. This would work better:
/* wait 1 year, then break loop to check again */
while (1) {
while (!IEPasses(ACID2) || !IEPasses(ACID3)) continue(PresentSituation,60*60*24*365);
FirefoxWorkHarder(StandardsCompliance);
OperaWorkHarder(StandardsCompliance);
}
Assuming, that is, that this is an ongoing cycle for the rest of eternity. This could probably be a little more elegant, too.
Your ad here.
It is difficult to get a man to understand something when his job depends on not understanding it.
Aren't horeshoes and hand grenades two situations where close does count (as you're attempting to claim browser compliance is as well)?
Actually, the nightly build of WebKit (OS X) is already at 95/100. The latest Safari isn't nearly as high.
Not like it matters. By the time anyone trys something that is in the ACID3 test there will be an ACID4 that nobody can get to 100 with
-nick
true - i don't
Catch up? 64bit build of Konqueror 4.0.2 on my Gentoo box is pulling a score of 61 on the Acid 3. Firefox 2.0.0.12 is only scoring 52. If the anecdotes of others are correct, IE 8 can't even break 20.
The IE team is playing games with site developers. They have the market share and couldn't care less whether or not they follow standards. This is the company that instructs their development teams to come up with ways of ensuring that cross compatibility is not possible. They're forcing web developers to spend all of their time working out the idiosyncrasies of IE so that there's no time/budget left to ensure a quality user experience with other browsers. It isn't by accident nor incompetence that IE refuses standards and is such a problematic pain the in hind end to develop content for.
Two of my imaginary friends reproduced once
In terms of web standards I think IE8 has moved dramatically forward, and its a great thing to see. The biggest issue with IE8 which I am surprised no one has mentioned, is the performance. My PC (AMD XP1600+, ATI x700 and 1.4gb of ram), STRUGGLES to render anything! For example, if I go to slashdot, the menu on the left chugs and chugs and has huge delays in when the containers register hover effects. And don't even get me started on scrolling.
Gee, you mean if we're comparing the latest beta version of Internet Explorer against Firefox, we should compare it to Firefox's latest beta?
Madness!
My sig can beat up your sig.
In the GP's case, perhaps he's using a language where continue is not a keyword but is in fact the function you were looking at, and therefore the else case is in fact recursive.
Actually, I was assuming just that. But since there was no API reference for continue() in the GP's language, I can't assume it will return in such a way that the block will be reevaluated.
Your ad here.
All ACID tests are attempts at benchmarking the ability of a browser to apply standards (W3C standards, to be specific) correctly. Unless your browser showed you the image exactly as it appears here http://acid3.acidtests.org/reference.html, your browser did not pass the ACID3 test.
I do not see any "'t's in reversed yellow boxes" in the reference document, so I am going to go out on a limb and suggest your browser does not pass the ACID3 test.
Reload the page and watch Safari 3.1 fail on Windows and Mac.
Safari 3.1 is at 75, and looks pretty close to the correct image.
Firefox 3 beta allegedly gets 63 (haven't tested that yet, just downloading it. btw. didn't realize the mozilla downloads were hosted on facebook before..)
If you're comparing anything based on beta versions you should just lube up and use your hand instead. It's meaningless until they're in wide usage and breaking things on a global basis.
Opera already passes all the ACID test :)
It renders fast and has a lot of fun features to play with. I'm already addicted to the mouse gestures up to the point the normal clicking i do with windows feels boring. I wonder if there is any OS that offers mouse gestures??
rtfm.
The Acid3 test is a NEW test that uses/tests the NEW feature that the CSS3 intoduces.
CSS3 intoduces many changes, that right now, non existent browser has implemented, so it is obviously that all current browser will fail. So, dont cry for your poor browser, firefox.
Btw, for some reason, it seems that opera can handdle better the Acid3 test. The animation reach the 46/100, and the appearence looks really close to the reference (in comparison with firefox).
Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
Some of us, subscribers seeing the "story in future" alerted Slashdot about it (msdn link) before it made to front page. As you can see from some comments, people (who knows to develop) aren't so satisfied from MS explanation so it could be the right thing that story wasn't pulled.
Let's do exactly what you suggest, and "RTFM". From the Acid3 page at webstandards.org, with links to the specifications and dates added by me:
As you can see, the majority of the Acid3 test is comprised of behaviour described in specifications published years ago, with a substantial portion of them over five years old and some over a decade old.
Actually, CSS 3 is not a single specification, but a group of
Bogtha Bogtha Bogtha
That's what I had in mind - ignore the tag, but not its content.
I'd add the Webkit nightly (Plus Safari) is up to 95, as of yesterday night.
Firefox 3 beta allegedly gets 63The Firefox 3 beta For OS X and Linux scores a 67, or at least it did the day after the Acid 3 was finalized. The Firefox 3 beta for Windows scored a 59. There may be a newer beta by now.
Note: all these numbers were from my own testing on the same machine, not claims from others.
Simply, the test part has a big top margin which puts it down below the screen edge, and scrollbars are "disabled" by overflow:hidden. Try a couple of Page Downs on the first page, you should be able to scroll down to test part that way.
Nice work with the dates. Just to give one more hint, most of these specifications are in "Candidate Recommendation" state, and not yet in "Web Standard".
I'm sorry, that's not true either. I count eleven Recommendations, one ECMA standard, five Candidate Recommendations and two RFCs.
Candidate Recommendation is the stage when browsers are supposed to implement them. They don't reach final Recommendation status ("Web Standard") until after there are two interoperable implementations.
So of the nineteen specifications listed, over half have final Recommendation status and all have reached the stage where they should be implemented. So again, the Acid3 test is primarily a test of things browsers should have had years ago.
Bogtha Bogtha Bogtha
You know, I needn't have gone to the bother of checking the dates. Here it is, straight from Ian Hickson's weblog:
Here's another quote to confirm it after the Acid3 test was finished:
Acid3 was designed to only test behaviour that browser vendors have had at least three years to implement, straight from the horse's mouth. It's not new stuff.
Bogtha Bogtha Bogtha
So this was moderated Flamebait? Why? Because you can't accept the original post is misinformed, late and is not reflecting reality?
I think I meant to type "pool and sniper rifles".
Seriously, maybe this will teach me not to use cliched analogies in situations where they are clearly unnecessary anyway.