Navigation
The following rules govern navigation of the CHARM interface.
Keyboard mapping rules
-
Use the CHARM procedure for ``Help on Keys'' mapped to the <F2>
key so users can easily get to keyboard mappings. (Policy)
-
Use the keyboard mappings supplied by CHARM as they are
defined in this guide.
-
Use the mnemonics that you defined for the GUI for all controls
and menu commands. (Be aware of the CHARM
particulars for use of mnemonics.)
-
Use accelerators as they are defined in this guide.
Be aware of the system- and CHARM-reserved <Ctrl> key
definitions.
<Tab> groups
Use the following heuristics when defining <Tab> groups under CHARM:
-
must be logically arranged and based on the flow of the
task defined in the screen
-
must encourage quick and efficient movement through
the screen
-
normally move from left to right, top to bottom unless
the application has a compelling reason to move in a different order
Each element in the screen should be navigated to with
the <Tab> key. (Customize)
<Tab> groups examples are:
-
Button controls in a screen can be either individual tab groups or enclosed
in a <Tab> group where arrows move between buttons.
It is recommended that buttons be individually defined as
separate <Tab> groups.
-
Radio boxes contain radio buttons. (Policy)
-
Commands area (OK Cancel Help) in dialogs. (Policy)
-
Read-only text fields, scroll bars, and any navigation control,
should not be visited as a <Tab> group. (Policy)
Accelerators and mnemonics
CHARM precedes all Motif accelerators and mnemonics with <Ctrl>A
unless the focus is already in the menu bar, in which case
<Ctrl>A is not needed to execute the key strokes. (Policy) For example:
-
A mnemonic mapped to an <Alt>char
becomes <Ctrl>A+char in CHARM.
-
An accelerator mapped to a <Ctrl>char in Motif
becomes <Ctrl>A+<Ctrl>N in CHARM.
Motif
|
CHARM
|
Function
|
<Alt>F (mnemonics)
|
<Ctrl>A+F
|
Goes to File menu
|
<Ctrl>X (accelerator)
|
<Ctrl>A+<Ctrl>X
|
Executes Cut command
|
The following information on accelerators and mnemonics are
exceptions that must be noted when defining accelerators and
mnemonics for your CHARM application. Initially, choose
accelerators and mnemonics for Motif. If you cannot avoid
accelerator collisions, explicitly define a different
accelerator for CHARM or remove the accelerator altogether.
Accelerators
Set up accelerators under CHARM that do not conflict with
system text-entry-field commands or with CHARM-specific
commands. If you must use any of the following in the Motif
GUI environment, eliminate these accelerators from your
CHARM interface. (Customize)
The following accelerators are reserved for system use:
<Ctrl>C
|
Abort
|
<Ctrl>H
|
Backspace, Delete
|
<Ctrl>S
|
Stops sending
|
<Ctrl>Q
|
Start sending
|
<Ctrl>Z
|
Job control
|
The following accelerators are reserved for CHARM use:
<Ctrl>R
|
Refresh screen
|
<Ctrl>A
|
Mnemonic/accelerator lead-in character key
|
Mnemonics
To use menu bar mnemonics, the <Alt> key
is mapped to <Ctrl>A+key in CHARM. (Policy)
Use the same mnemonics that you have defined for
the Motif environment. (Policy)
Editing keys
The following keys are available for use in text widgets:
Control Key
|
Function
|
B
|
Backspace/Delete
|
D
|
Moves down the list
|
E
|
End of line/End of Text
|
I
|
<Tab>
|
J
|
New Line/Return
|
K
|
Return/<Tab>
|
L
|
Move cursor right
|
M
|
Return
|
T
|
Start of line/Top Text
|
Keyboard mappings
The following sections discuss the standard keyboard mappings.
<Enter> (Accept)
-
Performs a designer defined default action for the control
that the cursor is positioned on if a default action is
logical for the specific interaction. Defining behavior for
<Enter> is under the UI designer's control. (Customize).
A general rule-of-thumb is to assign a default to <Enter> in
cases where there is only one user interaction in the dialog,
such as a type-in field dialog. The user types in the printer
description and presses <Enter>. This accepts the input and executes the
OK (default) action:
-
If no default action is specified, <Enter> moves to the next
defined <Tab> group. (Customize).
In cases where dialogs are more complex (multiple and varied
fields accepting user input), <Enter> would accept the users
input and move to the next <Tab> group or would activate the
button of focus. In the example below, if the user activates
a button in the radio box and then presses <Enter>, the next
logical step would be to go to the password entry <Tab> group,
not the OK button at the bottom of the screen.
In this case no default action for <Enter> would be defined.
The behavior for the <Enter> key must be carefully configured for
optimum and consistent usage.
-
<Esc> activates buttons. When the <Tab> group is a button, or when
the active area is a button in a <Tab> group, pressing <Esc> activates
the button. In the above example, if the focus is on Select,
<Esc> would activate that button. (Policy)
<F10> (Menu)
-
<F10> moves between the main screen and the menu bar and
vice versa. The Alt+F mnemonic (<Ctrl>A+F) posts the menu. (Policy)
-
If a menu is open, pressing <F10> will move out of the menu and back
to the main screen. (Policy)
<Space> (Select)
-
<Space> selects an item from a multiple-select list.
Auto-select should be set to ``off'' (this is the default setting
for auto-select and is policy). The interaction is to move
through the list with the arrow keys, press <Space> for multiple
selections, and an asterisk marks each selection. When all selections are made,
<Tab> moves to the next logical step (<Tab> group) or <Esc> moves to
next logical step (tab group or default action.)
NOTE:
Auto-select should be ``on'' for single-select lists which must
be designer-customized.
-
Checks (turns on) a check box. When the user presses <Space>
on a check box, the asterisk fills in the check box (or is removed from
the check box if it is already checked). (Policy)
-
Activates buttons (commands). If the highlight or focus is on a
button or control, pressing <Space> will activate the button.
In this case, <Space> acts like the <Esc> key interaction. (Policy)
-
Radio buttons are not activated by <Space>. Selection is
automatic traversal with the arrow key. (Policy)
<Tab> (Next Field, <Shift><Tab>=Previous Field)
-
<Tab> moves to the next defined <Tab> group. <Tab> does not cause any
activation. (Policy)
-
<Shift><Tab> (if supported by the terminal) moves backward and does
not cause any activation. (Policy)
-
<Tab> from a field leaves the field in the state that the user
last left it, it does not reset back. If a user moves through
a selection list, arrows to a new selection in drop-down lists,
or selects a check button or radio button, tabbing to the next
field changes the value to the state that the user last left
the field. (Policy)
<Esc> (Cancel)
-
Pressing <Esc> when a menu is open closes the menu. (Policy)
-
Pressing <Esc> cancels the dialog when a dialog is open. (Policy)
-
If an option menu has been opened, pressing <Esc> closes the Option
menu, canceling any selection that has just been made. (Policy)
-
<Esc> from a form (main screen) activates the Cancel option.
This behavior needs to be evaluated on a case-by-case basis
on whether it makes sense or not to the particular client. (Customize).
Arrow Keys (next item)
-
Move up and down through lists moving the selection highlight. (Policy)
-
Moves through and marks selection of radio buttons. (Policy)
-
Moves through check boxes if they are defined in a <Tab> group,
but makes no selection. (Policy)
-
Moves through buttons if they are defined in a <Tab> group.
(policy based on customizing for buttons)
<F1> (Help)
Provides context sensitive help. (Policy)
<F2> (list CHARM keys)
-
Pop-up help screen on CHARM keyboard mappings (Policy)
-
CHARM provides a help list of CHARM
keyboard mappings. We highly recommend that you add this
procedure to the Help menu commands in a menu bar client
(Help on Keys). Bind the procedure to <F2> and on dialog boxes,
add an extra button in the OK, Cancel, and
Help area that is titled ``Keyboard Help''. (Customize).
Next topic:
Selection
Previous topic:
CHARM interface guidelines
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003