There is an amusing platitude that goes "A camel is a horse designed by committee." This is of course an insult to camels, which are perfectly designed for their environment. You just try putting a horse in a desert and see what happens.
Something that wasn't designed by a committee as it happens is the <img> tag in HTML. This element specifies an image for inclusion in a page, and has the form
<img src="pic.gif" alt="Me, en route for France">
This was badly designed in three ways:
- It wasn't backwards compatible: browsers that didn't know about <img> just showed nothing at that point.
- It didn't allow for any fall back apart from the "alt" text. In other words you can only use a type of image (GIF or JPEG usually) that all browsers understand. This has seriously held back the acceptance of PNG images, which have far superior user-experience properties to either GIF or JPEG.
- The alternative text is just plain text: you can't mark it up in any way to make it italic or whatever.
If <img> had been designed well, firstly it would be called <image> (contractions are OK, but there's no need to overdo it: why <img> when you have <blockquote>?), and secondly it would have a fall back possibility like this:
- <image src="pic.png">
Me, <em>en route</em> for France
This would display a PNG graphic if the browser knew about them, otherwise a GIF graphic, and if all else failed (or images were turned off) the marked-up text. Browsers which have never heard of the <image> tag would still display something sensible.
This is why the <object> element was later added to HTML (by a committee), with exactly these properties (and handling other types of things than images into the bargain, such as MPEG movies).
Another thing not designed by a committee, but just added to a product without consultation, was Frames. These are widely infamous in the interaction community for their lack of user-friendliness, initially and principally for the way that they broke the use of the [back] button. But I have tried to identify all the problems with Frames, and this is what I have come up with:
- The [back] problem (which still exists, even if it is not as bad as it was originally).
- You can't bookmark a frameset in the combination of pages it holds.
- "Page up" and "page down" usually don't work properly: even if there's only one frame that is scrollable, you usually have to click in it before you can use the paging keys.
- If you do a "reload," you often get a different result than you started with.
- There are some security worries, when people combine pages from different sites in one frameset.
- Occasionally you can get trapped in a frameset, or you can get nested framesets, and it can be really difficult to get out.
- Search engines only find the pages included in the frames, so you get your search results without the navigation intended.
- Almost no one provides <noframes> content, so searches with search engines like Google are seriously weakened.
In fact I can only find two compelling uses for Frames:
- A search and display interface, where the results of some time-consuming search operation are shown in one frame, and clicking on those displays the resultant page in another frame.
- When scripting variables need to be kept over a series of pages.
All in all a pretty damning charge sheet, and therefore surprising that Frames are so widely used. What is also surprising is that if Frames had been designed in a slightly different way, most of the problems would disappear. If they had been designed not as a variation of HTML, but as a separate sort of document with the content HTML documents as parameters, such as:
many of the usability problems mentioned above would never have arisen.
My conclusion? Firstly that "Many eyes make all bugs shallow" also applies to user-interface design bugs, and that user interface people should be involved in the design of notations.
©2000 ACM 1072-5220/01/0300 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2001 ACM, Inc.