Skip over navigation

The Lost continent of

You've found a bug on my site!

Every passing hour brings the Solar System forty-three thousand miles closer to the Globular Cluster M13 in Hercules - and still there are some misfits who insist that there is no such thing as progress.

Ransom K. Fern

Design Guide

The natural and oft overlooked constraints of web design

I'd define 'design' as the process of developing an optimal solution within the bounds of a set of fixed constraints. A good designer is familiar with these constraints, and is able to produce impressive work within their bounds.

Most of the problems I see with existing websites are because the developers worked in ignorance (sometimes willful) of the natural constraints of web design.

This article touches on these constraints, but will barely mention visual design, except as it relates to the main topic. A lot of visual appeal is a matter of fashion or opinion anyway — I can explain my tastes to you, but if you don't like raw eggs in your milkshakes, you don't like raw eggs in your milkshakes (try it at least once though: eggs add body, to the flavour).

Load times

Moving stuff around is an expensive business (ask anybody who owns a car). It's also often very slow. The longer you make visitors to your website wait for something, the more of them you will chase off with boredom. This is a really obvious point, but we still see websites that average hundereds of kilobytes per page. Remember, almost everyone will have a slower connection than you do, and don't forget to run a speed test.

Compatibility & Accessibility

Much time and money is spent developing and maintaining web sites. At their best they deliver information and entertainment to very many people. Given this, it is surprising that anybody should spend time building a web site that can't even be seen by a significant proportion of visitors — unless they have a certain browser, a certain plug-in, or run a browser at a certain resolution.


Your site should work on any moderately modern browser, not just the one you are currently using. Furthermore, your site should work on the browsers of the future as well. The best way to acheive this goal is to stick to the Internet Standards we'll talk about in the next section. Check your site with HTML and CSS validators.

Graceful Degradation

By all means use Java, Flash, and other Multimedia content, but when you do, it should always degrade gracefully. That is, the site should be still be completely useable if a visitor's browser does not support these technologies, or if they have been turned off (prehaps for security reasons). This does not mean just having a 'text only' version of the website. You can, and should, develop a site that doesn't make anybody feel like a second class citizen.


Your site should be accessible to everyone. People with old computers, other browsers, other operating systems, people with visual impairments, everybody. There are three really good reasons to do so too:

  1. Potiential Visitors. Sites that are very accessiable have a larger audience base than those that don't. A suprisingly large proportion of people on the web have visual impairments, older computers, or have just turned off features such as JavaScript or plugins.
  2. Human Rights. The Internet can be a really great thing, and nobody should be denied access to it because of any disibilities. Be aware that most contries have legal requirements for this, too.
  3. Search engine rankings. Search engines are computer programs. They don't 'look' at your visually attractive website, they just try and index the text on it.

A easy accesibilty test is to use your site with a text-based browser, such as Lynx. It's a good lowest common denominator for client programs — if your site works on Lynx, everyone should be able to use it.

Internet Standards

There exists an organisation, the World Wide Web Consortium (W3C) devoted to writing and publishing internet standards. They publish the HTML standard, among others. Everone wins if standards are followed, because less time is wasted trying to guess how things should be written.

The W3C standards should be the touchstone for any project that you work on. Not only do current browser writers use them as the benchmark for page rendering, but it is likely that future browser makers will as well.

Server-side or Client-side?

It's a matter of control. I prefer to implement all the dynamic features of our websites on the server. This way you are guaranteed maximum compatibility & accessibility, as what you serve to your visitors computer can be plain, standard HTML, without needing plugins or other client side technology.