 |
» |
|
|
 |
NAMENavigation (CDE) — Reference DescriptionNavigation is the movement of pointers and cursors within
the interface to indicate where actions should occur. GuidelinesMouse-Based Navigation- Required
When 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. - Required
When the pointer is on a menu, allow the user to
press the SELECT button to activate the menu in a spring-loaded
manner. - Required
When 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. - Required
If 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. - Required
Once a pop-up menu is displayed, make the MENU button
behave just as the SELECT button does for any menu system. - Required
Make the SELECT button available from within posted
pop-up menus. It should behave just as in any menu system. - Required
When 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. - Required
Remove 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. - Required
While 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. - Required
When 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. - Required
When 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. - Required
When 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. - Required
When 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. - Required
Once 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. - Required
If 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. - Required
Once 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. - Optional
Pressing or clicking the MENU button on a menu-bar
item displays the menu. - Required
Pressing or clicking the MENU button on an option
button displays the option menu. - Required
Pressing the SELECT button on a text field causes
the text cursor to be inserted at the mouse cursor position.
Keyboard-Based Navigation- Required
In 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. - Required
If 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. - Required
In 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. - Required
Pressing 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. - Required
Pressing 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.
- Required
Pressing 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. - Required
When 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.
- Required
Wrap field navigation between the first and last
fields in the window. - Required
When ↓
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
column from top to bottom, then traverses the column to its right,
and so on. In a right-to-left language environment, pressing ↓
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 ↓.
- Required
When →
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 →.
- Required
If 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. - Required
If 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. - Required
If a control uses ↓
and ↑ for internal navigation,
pressing Ctrl Begin
moves the location cursor to one of the following: 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
- Required
If a control uses ↓
and ↑ for internal navigation,
pressing Ctrl End
moves the location cursor to one of the following: 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
- Optional
Each 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. - Required
Pressing Tab
key moves input focus between push buttons within a group. - Required
The Ctrl, Shift,
and Alt keys should modify only
the function of other keys or key combinations. - Optional
Pressing Alt
only to provides access to mnemonics.
Menu Traversal- Required
If 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. - Required
Pressing 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. - Required
When 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. - Required
When 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. - Required
Pressing ↓,
↑, ←,
and → traverses through
the items in a menu system. - Required
When 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. - Required
If 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. - Required
When 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 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 ↓
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.
- Required
When 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 ↓.
- Required
When 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.
- Required
When 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 ↓
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.
- Required
Allow 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. - Required
If 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.
Scrollable Component Navigation- Required
Any 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. - Required
When scrolling by a page, leave at least one unit
of overlap between the old and new pages. - Required
Any 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. - Required
If 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 TopicsFor more information, see the Input
Focus, Internal Navigation,
and Menu (Control) reference
pages. Supplemental Related TopicsFor more information, see the Keyboard (Device)
and Mouse (Device) reference
pages.
|