This essay was originally written in 2003, when large numbers of Internet Explorer-only sites littered the web. Fortunately, since then the position has improved dramatically. The hard work of the Firefox and Opera developers – and later Chrome as well – together with the somewhat less hard work of writers like myself, has restored the Web to something much nearer to what it should be.
Few organisations today would think of having a website which worked in only one browser. (True, there are web-based applications which work in only one browser, but even there the situation is rapidly improving.) So some of the comments below are, fortunately, well out of date. But there is still plenty of room for improvement, and it does no harm to remind people what the Web is here for.
The essay is mostly unchanged since 2003; I have made a few small updates.
Do web-designers actually understand what the Web is for? In many cases there seems reason to doubt it.
The Web was invented to enable the user of any computer to communicate easily with any other type of computer and to have the information presented in a manner convenient for him or her. Or, as the official definition more elegantly puts it, to “give universal access to a large universe of documents”.
It followed on from the Open Systems (not to be confused with Open Source) movement of the 1980’s. This attempted to rectify the damage done in the 1970’s, when all sorts of incompatible proprietary systems were created, which were virtually incapable of exchanging data or sharing programs without extensive programming work. HTML was intended to be a universal mark-up, readily understood by any computer.
The central idea is thus that one defines some platform-independent standards, and all programs which follow those standards can communicate with each other. There is nothing very esoteric about this. After all we take it for granted that we can pick up a telephone and ring anyone. We would be astonished – indeed infuriated – to ring a company and be greeted with a message “Our telephone exchange is optimised for Nokia telephones; we do not support your Motorola”. Or to find on a petrol pump the message “only for Fords”. Or to see a television programme that started with the message “You need a Philips television, model 2001 or later, to view this programme”.
Yet many web-designers, blissfully ignorant of history and blissfully oblivious to the world around them, find it perfectly reasonable to confront a visitor to their site with the message “you need Internet Explorer to view this site”. Or “you need Javascript to view this site”. Or even a completely blank page.
(To those web-designers who understand my point perfectly well, but who labour frustratedly within the constrictions of a Dilbertesque organisation: I use the term ‘designer’ here loosely to mean the person who is responsible for how the site is put together – I am aware that this may actually be a manager or marketeer.)
I have even, while using Opera 6, been confronted with the statement that I need to upgrade my browser to Netscape Navigator 4 or Internet Explorer 4 – which is rather like telling the owner of a 2002-model Mercedes that he needs to upgrade to a 1998-model Skoda.
“Anyone who slaps a ‘this page is best viewed with Browser X’ label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.”
- Tim Berners-Lee in Technology Review, July 1996
Universal Access means that the content of a site can be read by a computer using any operating system, any browser (providing it conforms to the agreed standards) and any sort of network connection. It can be read on graphical displays of widely-varying sizes, or on machines without a graphical display at all, such as a Braille pad or text-to-speech converter for blind readers. Furthermore, on machines with a graphical display, it can be read with a window size and font size which is convenient to the reader – not necessarily the one which was convenient to the author. The key point is that the computer of the reader does not have to resemble the computer of the author.
Some Microsoft-only designers and Flash afficionados like to claim that if one follows these ideas, all sites would be text only. (Honestly they do – I am not making this up.) That is of course utter nonsense. In fact, at the risk of being considered contentious, I would put it more strongly – it is an admission of incompetence. If one makes a good separation between content and presentation, the content can in principle be communicated anywhere, while in some cases the specific presentation will be lost.
Of course not all web content can be accessed on all computers. For example:
And there is indeed no objection to using even quite obscure proprietary plug-ins provided either the content cannot reasonably be presented any other way, or people without the plug-in get some alternative content so they are not left completely in the dark.
The essence of universal access is to accept restrictions when – and only when – these are intrinsic to the content medium. Gratuitous technology-based restrictions, such as making a site impossible even to navigate without a particular proprietary plug-in, are an admission that one does not understand the web.
“But”, say many website owners, “90% of readers use Internet Explorer, and it isn't worth the cost of making our site accessible to everyone”. Firstly, that 90% is almost certainly an exaggeration, but that is a subject for another time. Is it really expensive to make sites readable in multiple browsers?
It only is if you make it so. Telephone engineers do not, after all, spend lots of time making telephone exchanges compatible with all the different models of telephone. They build their exchanges to conform to agreed standards. If the phones also follow the standards then they will work together.
Admittedly the still somewhat immature state of the Web, and in particular the highly uncooperative attitude of Microsoft (which is still ignoring large parts of the CSS2 standard, agreed more than seven years ago by the consortium of which it is itself a member) does make things a little less simple. But is the claim really true that cross-browser compatability is expensive to achieve?
At least as far as HTML and CSS1 are concerned, it has precious little validity. Just about all recent browsers support these well (with a few strange lapses, such as soft hyphens). To the extent that support is incomplete, the main culprit is Internet Explorer, so if you’ve managed to deal with the foibles of IE, you’ve done all the difficult work already.
CSS2 support is a little more patchy, but again virtually all current browsers do better than IE, so if you have restricted CSS2 to that part supported by IE, or which degrades acceptably in IE, you will have few problems.
For Javascript the cost argument has a little more force, as convergence on standard ECMA Javascript still leaves something to be desired. But even here most of the problems are self-inflicted, being caused by inappropriate use of Javascript for things like textual content and navigation.
There are many sites which make grossly excessive use of Javascript. Strip out that which is unnecessary (and with Javascript ‘unnecessary’ often means ‘harmful’) and the chances are that it will cost little effort to get the last bit cross-browser compatible.
But just suppose that there is an important function on your site which can only reasonably be implemented in Javascript, and cannot be made cross-browser compatible without a large amount of work. Do you then block, or discourage, users of other browsers from reading any part of your site? Or only those pages on which that function is needed? When put like that the answer is obvious, yet many sites still go for the first option.
Incidentally, if someone complains about the cost of supporting multiple browsers, it would be instructive to examine the first line of their page markup. Chances are that there is no Doctype statement. That means that they are not using a validator – the simplest, quickest and cheapest way of eliminating many of the problems with one’s markup, yet one which many web developers ignore. If they do this, is cost really an issue?
Many web-developers think that there is some advantage to doing things in a complicated fashion. Basic text and navigation are often implemented with Javascript or Java or Flash, for no better reason that that this is the “latest technology”. (This is not my interpretation – I have seen sites that actually state that this is the reason.)
Advanced technology is appropriate if one can use it to do things better, or cheaper, or to do things which one previously couldn’t do before. But using advanced technology for its own sake is at best hobbyism, at worst madness. One does not use a racing car to go shopping, nor a jet fighter for crop spraying. One uses tools appropriate for the job.
Relying on Javascript for navigation is like fitting slick racing tyres to a family car: acceptable in ideal conditions, but a menace the rest of the time – while offering no real benefit at all. By all means add Javascript to make the navigation “look pretty”, but not at the expense of destroying the underlying HTML links.
As far as Flash is concerned: it can of course be a useful tool where animations or video are needed on a site.
Update, August 2011: when I originally wrote this essay, I then commented "In practice I have yet to see a site using Flash that would not be improved by its removal". Clearly that is no longer the case (though I was surprised how long it did remain true). Things have been improved greatly since then, but gratuitous Flash usage is still far from rare. Incidentally I have received quite a number of responses asserting that my ideas were out-of-date, since "everyone has Flash now". Consequently I couldn't resist a smile when the much-publicised contretemps between Apple and Adobe blew up. In any case its lack of scalability, accessibility and searchability make it inappropriate for text even when the user has it installed.
People who are tempted to add Javascript or Flash to their site would do well to heed the advice that Hippocrates gave to doctors two millennia ago:
First of all: do no harm.
The appropriate way of setting up a web-site is to clearly separate the following aspects, and use an appropriate technology for each:
If a browser is unable to view the decoration, there is no need to prevent it from viewing the content.
The essence of the web is thus universal access, which can be summarised as follows:
When we get to the stage where the majority of web-developers understand this, the Web will be a much better place.
I am flattered that this page now has a Romanian translation.