The Windows Interface
A Summary of GUI Guidelines

Miscellaneous Topics

Loading and Initialization

When an application is invoked, the following sequence is suggested:

1) display the application window; then

2) display the startup message.

The application window should be displayed as soon as possible.

The startup message window should be a modal dialog box with copyright, version, and user identification information. It does not need a title bar. It may also include an icon or other graphic identifying the application (typically the same graphic used in the About <Application Name> dialog box). Once the application is loaded and ready for user input, the startup message window should close automatically.

Additional initialization tasks may be performed any time after the application window is displayed and either before or after the startup message is displayed. If these tasks take a long time to complete, perform some before displaying the startup message and the remaining after displaying the startup message. The startup message will serve as a progress indicator.

Generally, if there is not enough memory to open the application, the system will post a message. Once the application is open, it is the application’s responsibility to inform the user of insufficient memory for specific tasks.

User Levels and Customization

Applications may provide means for a user to customize the interface. The current customizations should be saved when the user quits the application.

Unfolding dialog boxes keep the user interface easy for new or inexperienced users, while making advanced functionality available to experienced users.

Applications can accommodate users with special needs by observing the following guidelines.

1) Use multiple perceptual channel inputs (e.g., visual and audio). Avoid using only audio cues for any condition that absolutely requires attracting the user’s attention. Do not rely on color alone to provide essential information.

2) Do not require rapid responses. Avoid time-out situations. If time-out situations must be used, make the time-out period long or give the user the choice of running the application in a "slow" mode.

3) Avoid rapid flashing of interface elements or data items on the screen.

Help

Applications should facilitate use by providing brief help messages automatically either through the message bar or message dialogs. Help buttons in message dialogs are optional but highly recommended, especially for warnings and critical messages. More extensive help should be provided from the Help menu.

Internationalization

Applications that must cross linguistic, cultural, and national boundaries should have adaptable interfaces.

Interface Text

Interface text includes titles in title bars, menu names, menu items, control labels, list items, and messages. Translation of interface text from English to other languages typically increases the length of the text by 30%. In some cases, the character count can increase by more than 100%. If the amount of space for displaying text is strictly limited (e.g., a status bar), the length of the English interface text should be limited to approximately one-half of the available space. Where there is more flexibility (e.g., dialog boxes), the interface design should allow for text expansion of at least 30% for all text except messages. Allow for expansion by approximately 100% for message text.

Never rely on the position of text in a menu, dialog box, or window. Translation may require repositioning.

Hardware

Outside the US, EGA and VGA are not necessarily standards. Interface elements should be designed to maintain aesthetic appeal on various resolutions and screen aspect ratios.

International keyboards may also differ from those used in the US Some international keyboards use alt+key combinations to enter certain characters. Some punctuation marks (e.g., brackets and braces) are not available on international keyboards or are available only in combination with alt.

Function key accelerators are easier to localize than modifier+letter accelerators.

All international applications should support multiple code pages and sorting tables to allow for the use of different extended character sets. Applications should use system-supplied routines for sorting and case conversion rather than application-specific routines.

Formats

International applications should permit modification of formats for dates, time, money, measurements, and phone numbers. The table below gives the most common format categories.

Date May vary in order, separators, and long/short formats.
Time May vary in separators and cycle (12-hour vs. 24-hour)
Physical Quantity Metric vs. English measurement system
Currency May vary in symbols and format (e.g., currency symbol preceding vs. trailing amount)
Separators List, decimal, and thousandths separators may vary
Telephone Numbers Separators for area codes and exchanges may vary
Paper Sizes US vs. European paper sizes