[ Previous | Next | Contents | Glossary | Home | Search ]
Motif and CDE 2.1 Style Guide Reference

Scrolling

Reference

Description

Scrolling is a technique that allows the user to interact with data that is too large to be viewed or edited in the provided window.

When to Use

Recommended
When a control does not have a scrolling element associated with it, such as a scroll bar, do not allow it to be scrolled.

Optional
If the contents of a control indicates that additional elements exist beyond the bounds of the visible area (such as in text), allow the user to scroll the control through keyboard operations or autoscrolling even if the area does not have an associated scrolling element.

Guidelines

Required
Make the unit scrolling increments (for example, the smallest amount a scrolled area can be scrolled when using an associated scroll bar) equal to those shown in Table 23.

Table 23. Scrolling Increments
Type of Element Unit Scrolling Increment
Horizontal Vertical
Text Width of em (M) character Bottom of one line to bottom of next line
Icons or controls Width of smallest icon or control Height of smallest icon or control
Graphic Five percent of the width of the view, or by units of a scale specified by the user Five percent of the height of the view, or by units of a scale specified by the user

Recommended
Make the page scrolling increment (for example, the amount by which an area is scrolled using a paging operation) equal to the width or height of the scrolled area minus the unit scrolling increment.

Recommended
Define a medium scrolling increment that is larger than the unit scrolling increment and smaller than a paging increment.

Recommended
If a horizontally scrollable area does not support horizontal navigation internally, then:

  1. Allow < and > to scroll left and right one scrolling increment, respectively.

  2. Allow Ctrl < and Ctrl > to scroll left and right one medium scrolling increment, respectively.

  3. Allow Home (or Begin) and End to scroll to the left and right ends of the data.

Recommended
If a vertically scrollable area does not support vertical navigation internally, then:

  1. Allow ^ and V to scroll up and down one scrolling increment, respectively.

  2. Allow Ctrl ^ and Ctrl V to scroll up and down one medium scrolling increment, respectively.

  3. Allow Ctrl Home (or Ctrl Begin) and Ctrl End to scroll to the top and bottom ends of the data, respectively.

Required
When the user presses PageUp or PageDown and focus is on a scrollable area, scroll up or down by one page.

Required
When the user presses PageLeft (or Ctrl PageUp) or PageRight (or Ctrl PageDown) and focus is on a scrollable area, scroll left or right by one page.

Required
When the user is using the paging keys to scroll (and ScrollLock is not used), move the active cursor within the scrollable area so that it is visible, unless the cursor cannot be placed in the visible area after scrolling.

Required
Paging keys should apply to the most deeply nested appropriate scrollable area that contains the active cursor.

Required
If a scrolled control (for example, a text field) maintains a cursor location even when it does not have focus, then when keyboard navigation is used to move focus to that control, scroll it, if necessary, so that the cursor location is visible.

Required
When the user navigates to an element within a scrollable area, scroll the area so that the element is visible.

Required
When any keyboard operation moves the cursor within a scrolled control, or inserts, deletes, or modifies elements at the cursor position, scroll the control so that the cursor is visible when the operation is complete.

Required
Design navigation operations to traverse through an entire scrollable area, not just the visible portion of it.

If the user can change the size of a scrollable control or area, and the cursor is visible in that area, scroll it so that the cursor remains visible.

Required
When the user scrolls with a mouse, do not move the cursor in the underlying data; instead, allow it to be scrolled outside of the visible area.

Required
If the active cursor is within a scrolled area, but is not visible, indicate focus emphasis by placing an element cursor on the entire scrolled area.

Recommended
If focus is within a scrolled area and the user presses a navigation or paging key, augmented with ScrollLock, scroll the area as if the key were interpreted by a scroll bar (even if there is none). The active cursor should remain where it is, even if it is scrolled outside of the visible area.

Required
When the user presses Cancel (or Esc), cancel the mouse-based scrolling action and return the scrolling area to its position prior to the start of the scrolling operation.

Recommended
When the user scrolls with the mouse, continually update the information in the scrolled area as the mouse is moved.

Recommended
If it is not possible to continually update information as it is being scrolled, update the information in the scrolling area when the user pauses scrolling.

Recommended
When the user scrolls with the mouse, make the scrolling area appear to move smoothly by scrolling it in small increments.

Required
When a mouse-based selection operation is in progress within a control that supports scrolling and the user moves the pointer outside of the control, scroll towards the pointer. This is called "selection autoscrolling."

Recommended
When the user pauses (for a time that the user can set) during a drag-and-drop operation, at the edge of a scrolled area, scroll towards that edge. This is called "drag autoscrolling."

Recommended
When a drag-and-drop operation is initiated in a scrolled area and the elements being dragged are not valid outside that area, perform drag autoscrolling when the user moves the pointer outside of the area.

Essential Related Topics

For more information, see the Control Navigation and Scroll Bar (Control) reference pages.

Supplemental Related Topics

For more information, see the Control, Keyboard (Device), and Mouse (Device) reference pages.


[ Previous | Next | Contents | Glossary | Home | Search ]