[Contents] [Index] [Next] [Previous]

Navigation


Mouse-Based Navigation

3-1
When the keyboard focus policy is explicit, pressing BSelect on a component moves focus to it, except for components, such as ScrollBars, that are used to adjust the size and location of other elements (Mouse-Based Navigation).

BSelect provides a convenient mechanism for using the mouse to move focus when the keyboard focus policy is explicit.

3-2
When the pointer is on a Menu, your application uses BSelect Press to activate the Menu in a spring-loaded manner (Mouse-Based Navigation).

A spring-loaded Menu is one that appears when the user presses a mouse button, remains on the screen for as long as the button is pressed, and disappears when the user releases the button. BSelect, the first mouse button, provides a means of activating spring-loaded Menus that is consistent across applications.

3-3
When the pointer is in an element with an inactive Popup Menu and the context of the element allows the Popup Menu to be displayed, your application uses BMenu Press to activate the Popup Menu in a spring-loaded manner (Mouse-Based Navigation).

The availability of a Popup Menu can depend on the location of the pointer within an element, the contents of an element, or the selection state of an element. BMenu, the third mouse button, provides a consistent means of activating a spring-loaded Popup Menu.

3-4
If the user takes an action to post a Popup Menu, and a Menu can be posted for both an inner element and an outer element that contains the inner element, the Popup Menu for the internal element is posted (Mouse-Based Navigation).

This specification ensures that the Popup Menu for an internal element is always accessible.

3-5
Once a Popup Menu is posted, BMenu behaves just as BSelect does for any Menu system (Mouse-Based Navigation).

The specified operation of BMenu is for manipulating Popup Menus.

3-6
BSelect is also available from within posted Popup Menus and behaves just as in any Menu system (Mouse-Based Navigation).

Once a Popup Menu is posted, the user can select an element from it using the standard selection mechanism, BSelect.

3-7
When a Menu is popped up or pulled down in a posted manner, your application places the location cursor on the Menu's default entry, or on the first entry in the Menu if there is no default entry (Mouse-Based Navigation).

A posted Menu remains visible until it is explicitly unposted. Placing the location cursor on the default entry allows the user to select the default operation easily. When there is no default entry, placing the location cursor on the first entry yields uniform behavior across applications.

3-8
Your application removes a spring-loaded Menu system when the mouse button that activated it is released, except when the button is released on a CascadeButton in the Menu hierarchy (Mouse-Based Navigation).

The concept of a spring-loaded Menu system requires that the Menu disappear when the mouse button is released.

3-9
While a spring-loaded Menu system is popped up or pulled down, moving the pointer within the Menu system moves the location cursor to track the pointer (Mouse-Based Navigation).

Once a spring-loaded Menu system has appeared on the screen, the user needs to be able to maneuver the location cursor through the Menu system using the mouse.

3-10
When a spring-loaded Menu system is popped up or pulled down and the pointer rests on a CascadeButton, the associated Menu is pulled down and becomes traversable. The associated Menu is removed, possibly after a short delay, when the pointer moves to a Menu item outside of the Menu or its CascadeButton (Mouse-Based Navigation).

The user needs to be able to use the mouse to access all of the associated Menus of a Menu system. This feature allows the user to move quickly to any Menu in a Menu system.

3-11
When a spring-loaded Menu system that is part of the MenuBar is pulled down, moving the pointer to any other element on the MenuBar unposts the current Menu system and posts the Pulldown Menu associated with the new element (Mouse-Based Navigation).

This feature of a spring-loaded Menu system allows the user to browse quickly through all of the Menus attached to a MenuBar.

3-12
When a spring-loaded Menu system is popped up or pulled down, and the button that activated the Menu system is released within a component in the Menu system, that component is activated. If the release is on a CascadeButton or an OptionButton, the associated Menu is activated in a posted manner if it was not posted prior to the associated button press (Mouse-Based Navigation).

Releasing the mouse button that activated a spring-loaded Menu provides a means of activating a Menu element that is consistent across applications.

3-13
When the pointer is in an area with a Popup Menu, your application uses BMenu Click to activate the Menu in a posted manner if it was not posted prior to the BMenu Click (Mouse-Based Navigation).

BMenu Click provides a means of posting a Popup Menu that is consistent across applications.

3-14
Once a Pulldown or Option Menu is posted, BSelect Press in the Menu system causes the Menu to behave as a spring-loaded Menu (Mouse-Based Navigation).

This feature of a posted Pulldown or Option Menu allows the user to switch easily between using a posted Menu and a spring-loaded Menu.

3-15
If a button press unposts a Menu and that button press is not also passed to the underlying component, subsequent events up to and including the button release are not passed to the underlying component (Mouse-Based Navigation).

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.

3-16
Once a Popup Menu is posted, BSelect Press or BMenu Press in the Menu system causes the Menu to behave as a spring-loaded Menu (Mouse-Based Navigation).

This feature of a posted Popup Menu allows the user to switch easily between using a posted Menu and a spring-loaded Menu.

Keyboard-Based Navigation

3-17
In a Text component, the text cursor is shown differently when the component does and does not have the keyboard focus (Location Cursor).

In a Text component, the text cursor serves as the location cursor and therefore must indicate whether or not the component has keyboard focus.

3-18
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 reappears at the same position it had when the component lost focus (Location Cursor).

To ensure predictability, it is important that the text cursor not change position when a Text component loses and then regains the keyboard focus.

3-19
If a small component, such as a Sash, indicates that it has the keyboard focus by filling, no other meaning is associated with the filled state (Location Cursor).

This rule reduces possible confusion about the significance of filling in a small component.

3-20
All components are designed and positioned within your application so that adding and removing each component's location cursor do not change the amount of space that the component takes up on the screen (Location Cursor).

For visual consistency, the sizes and positions of components should not change when keyboard focus moves from one component to another.

3-21
moves the location cursor to the next field, and moves the location cursor to the previous field. Unless and are used for internal navigation within a field, also moves the location cursor to the next field, and also moves the location cursor to the previous field (Component Navigation).

These keys provide a consistent means of navigating among fields in a window.

3-22
(if not used for internal navigation) and move the location cursor forward through fields in a window according to the following rules (Component Navigation):

These rules ensure the consistent operation of (if not used for internal navigation) and across applications.

3-23
(if not used for internal navigation) and move the location cursor backward through fields in the order opposite to that of (if not used for internal navigation) and (Component Navigation).

These rules result in the uniform operation of (if not used for internal navigation) and across applications.

3-24
When a window acquires focus, the location cursor is placed on the control that last had focus in the window, providing that all the following conditions are met (Component Navigation):

This rule ensures that when the user returns to a window after navigating away, the focus returns to the component where the user left it.

3-25
Field navigation wraps between the first and last fields in the window. (Component Navigation).

This feature of field navigation provides the user with a convenient way to move through all of the fields in a window.

3-26
When and are used for component navigation within a field, they behave according to the following rules (Component Navigation):

These rules ensure a consistent means of navigating among components using the directional keys.

3-27
When and are used for component navigation within a field, they behave according to the following rules (Component Navigation):

These rules ensure a consistent means of navigating among components using the directional keys.

3-28
If a control uses and for internal navigation, 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, moves the location cursor to the rightmost edge of the data or the rightmost element (Component Navigation).

This rule permits convenient navigation to the left or right edge of the data or the left or right element in a control.

3-29
If a control uses and for internal navigation, 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, moves the location cursor to the leftmost edge of the data or the leftmost element (Component Navigation).

This rule permits convenient navigation to the left or right edge of the data or the left or right element in a control.

3-30
If a control uses and for internal navigation, moves the location cursor to one of the following (Component Navigation):

This rule permits convenient navigation to the beginning of the data in a control.

3-31
If a control uses and for internal navigation, moves the location cursor to one of the following (Component Navigation):

This rule permits convenient navigation to the end of the data in a control.

Menu Traversal

3-32
If the user traverses to a Menu while the keyboard focus policy is implicit, the focus policy temporarily changes to explicit and reverts to implicit whenever the user traverses out of the Menu system (Menu Traversal).

Menus must always be traversable, even when the keyboard focus policy is generally implicit.

3-33
Your application uses to activate the MenuBar system if it is inactive. The location cursor is placed on the first traversable CascadeButton in the MenuBar. If there are no traversable CascadeButtons, the key does nothing (Menu Traversal).

provides a consistent means of traversing to the MenuBar using the keyboard.

3-34
When the keyboard focus is in an element with an inactive Popup Menu and the context of the element allows the Popup Menu to be displayed, your application uses to activate the Popup Menu. The location cursor is placed on the default item of the Menu, or on the first traversable item in the Popup Menu if there is no default item (Menu Traversal).

provides a uniform way of activating a Popup Menu from the keyboard.

3-35
When the keyboard focus is in an OptionButton, your application uses [Select] or to post the Option Menu. The location cursor is placed on the previously selected item in the Option Menu; or, if the Option Menu has been pulled down for the first time, the location cursor is placed on the default item in the Menu. If there is an active Option Menu, [Enter], , [Select], or selects the current item in the Option Menu, unposts the Menu system, and returns the location cursor to the OptionButton (Menu Traversal).

These keys provide a means of posting an Option Menu from the keyboard that is consistent across applications.

3-36
Your application uses , , , and to traverse through the items in a Menu system (Menu Traversal).

The , , , and directional keys provide a consistent means of navigating among items in a Menu system.

3-37
When a Menu traversal action traverses to the next or previous component in a Menu or MenuBar, the order of traversal and the wrapping behavior are the same as that of the corresponding component navigation action within a field, as described in Component Navigation (Menu Traversal).

This specification provides consistency between Menu traversal and component navigation within a field.

3-38
If your application uses any 2-dimensional Menus, they do not contain any CascadeButtons (Menu Traversal).

CascadeButtons in a 2-dimensional Menu would restrict the user's ability to navigate to all of the elements of the Menu using the keyboard.

3-39
When focus is on a component in a Menu or MenuBar system, behaves in the following way (Menu Traversal):

This rule results in consistent operation of the directional keys in a Menu or MenuBar system.

3-40
When focus is on a component in a Menu or MenuBar system, behaves in the following way (Menu Traversal):

If the component is in a vertical or 2-dimensional Menu, this action traverses up to the previous traversable component, wrapping within the Menu if necessary, and proceeding in the order opposite to that of .

This rule results in consistent operation of the directional keys in a Menu or MenuBar system.

3-41
When focus is on a component in a Menu or MenuBar system, behaves in the following way (Menu Traversal):

This rule results in consistent operation of the directional keys in a Menu or MenuBar system.

3-42
When focus is on a component in a Menu or MenuBar system, behaves in the following way (Menu Traversal):

This rule results in consistent operation of the directional keys in a Menu or MenuBar system.

3-43
All Menu traversal actions, with the exception of Menu posting, traverse to TearOffButtons in the same way as for other Menu entries (Menu Traversal).

Traversal of TearOffButtons needs to be consistent with traversal of other Menu items.

3-44
If your application uses , , or to unpost an entire Menu system and an explicit focus policy is in use, the location cursor is moved back to the component that had it before the Menu system was posted (Menu Traversal).

Returning the location cursor to the component that had it previously allows the user to resume a task without disruption.

Scrollable Component Navigation

3-45
Any scrollable components within your application support the appropriate navigation and scrolling operations. Your application uses the page navigation keys , , [PageLeft] or , and [PageRight] or for scrolling the visible region by a page increment (Scrollable Component Navigation).

A user needs to be able to view and access the entire contents of a scrollable component.

3-46
When scrolling by a page, your application leaves at least one unit of overlap between the old and new pages (Scrollable Component Navigation).

The overlap between one page and the next yields visual continuity for the user.

3-47
Any keyboard operation that moves the cursor to or in the component, or that inserts, deletes, or modifies items at the cursor location scrolls the component so that the cursor is visible when the operation is complete (Scrollable Component Navigation).

The user needs to be able to see the results of moving the location cursor or operating on the contents of the scrollable component.

3-48
If a mouse-based scrolling action is in progress, cancels the scrolling action and returns the scrolling device to its state prior to the start of the scrolling operation (Scrollable Component Navigation).

provides a convenient way for the user to cancel a scrolling operation.