Good design vs. Bad design on the web

This is a page dedicated to what I consider Good and what I consider Bad on the web. This includes everything from personal preferences to following standards to standards that should not be followed. My own site is designed with these preferences in mind.


Good design

Minimalism is Good. I place foremost emphasis on the information content in a page. You don't need flashing banners, animated GIFs (or any GIFs), frames, etc. to deliver your content in the most efficient and elegant way possible. To paraphrase Einstein, everything should be as simple as possible, but no simpler.

Browser independence is Good. This maximises the number of people that can view the page, and also ensures compatability with future browsers. For example, as long as WebTV follows the standard, there's nothing you need to do to change your pages and make it look good on WebTV. However, if you used frames as an integral component of your pages, WebTV browsers may not be able to handle it. And if WebTV doesn't do anything for you, think of browsers for the blind. Or browsers on Palm Pilots.

Use of logical styles for character formatting is Good. Generally, an HTML author shouldn't have to worry about the physical formatting. But it's important to remember to not get too carried away by this, as you cannot have logical styles to cover all situations. I personally treat the default physical styles as logical styles which stand for text with "uncertain" format.

Redundancy is Good. This is a matter of personal taste to some degree---rather than have text in the alt attributes of images, I'd rather provide redundant links if the images have a link to something important. I think browsers should simply not display anything if the alt text is set to nothing and the person browsing has either turned images off or is not able to view them.

Good spelling and grammar is Good. I don't think people should be anal about this, but it certainly helps in getting the information content across.

Thinking about your markup in abstract terms is Good. You shouldn't have in your head when you write HTML what it will look like given the settings of any browser. There are an arbitrary number of ways your markup can be rendered. Someone once brought up an example of a wristwatch browser and said it would be impossible to design pages that can be viewed on them. This illustrates a lack of abstract/logical thinking. My view is that my markup should be handleable by such a browser (even though I have no clue how it'll be presented).


Bad design

Unnecessary complexity is Bad. I think this partly because I am a minimalist.

Browser dependence is Bad. You needlessly exclude people and by depending on a given browser that's "hot" today, you may be setting yourself up for a fall tomorrow.

Use of hard-coded constants is Bad. This includes height and width attributes which specify sizes of images, and the document type definition (these should be handled in a transparent manner by the server).

Constant use of physical styles is Bad. Even though I think there is place for both logical and physical styles, I think physical styles should be used only when there is no logical alternative.

Typos and grammatical errors are Bad. They detract from the content.

Use of "blank" images to control layout is Bad. HTML isn't about controlling layout--it's a markup language. The layout should be controllable by the user. Some people will argue that a majority of users are lazy and do not want to think about such issues. I think we should do our part to encourage users to be active (which is why we provide interactive applications).

Use of tables to control placement of images is Bad. See above.

Thinking about your markup in browser-specific terms is Bad. I know people who write markup so it matches their presentation aesthetic given their browser settings (like the people who use a image to get a huge space). This is a horrible way to do things. If you thought logically, every <p> </p> should be some abstract entity called a paragraph, every <ul> </ul> should be some abstract entity called a list, and so on. This doesn't mean you can never think about what's within <p> </p> at any point. In fact, as reader, you should think exactly about what you'd like there. But as an author, it should be an abstraction.

Finally there are issues which are a matter of aesthetics: frames, backgrounds, scrolling javascripts, underlining, and blinking are a big turn off in terms of visual appearance and so I turn them off as much as possible. These are extremely annoying when trying to obtain information quickly.


Pseudointellectual ramblings || Ram Samudrala || me@ram.org