In efforts to make computer-based systems easier for people to use, various methods of communicating commands to the computer have been developed. With the "command-line" approach, the user types the text of a command. Keys have been added to the keyboard that can be used to issue a command with a single key stroke; the extra keys may be arranged to perform different functions at different times, in which case they are known as programmable function keys (PF keys). Menu-driven systems display lists of commands (also known as menu picks) from which the user can select by moving a cursor to point to the desired menu pick.
Menu systems can be arranged to operate in various ways. For example, the keys can be used in different ways, such as using the arrow keys to move the cursor among the menu picks or using the space and backspace key to move the cursor among the menu picks. If the key usage and display conventions for menus is different when using a computer system for different functions, the user's efficiency will be diminished; in extreme cases, incorrect menu selections may be made.
A menu-driven system may organize its commands in a hierarchy of menus. For example, the top level menu might be used to select among different applications such as word processing, data base management, a message system; if the user selects the message system from the top level menu, then the next level menu is presented with options such as reading, creating, or sending messages; if the user selects message creation, then the next level menu might provide various commands for editing the text of messages. The other options on the top level menu lead to other branches in the menu tree or hierarchy.
Although tree-like structures are typically used, the organization need not be perfectly tree-like. For example, it may be desirable to have the same option appear on menus in separate branches; this would be like two branches with a common sub-branch.
In a menu-driven system that offers a very large repertoire of commands, navigation through the menu system can itself become time consuming. For certain situations, backing up is becoming an increasingly undesirable way of getting back to a previous menu. If one frequently switches between two areas of the menu system that are deep in the menu hierarchy, much time may be spent backing up through menus from one area to a high level menu common to the two areas and then proceeding down through menus to the other area. Unnecessary delay results from the time it takes to present to the user each of the menus through which the user wants to back up and the time it takes the user to check to see if the desired menu has been reached.
One way to address this problem is to provide menu by-pass commands. A mechanism is provided by which the user can enter a code or some command text identifying directly the menu to which the user desires to proceed. In by-passing menus in this way, the user is also giving up the benefit menus provide; this form of menu by-pass is a return to command-line operation with the associated limitation that the user must remember the by-pass commands.
Another type of menu navigation aid is a "menu" key. In response to pressing the menu key, the system switches directly to the top level menu. This key enables a user to proceed directly from any lower level menu directly to a predetermined menu.