Isn’t interface design just a matter of applying common sense to make a program user friendly?

No, it goes beyond that to consider how other people think. Consider this example of an HTML Checker Program

Version 1

Long Description: Top grouping: Title: Warning Checkbox Options Check box 1: Show warnings Checkbox 2: Show comment warnings Checkbox 3: Show missing attribute warnings Bottom Grouping: Title: Tan name program options Check box 1: enable programs Other check boxes : Flag 1 thru 20

Version 2

Long Description:A poor dialog box from an HTML checker program. Title: Program flags Grouped information: A list of check boxes listed 1 thru 60

 

Slide Comments:

CSE HTML Validator v3.05, a program designed to check HTML documents for syntactical errors. We found this portion of its Options dialog to be particularly problematic.

The "Flag" checkboxes are used to set validation and program options. Quick, here's a test:

Which flag checks for tags specific to Internet Explorer?

Which flag checks for tags specific to Netscape Navigator?

Which flag displays a warning against the use of <CENTER> tags?

Which flag controls whether sound is played during validation?

What does Flag 14 do?

Here are the answers:

Flag 1.

Flag 2.

Flag 9. It also warns against the use of <BASEFONT>, <FONT>, <S>, and <U> tags.

Flag 10 of course.

Nothing. OK, it's a trick question: flags 14-20 don't do anything; they are merely placeholders for possible future expansion.

Each flag controls the validation of several HTML tags; the user will have to visit the help file to determine the tags related to a particular flag. The existing design is merely a reflection of the programmer's model of the system, which in no way helps the user. The developer was concerned with making the program configurable for a variety of browsers and expandable to include changes to HTML specifications as they occur.

In version 4.0 of CSE HTML Validator, the developers took a bad idea and made it far worse. Now rather than having to struggle with 20 flags, the user must contend with 60