[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif and CDE 2.1 Style Guide Reference
Navigation (CDE)
Reference
Description
Navigation is the movement of pointers and cursors within the interface to
indicate where actions should occur.
Guidelines
RequiredWhen the keyboard focus policy is explicit, allow the user to press the
SELECT button on a component to move focus to it, except for components, such
as scroll bars, that are used to adjust the size and location of other
elements.
RequiredWhen the pointer is on a menu, allow the user to press the SELECT button
to activate the menu in a spring-loaded manner.
RequiredWhen the pointer is on an element with an inactive pop-up menu and the
context of the element allows the pop-up menu to be displayed, allow the user
to press the MENU button to activate the pop-up menu in a spring-loaded
manner.
RequiredIf the user takes an action to display a pop-up menu, and a menu can be
displayed for both an inner element and an outer element that contains the
inner element, display the pop-up menu for the internal element. Be sure that
the pop-up menu for an internal element is always accessible.
RequiredOnce a pop-up menu is displayed, make the MENU button behave just as the
SELECT button does for any menu system.
RequiredMake the SELECT button available from within posted pop-up menus. It
should behave just as in any menu system.
RequiredWhen a menu is popped up or pulled down, place the location cursor on the
menu's default entry or on the first entry in the menu, if there is no
default entry.
RequiredRemove a spring-loaded menu system when the mouse button that activated it
is released, except when the button is released on a cascading button in the
menu hierarchy.
RequiredWhile a spring-loaded menu is popped up or pulled down, moving the pointer
within the menu system moves the location cursor to track the pointer.
RequiredWhen a spring-loaded menu is popped up or pulled down and the pointer
rests on a cascading button, pull down the associated menu and make it
traverse. Remove the associated menu, possibly after a short delay, when the
pointer moves to a menu item outside of the menu or its cascading button.
RequiredWhen a spring-loaded menu that is part of the menu bar is pulled down,
moving the pointer to any other element on the menu bar unposts the current
menu system and posts the pull-down menu associated with the new element.
RequiredWhen a spring-loaded menu is popped up or pulled down, and the button that
activated the menu system is released within a component in the menu system,
activate that component. If the release is on a cascading button or an option
button, activate the associated menu in a posted manner if it was not posted
prior to the associated button press.
RequiredWhen the pointer is in an area with a pop-up menu, allow the user to click
the MENU button to activate the menu in a posted manner if it was not posted
prior to clicking the MENU button.
RequiredOnce a pull-down or option menu is displayed, pressing the SELECT button
in the menu system causes the menu to behave as a spring-loaded menu. This
allows the user to switch easily between using a posted menu and a
spring-loaded menu.
RequiredIf a button press unposts a menu and that button press is not also passed
to the underlying component, do not pass subsequent events up to and including
the button release to the underlying component.
When a button press unposts a menu, the press can be passed to the
underlying component. Whether or not it is passed to the underlying component,
the press can have additional effects, such as raising and giving focus to the
underlying window. If the press is not passed to the underlying component,
events up to and including the release must not be passed to that component.
RequiredOnce a pop-up menu is displayed, pressing the SELECT button or pressing
the MENU button in the menu system causes the menu to behave as a
spring-loaded menu.
OptionalPressing or clicking the MENU button on a menu-bar item displays the menu.
RequiredPressing or clicking the MENU button on an option button displays the
option menu.
RequiredPressing the SELECT button on a text field causes the text cursor to be
inserted at the mouse cursor position.
RequiredIn a text component, display the text cursor differently when it has
keyboard focus than when it does not. In a text component, the text cursor
serves as the location cursor and, therefore, must indicate whether the
component has keyboard focus.
RequiredIf a text component indicates that it has lost the keyboard focus by
hiding the text cursor and if the component subsequently regains the focus,
the cursor should reappear at the same position it had when the component lost
focus. The text cursor should not change position when a text component loses
and then gains keyboard focus.
RequiredIn a small component, such as a sash, indicate that it has keyboard focus
by filling it. No other meaning should be associated with the filled state.
RequiredPressing Ctrl Tab moves the location cursor to the next field, and
pressing Ctrl Shift Tab moves the location cursor to the previous field.
Unless Tab and Shift Tab are used for internal navigation within a field,
pressing Tab also moves the location cursor to the next field, and pressing
Shift Tab also moves the location cursor to the previous field.
RequiredPressing Tab (if not used for internal navigation) or Ctrl Tab moves the
location cursor forward through fields in a window according to the following
rules:
If the next field is a control, pressing Tab (if not used for internal
navigation) or Ctrl Tab moves the location cursor to that control.
If the next field is a group, pressing Tab (if not used for internal
navigation) or Ctrl Tab moves the location cursor to a traversable component
within the group.
If the next field contains no traversable components, pressing Tab (if not
used for internal navigation) or Ctrl Tab skips the field.
RequiredPressing Shift Tab (if not used for internal navigation) or Ctrl Shift Tab
moves the location cursor backward through fields in the order opposite to
that of Tab (if not used for internal navigation) and Ctrl Tab.
RequiredWhen a window acquires focus, place the location cursor on the control
that last had focus in the window, providing that all the following conditions
are met:
The window uses an explicit keyboard focus policy.
The window acquires the focus through keyboard navigation or through a
button press other than within the client area of the window.
The window had the focus at some time in the past.
The control that last had focus in the window is still traversable.
RequiredWrap field navigation between the first and last fields in the window.
RequiredWhen V and ^ are used for component navigation within a
field, they should behave according to the following rules:
In a left-to-right language environment, pressing V moves the
location cursor through all traversable controls in the field, starting at the
upper left and ending at the lower right, then wrapping to the upper left. If
the controls are aligned in a matrix-like arrangement, V first
traverses one column from top to bottom, then traverses the column to its
right, and so on. In a right-to-left language environment, pressing V
moves the location cursor through all traversable controls, starting at the
upper right and ending at the lower left.
Pressing ^ moves the location cursor through all traversable
controls in the field in the order opposite to that of V.
RequiredWhen > and < are used for component navigation within a
field, they should behave according to the following rules:
In a left-to-right language environment, pressing > moves the
location cursor through all traversable controls in the field, starting at the
upper left and ending at the lower right, then wrapping to the upper left. If
the controls are aligned in a matrix-like arrangement, > first
traverses one row from left to right, then traverses the row below it, and so
on. In a right-to-left language environment, pressing > moves the
location cursor through all traversable controls, starting at the lower left
and ending at the upper right.
Pressing < moves the location cursor through all traversable
controls in the field in the order opposite to that of >.
RequiredIf a control uses > and < for internal navigation, pressing
Begin moves the location cursor to the leftmost edge of the data or the
leftmost element in a left-to-right language environment. In a right-to-left
language environment, pressing Begin moves the location cursor to the
rightmost edge of the data or the rightmost element.
RequiredIf a control uses > and < for internal navigation, pressing
End moves the location cursor to the rightmost edge of the data or the
rightmost element in a left-to-right language environment. In a right-to-left
language environment, pressing End moves the location cursor to the leftmost
edge of the data or the leftmost element.
RequiredIf a control uses V and ^ for internal navigation, pressing
Ctrl Begin moves the location cursor to one of the following:
The first element
The topmost edge of the data
In a left-to-right language environment, the topmost left edge of the
data; in a right-to-left language environment, the topmost right edge of the
data
RequiredIf a control uses V and ^ for internal navigation, pressing
Ctrl End moves the location cursor to one of the following:
The last element
The bottommost edge of the data
In a left-to-right language environment, the bottommost right edge of the
data; in a right-to-left language environment, the bottommost left edge of the
data
OptionalEach time a new window is opened, place keyboard focus in the first field
or location within the window or in a default location, if this is appropriate
for the particular window.
RequiredPressing Tab key moves input focus between push buttons within a group.
RequiredThe Ctrl, Shift, and Alt keys should modify only the function of other
keys or key combinations.
OptionalPressing Alt only to provides access to mnemonics.
RequiredIf the user traverses to a menu while the keyboard focus policy is
implicit, temporarily change the focus policy to explicit and revert to
implicit whenever the user traverses out of the menu system.
Menus must always be traversable, even when the keyboard focus policy is
generally implicit.
RequiredPressing F10 activates the menu bar-system if it is inactive and the
location cursor is placed on the first traversable cascading button in the
menu bar. If there are no traversable cascading buttons, the key should do
nothing.
RequiredWhen the keyboard focus is in an element with an inactive pop-up menu and
the context of the element allows the pop-up menu to be displayed, pressing
menu activates the pop-up menu and places the location cursor on the default
item of the menu or on the first traversable item in the pop-up menu, if there
is no default item.
RequiredWhen the keyboard focus is in an option button, pressing Select or
Spacebar displays the option menu and places location cursor on the previously
selected item in the option menu; or, if the option menu has been pulled down
for the first time, places the location cursor on the default item in the
menu. If there is an active option menu, pressing Return, Select, or Spacebar
selects the current item in the option menu, unposts the menu system, and
returns the location cursor to the option button.
RequiredPressing V, ^, <, and > traverses through the
items in a menu system.
RequiredWhen a menu traversal action traverses to the next or previous component
in a menu or menu bar, the order of traversal and the wrapping behavior should
be the same as that of the corresponding component navigation action within a
field.
RequiredIf your application uses any two-dimensional menus, do not include any
cascading buttons. Cascading buttons in a two-dimensional menu restricts the
user's ability to use the keyboard to navigate to all of the elements of
the menu.
RequiredWhen focus is on a component in a menu or menu-bar system, pressing
V behaves in the following way:
If the component is in a vertical or two-dimensional menu, pressing
V traverses down to the next traversable component, wrapping the
component within the menu if necessary.
If the component is in a menu bar, and the component with the keyboard
focus is a cascading button, pressing V displays its associated
pull-down menu and traverses to the default entry in the menu or, if the menu
has no default, to the first traversable entry in the menu.
RequiredWhen focus is on a component in a menu or menu-bar system, pressing
^ behaves in the following way:
If the component is in a vertical or two-dimensional menu, pressing
^ traverses up to the previous traversable component, wrapping within
the menu if necessary, and proceeds in the order opposite to that of pressing
V.
RequiredWhen focus is on a component in a menu or menu-bar system, pressing
< behaves in the following way:
If the component is in a menu bar or two-dimensional menu, but not at the
left edge, pressing < traverses left to the previous traversable
component.
If the component is at the left edge of a menu bar, pressing <
wraps within the menu bar.
If the component is at the left edge of a vertical or two-dimensional menu
that is the child of a vertical or two-dimensional menu, pressing <
unposts the current menu and traverses to the parent cascading button.
If the component is at the left edge of a vertical or two-dimensional menu
that is the child of a menu bar, pressing < unposts the current menu
and traverses left to the previous traversable entry in the menu bar. If that
entry is a cascading button, pressing < posts its associated pull-down
menu and traverses to the default entry in the menu or, if the menu has no
default, to the first traversable entry in the menu.
RequiredWhen focus is on a component in a menu or menu-bar system, pressing
> behaves in the following way:
If the component is a cascading button in a vertical menu, pressing
> displays its associated pull-down menu and traverses to the default
entry in the menu or, if the menu has no default, to the first traversable
entry in the menu.
If the component is in a menu bar or two-dimensional menu, but not at the
right edge, pressing > traverses right to the next traversable
component.
If the component is at the right edge of a menu bar, pressing >
wraps within the menu bar.
If the component is not a cascading button and is at the right edge of a
vertical or two-dimensional menu, and if the current menu has an ancestor
cascading button (typically in a menu bar) from which pressing V
displays its associated pull-down menu, pressing > unposts the menu
system pulled down from the nearest such ancestor cascading button and
traverses right from that cascading button to the next traversable component.
If that component is a cascading button, pressing > displays its
associated pull-down menu and traverses to the default entry in the menu or,
if the menu has no default, to the first traversable entry in the menu.
RequiredAllow all menu traversal actions, with the exception of menu posting, to
traverse to tear-off buttons in the same way as for other menu entries.
Traversal of tear-off buttons needs to be consistent with traversal of other
menu items.
RequiredIf your application uses F10, Menu, or Cancel to unpost an entire menu
system and an explicit focus policy is in use, move the location cursor back
to the component that had it before the menu system was posted.
RequiredAny scrollable components within your application should support the
appropriate navigation and scrolling operations. The page navigation keys Page
Up, Page Down, Control Page Up (for Page Left), and Control Page Down (for
Page Right) scroll the visible region by a page increment. The user needs to
be able to view and access the entire contents of a scrollable component.
RequiredWhen scrolling by a page, leave at least one unit of overlap between the
old and new pages.
RequiredAny keyboard operation that moves the cursor to or in the component, or
that inserts, deletes, or modifies items at the cursor location should scroll
the component so that the cursor is visible when the operation is complete.
The user needs to be able to see the results of moving the location cursor or
the effects of operating on the contents of the scrollable component.
RequiredIf a mouse-based scrolling action is in progress, pressing Cancel cancels
the scrolling action and returns the scrolling device to its state prior to
the start of the scrolling operation.
Essential Related Topics
For more information, see the Input Focus, Internal Navigation, and
Menu (Control) reference pages.
Supplemental Related Topics
For more information, see the Keyboard (Device) and Mouse (Device)
reference pages.
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]