
Visual Elements
Some developers seem to go out of their way to make their programs difficult to read or understand. Often this is in a quest to make the program appear new, different, or, pardon the term, "cool". Novelty has its place, without it, we never would have achieved graphics interfaces. However, when applied without the aim of enhancing the user's interaction, it usually results in degradation of the interface, ranging from mild hostility toward the developer's choice of colors, for example, to eye strain and concomitant headaches from trying to read inappropriate fonts.
Last updated 19-September-1999
Jim Brooking sent us a number of images from Popkin Software's System Architect. Two of the images illustrate a particularly unusual and particularly bad means of providing dialog resizing capability. The images are too large to include here, so we've provided a separate page to contain them. If you've ever had to struggle with how to provide resizeable dialogs, be sure to check this page out so you can avoid Popkin's technique. |
![]() We've come up with a new rule for program developers: You must at least LOOK at your designs before inflicting them onto your users. This image was taken from a tutorial released to members of a very large organization to instruct them in the use of a new software management system. As is clearly evident in the image, the choice of font, color, and background have made the tutorial almost completely unreadable, and therefore, absolutely useless. Try to read the text in the image, and note the intense effort required. The only excuse for such a pitiful combination of screen characteristics is that the developer never looked at his or her creation; as such, there is no excuse. |
Berco Beute sent us this image of a dialog in Microsoft's Outlook Express Newsreader: |

The dialog is presented when the user wants to send a message to more than one newsgroup. There is one not insubstantial problem, however, there is not enough space in the windows to show the full names of the newsgroups! A horizontal scrollbar is provided, but as is evident in the image, the scrollbar is useless. And, in typical Microsoft design style, the dialog is not resizable. The designer screwed up, the quality assurance department screwed up, and apparently, Microsoft's usability testing division screwed up by not finding such an obvious fault. |
![]() |
![]() The Regional Preferences applet in Windows95 sports a couple of features that make it difficult to for the user to see what he or she has done. In the first place, they decided to give the sample fields a disabled appearance, rather than a read-only appearance. Had they decided to use the standard text color rather than the disabled text color, the second problem might be more evident: they did not provide enough room in the fields to fully display the specified format. The sample values should have 4 digits to the right of the decimal, and the negative value should be sporting a closing parentheses. Oops! |
![]() Microsoft added the "feature" only to make their applications look different, not unlike the gradient-shaded title bars used in Office95. We can only hope that this practice is as short-lived as the gradient title bar. Our advice: don't waste your time trying to make your menu titles act like Microsoft's; your time can be better invested in improving the interface. |
![]() Microsoft's Access97 sports another variation on unnecessary distractions. As the cursor passes over the tabs on the main database window, the caption is displayed in a brighter color. Not unlike the dynamic borders on menu titles in Office97, the practice of dynamically changing the color of interface elements provides no benefit to the user, but has the undesirable effect of capturing his or her attention away from the task at hand. Microsoft's own uncertainty over the practice is clearly evident from the fact that they chose not to use the new technique on the command buttons on the dialog, nor did they employ the practice on other tabbed dialogs in Access97. |
![]() ![]() |
|
![]() We included this example because it illustrates two visual problems. The first is that the navigation toolbar is scrollable, but the designers essentially hid this fact from the user. The designers opted to eschew the standard scrollbar, and utilized one of their own design, one which few users would be familiar with. Here's a good rule of thumb to follow when designing your own controls: Use the controls that are provided by the operating system. The user is already familiar with them and will readily understand their purpose and rules of operation. The second reason we included this particular example became evident when we finally realized that the navigation toolbar was scrollable: WebZip provides a "Quick Start" option for new users, which uses a Wizard-style interface to explicitly describe how the program is used. Unfortunately, this option is the last item in the navigation toolbar, and is not visible until the user has stumbled upon the custom scroll control. Here's another rule of thumb: Don't hide the features that make your program usable. |
![]() Since the designers seem to have a great deal of time on their hands, perhaps it would be better spent increasing the usability of Microsoft products rather than providing useless gimmicks to wow their pre-teen customers. |
![]() |
![]() With gimmicks like this, is it any wonder that Word now consumes 120 MegaBytes of disk space?
|
"consistency makes the interface familiar and predictable" (The Windows User Interface Guidelines for Software Design, Microsoft Press)
![]() Our hope is that most Visual Basic 5.0 developers will learn about consistency from Microsoft's Design Guidelines rather than from using Microsoft's products. The image above is a compilation of various dialogs used in the VB5 programming environment. In many parts of the program, the VB5 development team relied on Microsoft's then newly adopted practice of locating command buttons horizontally aligned in the lower right corner of the dialog boxes. Unfortunately, the developers responsible for a large number of the functions in the product were not aware of the new "standard". In addition to the various positions illustrated here, dialog boxes provided by third-party add-ons to the product (e.g., Crystal Reports) utilized even more creative locations. |
![]() This theme will be repeated several times throughout the Interface Hall of Shame: If something is important enough to be displayed to the user, make sure that the user will be able to see it.The number of recipients is clearly displayed on the screen, the state of the Auto-File option is clearly displayed on the screen, but whether or not the user remembered to attach the file he or she intended to send is barely indicated. |
![]() The most notable omission is that the program does not provide any feedback as to the drawing mode that you are in. Most applications that use this metaphor provide a modified cursor which indicates the selected tool; in Visual Forms, nothing appears to happen upon the selection of a drawing tool, that is, until you click somewhere on the design form. At that point, as shown in the illustration, a dialog window quite unexpectedly appears, rather than the image you intended to draw. Additionally, unlike most drawing applications, the drawing mode is persistent, that is, after drawing one object, you will always be in that mode until you select a different drawing tool. The persistence wouldn't be much of a problem if the cursor indicated that you were in a particular drawing mode, but without that feedback, the user is likely to inadvertently draw quite a few objects. Since the pointing cursor is exactly the same as the drawing cursor, the user is often likely to create a new object when all he or she intended was to point and select an existing object. |
![]() In case you were wondering, you cannot scroll to the right; what you see is what you get. To add insult to injury, one-third of the form is taken up with the company's logo. |
![]() |
![]() In this case, the overuse of 3-D effects makes the window unnecessarily cluttered and confusing. Users will wonder if the various depths represent some sort of significance, when in fact, they merely represent the whims of the programmer. As shown with the command buttons at the bottom of the window, the misapplication of a sunken 3-D border surrounding a raised object nullifies the command button's intended border. When you find yourself about to unnecessarily clutter your windows with irrelevant visual effects, try to remember this timeless phrase: Keep it Simple Stupid. |
![]() In the example illustrated here, the user is trying to add a line of text to a zoomed image of a sunset. Notice that when the Text toolbutton is clicked, it takes on a clicked appearance, but Paint rapidly reverts to the previously selected control. Thus, in attempting to add text to the image, the user inadvertently drew an irregular black line through the image. After performing such an inadvertent action, most users would assume that they did not click the text tool button. They will try clicking it again, attempt to define the text rectangle, and ... #$%#@~! - there's that darned slash again. When a tool, or a command is not available, do the user a favor by making it look unavailable. |
![]() |
![]() |
![]() Some of the network options in Time & Chaos must be REALLY IMPORTANT. Why else would the developers have displayed them in all uppercase? Avoiding uppercase is one of the first rules of netiquette because it is universally interpreted as shouting, and immediately indicates that the writer is either a pyramid marketer ("GET RICH REALLY QUICK!"), or a first-time user ("HOW DO I SEND A MESSAGE"). In perceptual terms, the use of all uppercase makes the information inherently difficult to read. DON'T USE IT. |
![]()
The designers of Midi Orchestrator decided to buck the industry standard of placing status messages and context-sensitive help in a status bar in the lower left corner of the screen, and decided to place them in the title bar instead. As the cursor moves over a control, a description of the control is displayed in the title bar. Midi Orchestrator is an otherwise excellent product, but it has an extremely complex display: there are 161 controls on the main window. Move the cursor more than 2 or 3 pixels, and a different message will be displayed. Make a sweeping movement with the mouse, and the title bar of this otherwise wonderful application becomes a strobe light. This type of information is best displayed using Tooltips which have a built-in delay, such that the message is displayed only after the cursor has paused over the control. They have the additional advantage of being displayed in close proximity to the control. Even then, make sure the control needs a description: displaying "Adjust channel volume" for a control labeled "Volume", and "Total Length of song" for a control labeled "Total length" does not add much to the user's understanding. Here's another rule of Windows design: the title bar is used to display the title. Status messages and context-sensitive help should be placed in the lower left corner of the screen. At least Midi Orchestrator used a different font for status messages; this, and the fact that it changes so often, distract the user's attention (painfully so) to the title bar. More typically, users don't look to the title bar for help; they've come to expect that the title bar will contain the title, and help will be displayed in the lower left corner. If you need to display status messages, display them where they will be seen. |
![]() Hewlett-Packard writes software to support a wide variety of platforms, so we can be somewhat forgiving of their indiscretion with the placement of menu titles for Windows software. Under the Windows operating system, the Help menu should be the right-most menu title. This does not mean that it should be placed all the way to the right, as shown above. In a relatively small window, the distance is not very significant, but on a maximized window, the menu could be missed. We've included this example because we still see questions in programming forums asking how this technique is achieved in the Windows operating system. The answer: don't do it. |
![]() The designers of IBM's RealPhone application felt that the user would benefit if the application wasn't "cluttered" with such distracting items as control labels and instructions. Instead, the designers opted for the use of so-called "Hover Help" throughout the application. (Why they didn't use the industry standard "Tooltips" is beyond us). Tooltips are a very important innovation in interface design, if used appropriately. As indicated here, IBM abused them, making them not only ineffective, but highly distracting as well. The tooltips (we cannot bring ourselves to use the term 'Hover Help') are used to compensate for the complete non-intuitiveness of the application, and as a result, provide far too much information to be effective. Worse than that, the tooltips are only displayed for approximately 3 seconds: they disappear before the user can finish reading them. RealPhone has earned a very special place in the Interface Hall of Shame. We consider it among the worst interfaces we have ever come across. Click here for more information. |
![]() |
This image, from Webforms, simply hurts the eyes. Labels are not aligned to the fields they are associated with, causing the eyes to zig-zag around the screen as the user attempts to locate a field of interest. The choice of color to distinguish labels from editable fields further adds to the headache. Further, placing help information (will not appear on...WHAT?) in the labels just adds to the mess. Given that their status bar is too difficult to read, they probably decided that this was probably the next best place for it. |
![]() If you really want to make things difficult for your users, just slap a screen together without regard for order or organization. This image is taken from IBM's Aptiva Communication Center, and demonstrates to us at least, that the developers simply wanted to get the settings on the screen, rather than make it easy for people to adjust the settings. There is no flow to the screen; your eyes just jump around from place to place as your brain tries to elicit some sort of order. A well-designed screen, in stark contrast to this image, uses position, alignment, and grouping to organize the information, to provide an information flow. This not only makes it easier to locate a specific piece of information, it relieves the brain from having to subconsciously apply order. Some hints:
|
![]() The best way to let your users know which aspects of your interface are controls is to make your controls look like controls. The three objects at the bottom - now they look like command buttons. |
![]() Microsoft's Internet Explorer provides a clear example of novelty without reason. One of the reasons that graphical user interfaces are easy to learn is that the interface controls look and behave as controls; they appear as though they can be manipulated. Architects have often removed or confused such visual cues for the sake of novelty. Each of us has experienced the end result: the embarrassed glance around to make sure that we were not observed trying to push open a door that must be pulled open. Aside from the usability aspects, there are the aesthetic. Whereas the toolbars in Word or Excel, for example, could be described in engineering terms as 'sexy' or 'elegant', the toolbar in Internet Explorer could only be described as the equivalent of a torn, soiled sweatshirt. |
![]() Undoubtedly, the popularity of the Internet has contributed to this trend. What developers need to realize is that basic technology of the Internet is a huge step backwards. HTML, the language of the Internet, offers the designer extremely limited control over the interface. Rather than making our desktop applications look and act like Internet Web sites, we should be trying to make the Internet more like our desktop applications. |
![]() Trying to make a desktop application look like browser can only lead to confusion. In trying to extend the misdirected browser metaphor by applying a background image, the designer intentionally makes the information more difficult to read. While you may not be consciously aware of it, your eyes are struggling to extract information from the various contrasts in the image; eventually this leads to eye strain and headaches. If the information is worth putting on the screen, make it readable. |
![]() |
![]() |
![]() The practice of using command buttons as field labels represents particularly bad interface design. By using a single control for multiple purposes, you confuse the user and make it difficult for him or her to develop associations between the graphical objects and their functions. One additional problem is that you make keyboard access difficult, since by placing the mnemonic on the command button, there is no way to access the field it serves as a label for, without invoking the command button itself. |
![]() This example was taken from the installation of Drawing Board LT, a shareware CAD program. During the course of the installation, several hundred files are copied to your hard drive. Rather than indicate the progress of the entire installation, the authors decided that it was more important to indicate the installation progress of each file. The end result of this design descision is that the user has absolutely no idea as to the state of the installation. Most of the files are small (less than 10KB), causing the filename to be overwritten with such rapidity that it is impossible to read the name of the file. That's not too much of a problem, since ... well, "Who cares about the names of the files as they are installed?!" The more shameful aspect of the installation is that the fluorescent green progress meter becomes a completely useless distraction. It flickers with such rapidity that you are forced to turn your eyes away, or better yet, leave the room before installing the software. |
![]() Here's a good rule of thumb to follow: . It is extremely distracting, and should only be used to draw the user's attention to the most severe conditions, such as: "Your computer is on fire". |
![]() HTML Transit is an award-winning, very useful application that converts a number of file formats to HTML for use in web sites. When first loaded, it presents a visually pleasing interface. Unfortunately, "useful" and "visually pleasing" do not necessarily translate to "usable". One problematic aspect of the program is that it gives the appearance of a multiple-document interface (MDI) application, as indicated by the File menu, but also acts as a dialog box, as indicated by the command buttons on the main window. In all other MDI applications, when the user has selected "New" or "Open" from the File menu, the contents of the window will display the contents of the file. In HTML Transit however, selecting "Open" only gives the appearance of changing the title of the window, and selecting "New" does ... nothing. In either case, the contents of the main window does not change. The new user is likely to select "New" several times, then, after concluding that the program does not work, uninstall the program. The basic problem with the program is that it does not provide visual feedback that the operation was successful. The user must open one of the various dialog boxes associated with the command buttons (in the left column) to see the information associated with the template. Clicking any of the buttons in the right column will generate an error message unless the user has specified settings elsewhere in the program. This is an entirely confusing structure that is likely to cause InfoAccess to lose quite a few potential customers. |
![]() |
© 1996-2000 Isys Information Architects Inc. All rights reserved.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.
GP designpartners provide this mirror — for educational purposes only — as the interface hall of shame is no longer maintained or available at its original home, www.iarchitect.com [a domain apparently abandoned and taken over by a search spammer ...].
you can view this file in its original layout: visual.htm.
please drop us a line if you happen to know anything about the whereabouts of brian c hayes of isys information architects, the author of this »interface hall of shame« [and fame].