I don’t claim to be an expert on web standards. In fact, very few people truly deserve the label of “expert” in this esoteric field. One is Jeffrey Zeldman, founder and majordomo of A List Apart, which I’ve been reading for years. Looking at my FeedDemon list, in fact, he’s the only web designer I consistently follow.
That means I haven’t been keeping up on the debate over how the community feels pover Microsoft’s decision to more fully support Web standards in IE8. Now, one thing they’re not going to do, apparently, is code IE so it passes the so-called Acid tests from the Web Standards Project.
I thought about this today as I was reading one persistent and annoying ZDNet commenter who seems fixated on ranting about the poor performance of IE8 Beta 2 on the Acid 3 test. I know that Microsoft could, if it chose to do so, build its browser to ace the Acid 3 test. Opera managed to do so. But Firefox has chosen not to. According to a chart Adrian Kingsley-Hughes published based on his testing, Their most recent builds come in at 71 out of 100 on the Acid 3 scorecard, and IE8 Beta 2 hits the low 20s.
I found this early 2008 article from Zeldman, in which he does a pretty good job of summarizing Microsoft’s “We can’t break the web” mentality, which has resulted in a feature called “version targeting.” I found this explanation especially compelling:
Which brings us back to the question: Should a new browser pass some test, or should it move forward incrementally and continue to work as well as possible with the web as it exists today?
Frankly, I don’t care all that much about synthetic benchmarks. Getting a 100 on the Acid3 Test means that you will perfectly render a page that uses every known trick in the web standards guidebook, as written in that test. It does not mean that said browser will properly render the pages you visit every day or that your corporation uses on its intranet. Arguably, meeting that level of performance is more important. I would not want to have to explain to my CEO that no new sales came in this week because our new browser, which aced the Acid 3 test, barfs when it hits the order input page.
But I might be wrong. What I’d really like is some pointers to the experts out there who have already studied this subject and published well-considered opinions with lots of factual backup.
Anyone able to point me in the right direction? If you know your stuff, please help me out. I’ll assume that posting your comments here means you give me permission to use them (with attribution) in a follow-up post. And if it’ll help, I’ve got a couple of signed copies of Windows Vista Inside Out, Deluxe Edition for the most helpful, information-rich comments I get here.
14 thoughts on “Acid Test opinions wanted”
I think if you look into it a bit further, you will find that the ACID3 test includes things that AREN’T EVEN STANDADIZED YET, but are only proposals. So, if I’m right, then your question should be: “Should browsers be required to pass all PROPOSED standards?”.
Since many proposed standards are in fact unworkable and eventually go down the tubes, I think the answer is pretty obvious.
I believe that it should be a goal to be completely standards-compliant.
My favorite Firefox add-in is IE tab because sometimes a site doesn’t work in Firefox. If IE 8 implemented a similar customer-driven switch to switch back to IE 7 mode then IE 8 could break sites all it wanted. The user could just switch to IE7 mode for the site. Forcing the website to be the one to decide with these weird headers that no one fully understands doesn’t work.
With any question relating to web standards you’ll get one of two answers:
It matter a LOT
It doesn’t matter a JOT
Maybe a simpler way to look at this is that Web standards don’t matter if all you browse with is IE, they do if you don’t.
My take, IE’s dominance shouldn’t force us to live with broken standards, especially as platforms diversify. IE turned web development into a wild west and as we diversify onto mobile devices and different platforms we’re suffering the concequences.
As a full-time programmer working on web applications, here’s the deal:
You build a site, attempting to follow standards, and test it thoroughly in Firefox, Opera, Safari, where it works perfectly. Then you open it up in IE and it’s completely trashed, so you spend 50% of your time coding around quirks in the browser.
That’s why web designers hate IE so much, and start screaming about web standards. Once that starts happening, all of the pro-Linux and anti-Microsoft people jump onboard to scream about web standards, even though…
It doesn’t really matter to 99% of people that aren’t designing websites. All regular people care about is whether they can use their email, web photos and social networking sites…
So in order to keep the majority happy, Microsoft’s decision to incrementally move towards standards is probably tolerable. In my experience so far, IE8 renders quite well and the default mode passes Acid 2… if it had passed Acid 3 they would have simply created Acid 4 to keep moving the yardstick.
As a web developer this has been something I struggle with quite a bit.
First, I completely understand where MS is coming from when they say they don’t want to ‘break’ the web. The problem is that the internet is changing so much, so quickly and can be done so easily that I believe MS is making a mistake in this case. It’s not like your standard desktop app, that needs major engineering changes to become compatible with a new OS (not always the case, but sometimes). If everything all-of-the-sudden became standards compliant, I believe it would not be any kind of overhaul of the web to get to the point where it would be “fixed”.
What about Enterprise? Well, they would have to “fix” their intranets as well, however they’ve always done things slowly. Most Enterprises I know are still using IE6, so I don’t see why they wouldn’t be able to use IE7 for the next 5 or 6 years while they transition.
However, I don’t believe MS will support standards because when IE6 killed off Netscape, everybody started building their stuff for IE. Now, if IE goes standards compliant, they are more-or-less equal with other browsers, opening the door for Enterprises and everyone else to pick and choose their browser. As long as IE has the majority market, I don’t believe we’ll ever see standards across the board.
All this being said, I personally do think that ‘standards’ is the right way to go. Having to write a web page one way would make my job so much easier and would actually cause fewer of my sites to “break” because I have to 1) code for standards, 2) code for IE6, 3) code for IE7 and now, possibly, code for IE8? I can’t tell you how bloated my code gets trying to get my code to work right, and how much more time (more than double, fixing problems is what takes the longest) I spend doing it!
One last thing about standards. Standards are mostly about CSS, and CSS is about styling only. The only thing on a website that’s going to break is some of the appearance. I’m not trying to downplay it, but like in your comment above: “our new browser, which aced the Acid 3 test, barfs when it hits the order input page” would most likely never happen because, unless you’re doing something really funky (and most Enterprises don’t do funky) the functionality of a site should basically stay the same. This isn’t always the case, but mostly.
The longer we wait, the more standards are going to become advanced, which will just break the web worse later than it would now. Go look at the source code of Acid2 and then Acid3 and you’ll see exactly what I mean.
(I’m a Mozilla guy, so clearly I’m biased towards a free, open, interoperable, standards-based, and participatory Web. This isn’t my area of expertise, though.)
It’s not just about passing “synthetic” tests. The ideals/goals of the ACID tests (though not necessarily the realities,) are to test the set of features that if all browsers implement them well, will make it easier to build a more valuable and accessible Web.
So, it’s about a lot of things. It’s about saving time for developers, ensuring that anyone on any device using any browser can experience the full Web, avoiding the downsides of vendor lock-in, and very importantly, moving the capabilities of the Web forward.
Right now, the poor state of IE Web features (those Web standards or Web standard proposals demonstrated in ACID and other tests) is holding the capabilities of the Web back. Developers often must build to the “lowest common denominator” and that means that if one major browser is missing or has a buggy implementation of a Web feature then the feature has a really hard time taking off and the Web moves forward a lot slower than it otherwise could.
You can have a great Web feature, like the canvas tag, but even if it’s implemented well in Firefox, Safari, and the niche browsers like Opera and Konqueror — every other browser besides IE, because that’s only about 25% of the users on the Web, developers are hesitant to use it. If IE were to add support, it would immediately empower Web developers in a big way and the Web would make a major leap forward in it’s capabilities and user value.
(note that Canvas isn’t even tested by ACID because ACID doesn’t test anything that wasn’t a completed standard way back in 2004)
So, in the end, it’s all about interoperability to make the Web a more valuable and capable environment. Standards bodies that define useful features should get browser vendor attention. Tests that expose failings in the interoperability of those useful features are great, and browser vendors should work hard to pass those tests.
I wouldn’t qualify my self as an expert but I have a decent understanding of current web development. Here are my thoughts.
It would be good if IE were able to keep up with the other browsers in the ACID tests. The end result would be less complaining about browsers and probably more complaining about the lack of updated standards… when was XHTML 2.0 first proposed and where is it now? How about CSS 3.0 ???
IE 7 made basic XHTML and CSS much easier to port across all the major browsers, but still had some issues. But over all much better than IE 6. From what I’ve seen IE 8 is even better, so this is a really good thing.
95% of web developers don’t even know how to properly develop standardized XHTML and CSS* so it will really be a non-issue for them if IE 8 only passes ACID 2.
I don’t think the W3C has shown great leadership in pushing proper standards to further the richeness and diversity of the web. So I wouldn’t put too much stock in implementing every minute detail in their standard.
*My own statistic which I pulled out of a large orifice.
“… avoiding the downsides of vendor lock-in …”
Bingo Asa! We’re only having this conversation because it’s Microsoft’s browser that’s failing so badly with regards to ACID 3 test. If it were any other browser (or, more accuratly, rendering engine) we’d recognize its failings and leave it to die by the roadside. Bundling IE with Windows has made appaling standards compliance the norm and now we’re having a debate as to whether standards compliance is a good thing or not … sheesh.
http://www.joelonsoftware.com/items/2008/03/17.html is the best Guide To Standards For Dummies post that I remember coming across, back when the default thing was an issue, although I don’t know if Joel needs a copy of your book. I’d quote but that would do it an injustice.
Ok, maybe one…
‘The web standards camp seems kind of Trotskyist. You’d think they’re the left wing, but if you happened to make a website that claims to conform to web standards but doesn’t, the idealists turn into Joe Arpaio, America’s Toughest Sheriff. “YOU MADE A MISTAKE AND YOUR WEBSITE SHOULD BREAK. I don’t care if 80% of your websites stop working. I’ll put you all in jail, where you will wear pink pajamas and eat 15 cent sandwiches and work on a chain gang. And I don’t care if the whole county is in jail. The law is the law.” ‘
Ok, another quote, plus commentary – ‘And the web designers are discovering what the Jews of Mea Shearim have known for decades: just because you all agree to follow one book doesn’t ensure compatibility, because the laws are so complex and complicated and convoluted that it’s almost impossible to understand them all well enough to avoid traps and landmines, and you’re safer just asking for the fruit plate. ‘
Because this is what I, as someone who now and then codes pages, finds important – if you code strictly and only to the standards, there is lots of things you just can’t do, because standards are no more an expression of perfection than any other human activity and because a billion coders will come up with more things to do than a thousand standard setters can prepare for.
The ability to code non-standard cool things may be a function of IE’s dominance, but it’s because of its dominance, not because of bundling or lock-ins – assuming power laws work, we would still be coding non-standardly for whatever was dominant (presumably Firefox), and it would be something that was capable of being stretched – if IE goes off the air tomorrow, there will be a dominant browser with 60%+ at least, and it will be one that is more open to hot non-standard action.
(ok, another quote from Joel again, although this one really needs to be read in context: ‘And eventually some tedious bore writes a lengthy article on her blog explaining a trick you can use to make Qxyzrhjjjjukltk 5.0 behave just like FireQx 3.0 through taking advantage of a bug in Qxyzrhjjjjukltk 5.0 in which you trick Qxyzrhjjjjukltk into deciding that it’s raining when it’s snowing by melting a little bit of the snow, and it’s ridiculous, but everyone does it, because they have to solve the hasLayout incompatibility. Then the Qxyzrhjjjjukltk team fixes that bug in 6.0, and you’re screwed again, and you have to go find some new bug to exploit to make your windshield-wiper-equipped headphone work with either device. ‘)
So, pace Adrian Kingsley-Hughes, I’d say there’s a third option. Standards are important, but utter adherence to standards in situations where there’s a standard potentially usable by billions will never work and there will always have to be a balance.
I know that Firefox has/had a few bugs that make it render closer to IE then yet more standards compliant browsers like Opera. Of course, they disappear a little bit with each release and as Firefox gains more popularity. But if Firefox, IE or any other browser make a huge leap, should they implement that? Absolutely.
Of course, there is the issue of complex rules and interpretation as Chris (and the link he mentioned; I’ve seen it before, it’s a decent read) mentioned. And then the issue of people not coming to the newest release of IE. This hurt everyone of course, not just Microsoft, because then their “more standards compliant” browsers don’t have a hope of working.
So it is completely understandable for Microsoft to want to be cautious as to what it does; but I would suggest they just go all out, and then have a quirks mode; people have complained about IE having differing standards from release to release, and the most logical way to eliminate this mess would be to support all standards to eliminate confusion.
This way the only issue is to build a system that detects java switches and the like that spit out “IE6 and above” and use IE6 rendering, and detect a switch that says “IE8 and above” and give full standards. You can also offer to use other browsers render sheets too; this eliminates the trend of companies like Apple just telling you that your browser sucks.
Another issue I want to bring up before I end: frameworks. CSS and Java have long enabled linking to another site for their style sheets/code, enabling quick changes to the layout without having to touch the content. This, in addition to frameworks that (could) work towards all browsers, such as AJAX frameworks, “X on Rails”, and ASP.NET, you could code once, and have the framework do the work for you.
In this day and age it is somewhat silly to expect someone to directly hand code a site when there is a framework to do the hard parts (testing against a handful of browsers and rendering engines) with less training. This is exactly the idea of the majority of AJAX frameworks, and even pre-made layouts for blogs. Like the layout for Ed Bott’s Windows Expertise. 🙂
Frameworks solve the problem of browser incompatibility. They do not solve the problem of browser inability, something IE will have to face if it doesn’t support standards like Canvas and SVG.
I can’t really give you much of an opinion on the Acid 3 test… but I can tell you about how I dealt with the differences between the various browsers in my last big project.
The first thing I did, and always do, is make the site work with Opera. If it works in Opera then I know it works in Safari as well. (At least that’s been my experience nearly 100% of the time.) After that I make it work in Firefox 3. Not a lot of things to fix, most of the changes I make I put in with the original CSS because they don’t break things in Opera or Safari. I spend some time after that making fixes for Firefox 2 and Firefox 1.5. I can’t tell you how bloated the code is by that point. Wait, yes I can. Not very. After that I had to do some work for IE 7. Surprisingly it wasn’t many. Most of it was just a few quirks. Almost all the fixes I did for Firefox 3 applied for IE 7 so I guess I lucked out.
The last thing I had to work, and the hardest, was IE 6. This browser was a pain and I had to write some JS to overcome some of the limitations for this browser and I was sadly reminded of the era before proper PNG support. It’s was not too shocking to me how much work IE 6 required, as it was the most out of date browser and I was using a newer version of CSS.
Overall the changes I’ve made for IE 7 took about as much effort as Firefox 1.5, 2, and 3.. I don’t think they’re that far from each other when you take into consideration which parts of CSS are more commonly used. I think the problem comes when people rely on the raw statistics that are easy to misunderstand.
This whole thing is pretty trivial and petty in my opinion. All the changes I had to make for all browsers combined was only about 10% of the original code. The majority of which was just minor perfectionist touches so everything looked exactly the same.
I completely sympathize with the web designers who design for Firefox and have it break on IE. Really, I do. However, they need to realize that if they had designed their site for IE then they would be complaining because it broke in Firefox. When standards matter thats when I design for Opera or Safari right from the beginning. I don’t expect the other browser’s to work perfectly, but it sure would be nice if they did.
IE didn’t make the web like the wild west, it was that way when they got there. Yes, Microsoft made a huge mistake by practically abandoning IE for years. I may be mistaken but my assumption here is that they didn’t want to invest time or money in a product that was, in part, responsible for them losing millions of dollars in fines from the various governments of the world. Plus they had already won. It’d be all work with no reward. People who like Firefox should love this fact… they were given a golden opportunity to fill the void.
To me, this whole argument over standards really has nothing to do with web standards. If people really cared about web standards then wouldn’t they be using something with even better support for those standards? This isn’t what we see in the real world. The truth is that standards only really matter to web designers and even for web designers they don’t matter all that much. Yes, standard support does affect non-designers but not in ways they can really see or in ways they care about. If they didn’t exist then they’d be using some other technology they can’t see or understand.
Is this really about fighting for a browser with superior functionality? Not really. People can talk until they’re blue in the face when it comes to what makes Firefox better than IE or what specific feature exists as Firefox extension that you can’t get in another browser. Yet Opera and Safari do far more than Firefox or IE, right out of the box. Heck, even IE users have Maxthon. Reality makes it clear here that Firefox, while a great browser, isn’t playing on a field all its own.
So what this debate about really? Open source… it’s because Firefox is open source and the others are not. This whole thing is just a proxy war for the sake of open source versus proprietary software war… and that war could very well just be a proxy war for the battle of David vs Goliath.
No, really… I’m not pushing a conspiracy here. I know that not every one who uses Firefox is doing it because they hate Microsoft. Some of us really do use a specific browser because we think its a better browser by the standard of its ability to operate as a browser in the ways that are of value to us.
There are also some that just want to conform to what ever is considered hip at the moment but they can’t afford to buy a Mac.
That function exists within IE8 B2. It is called Compatibility View and if a site has functions that work best in IE 7 or below a “broken page icon” shows up next to the Refresh button. The user clicks that and that one particular tab “reverts.” The best thing is that IE 8 remembers that you clicked that so the next time you go to that site it is in Compatibility View automatically.
Instead of endless debates, why don’t the browser verdors get together and set dates for the next level of standards and publish that date for all the world to see? For instance, if Acid 2 is the current benchmark, set the end of 2009 for it’s implementation. Go ahead and build that standard into the browser and when that date arrives, switch the mode of the browser to work with it. If some web site ignores the date and doesn’t update their site to comply, they become irrelevant. That way we are moving forward together.
Ed, you might check out Molly Holzschlag’s blog (molly.com)…she has done some consulting for Microsoft (and others) around standards adoption. Of course, it is important to remember that she is involved with standards organizations and so speaks from that viewpoint. She was heavily involved in the meta-tag debate around IE 8.
Comments are closed.