Web designers’ responsibility in the web standards mess
August 8th, 2010
In a recent Twitter exchange Helen Emerson, a web designer I admire a lot, celebrated the fact that Internet Explorer 9 is finally going to support rounded corners. My feeling on this to this is that’s nice, but it would have happened a lot sooner if we web designers hadn’t hidden IE’s deficits by finding ways to make it display rounded corners anyway.
This is a general problem, and it’s the reason why web standards generally are still such a mess. Most users aren’t aware of this because we hide it from them. Everything seems to work fine in all browsers – as far as users are concerned we are living in an era of universally compatible browsers. Actually, we’re still a long way away from that.
If you look at the code of almost any modern web page you’ll find it full of workarounds that are necessary to make things work properly in different browsers. This applies particularly for Internet Explorer, which may have got better on the surface but still requires countless special solutions to get it to behave. Much of the work on any modern website is devoted to getting it to work in IE as well as in normal browsers.
It’s our fault, we did it
This situation is our own fault. We have made it easy for browser programmers to be lazy because we are doing their work for them and hiding their mistakes and their incomplete solutions and half-baked implementations from the users. We clean up the mess that they make instead of forcing them to accept responsibility for it. We offset their deficits by finding solutions for things that they didn’t implement – like rounded corners in Internet Explorer – making it look to the user as though the browser is already capable of it. Similarly, we are also irresponsibly enabling the survival of old and dangerous browsers like Internet Explorer 6 because we are continuing to make sure that our websites work in them instead of actively blocking them, as we should. But that’s a different story…
An example from Google Chrome
Internet Explorer may be the most egregious of a bad bunch, among other things because Microsoft certainly has the resources to do a much better job much faster than they have, but it is far from being a lone bad apple. For example, Google Chrome recently introduced a new “security feature” designed to prevent cross-frame scripting attacks. Unfortunately, it’s poorly implemented: When web pages are opened locally, Chrome treats any scripting references between frames as malicious attacks and blocks the interaction, even if all the files in all the frames are stored in the same local folder. It doesn’t bother to do any checking; it just classes all inter-frame communication as malicious, even though no same origin rules are actually being broken. It’s an easy, lazy solution.
This buggy new feature is currently unnecessarily breaking WebHelp, CMS and eLearning systems in Chrome when their content is downloaded and opened locally, as it often is with these applications. I’ve corresponded with the Chrome programmers on this and their response was to suggest how I could program a workaround specifically for Chrome. And there’s the rub…
Browser programmers are now expecting workarounds
When browser programmers automatically expect that web designers will be willing to implement a workaround for their own failings we should start sitting up and taking notice. This means that they’ve got used to us doing half their work for them and cleaning up after them. And that’s not good. It’s not good for them, it’s not good for us, and most of all it’s not good for the Web, because it means that the chaos below the surface is going to get worse rather than better.
We’ve got into the habit of seeing it as our responsibility to ensure that our pages perform correctly in all browsers. When a user complains that something doesn’t work in their browser, our response is to feel that it’s our fault and we need to fix it. It’s not our fault and we don’t need to fix it. And if we fix it, the browser programmers whose fault it is will never bother to fix it. Why should they, when we’re willing to do their work for them free of charge?
The only solution is to say No
The only real solution is to refuse to accommodate this kind of thing. I know this isn’t realistic in many situations, but it’s more realistic than we think a lot of the time. For example, would it really have been such a bad thing if we had refused to “fake” rounded corners for Internet Explorer with multiple divs? I don’t really think so. Then it would have been much more obvious that IE 7 and 8 were still obsolete, and the pressure on Microsoft to implement CSS3 properly would have been much stronger.
Whilst many of us complain about the failings of browsers like Internet Explorer, we are actually actively working to support those failings, preventing them from ever getting corrected. If enough of us start saying no, if enough of us start refusing to accommodate browsers’ limitations and bugs, then the browser programmers will be forced to start getting their act together faster. We need to stop seeing it as our fault when features don’t work in some browsers. If we don’t, and if we go on hiding this from the user, the situation is never going to get better.
Click to subscribe feed
Leave a Reply