Common Desktop Environment: Style Guide and Certification Checklist

Selection Models

 

n/a 

 

 

 

Required 

4-1: 

Your system supports five selection models: single selection, browse selection, multiple selection, range selection, and discontiguous selection.  

Each collection has one or more appropriate selection models. The model limits the kinds of choices the user can make in the collection. Some collections enforce a selection model, while others allow the user or application to change it. 

Mouse-Based Single Selection

 

n/a 

 

 

 

Required 

4-2: 

In a collection that uses single selection, when BSelect is clicked in a deselected element, the location cursor moves to that element, that element is selected, and any other selection in the collection is deselected.  

Single selection is the simplest selection model, used to select a single element. BSelect, the first mouse button, provides a consistent means of selecting an object within a group using the mouse. 

Mouse-Based Browse Selection

 

n/a 

 

 

 

Required 

4-3: 

In a collection that uses browse selection, when BSelect is released in a selectable element, that element is selected, and any other selection in the collection is deselected. As BSelect is dragged through selectable elements, each element under the pointer is selected, and the previously selected element is deselected. The selection remains on the element where BSelect is released, and the location cursor is moved there.  

Browse selection is used to select a single element. It also allows the user to browse through the collection by dragging BSelect. See "Mouse-Based Multiple Selection".

 

 

 

 

4-4: 

This item has been deleted. 

Mouse-Based Multiple Selection

 

n/a 

 

 

 

Required 

i: 

If your application contains collections that follow the multiple selection model, BAdjust is supported and behaves just like BSelect, when the BTransfer button is currently configured to behave as BAdjust. 

On a three-button mouse, button 2 is typically used for the BTransfer (or BSelect) function. However, in a Common Desktop Environment environment, the user may change an environment setting indicating that mouse button 2 should be used for the BAdjust function instead. BAdjust can be used to toggle the selection state of elements under the multiple selection model. 

Required 

j: 

In a collection that uses multiple selection, clicking BSelect or BAdjust on an unselected element adds that element to the current selection. Clicking BSelect or BAdjust on a selected element removes that element from the current selection. Clicking BSelect or BAdjust moves the location cursor to that element. 

Mouse-Based Range Selection

 

n/a 

 

 

 

 

 

 

 

4-5: 

This item has been replaced by items k and l.

Required 

k: 

In a collection that uses range selection, pressing BSelect on an unselected element sets an anchor on the element, or at the position where BSelect was pressed, and deselects all elements in the collection. If BSelect is released before the drag threshold has been exceeded, then the element under the pointer should be selected. If BSelect Motion exceeds the drag threshold, then a new selection should begin. The anchor and the current position of the pointer determine the current range. As BSelect is dragged through the collection, the current range is highlighted. When BSelect is released, the anchor does not move, and all the elements within the current range are selected. 

Range selection allows the user to select multiple contiguous elements of a collection by pressing and dragging BSelect. 

Required 

l: 

In a collection that uses range selection, pressing BSelect on an currently selected element should not cause all other elements in the selection set to be deselected. If BSelect is released before the drag threshold is exceeded, then, at that point, all other elements should be deselected and the element under the pointer should remain selected. If BSelect Motion exceeds the drag threshold, then no element should be deselected and a drag operation should begin.

Required 

4-6: 

In a text-like collection that uses range selection, the anchor point is the text pointer position when BSelect is pressed, and the current range consists of all elements between the anchor point and the current text pointer position. 

In text-like collections, elements are ordered linearly, and a text pointer is always considered to be between elements at a point near the actual pointer position. 

Required 

4-7: 

In a graphics-like or list-like collection that uses a marquee to indicate the range of a range selection, the current range consists of those elements that fall completely within the marquee. If there is an anchor element, the marquee is always made large enough to enclose it completely. Otherwise, an anchor point is used and is the point at which BSelect was pressed; the anchor point determines one corner of the marquee. If the collection is not arranged as a list or matrix, the marquee is extended to the pointer position. If the collection is arranged as a list or matrix, the marquee is either extended to completely enclose the element under the pointer or extended to the pointer position. Clicking BSelect on a selectable element makes it an anchor element, selects it, and deselects all other elements. 

A marquee, or highlighted rectangle, is often used to indicate the range of a selection in graphics-like and list-like collections. 

Required 

4-8: 

This item has been deleted. 

Required 

m: 

If your application contains collections that follow the range selection model, BAdjust is supported and behaves just like Shift+BSelect, when the BTransfer button is currently configured to behave as BAdjust. 

On a three-button mouse, button 2 is typically used for the BTransfer function. However, in a Common Desktop Environment environment, the user may change an environment setting indicating that mouse button 2 should be used for the BAdjust function instead. BAdjust can be used to extend the selection set in the same manner as Shift+BSelect. 

Required 

n: 

In a collection that uses range selection, when the user presses Shift+BSelect, or BAdjust, the anchor remains unchanged, and an extended range for the selection is determined, based on one of the extension models. 

Optional 

 

Reselect 

The extended range is determined by the anchor and the current pointer position, in exactly the same manner as when the selection was initially made. 

Optional 

 

Enlarge Only 

The selection can only be enlarged. The extended range is determined by the anchor and the current pointer position, but then is enlarged to include the current selection. 

Optional 

 

Balance Beam 

A balance point is defined at the midpoint of the current selection. When the user presses Shift+BSelect or BAdjust on the opposite side of the balance point from the anchor, this model works exactly like the reselect model. When the user presses Shift+BSelect, BAdjust, or starts a navigation action modified by Shift on the same side of the balance point as the anchor, this model moves the anchor to the opposite end of the selection and then works exactly like the reselect model. 

 

 

 

 

 

When the user releases BSelect or BAdjust, the anchor does not move, all the elements within the extended range are selected, and all the elements outside of it are deselected. 

Mouse-Based Discontiguous Selection

 

n/a 

 

 

 

Required 

4-9: 

In a collection that uses discontiguous selection, the behavior of BSelect is exactly the same as in the range selection model. After the user sets the anchor with BSelect, Shift+BSelect works exactly as in the range selection model. 

Discontiguous selection is an extension of range selection that allows the user to select multiple discontiguous ranges of elements. 

Required 

4-10: 

In a collection that uses discontiguous selection, when the current selection is not empty and the user clicks Control+BSelect, the anchor and location cursor move to that point. If the current selection is not empty and the user clicks Control+BSelect on an element, the selection state of that element is toggled, and that element becomes the anchor element. 

In discontiguous selection, Control+BSelect Click provides a convenient means of moving the anchor and toggling the selection state of the element under the pointer. 

Required 

4-11: 

In a collection that uses discontiguous selection, Control+BSelect Motion toggles the selection state of a range of elements. The range itself is determined exactly as for BSelect Motion. Releasing Control+BSelect toggles the selection state of the elements in the range according to one of two models: 

 

 

 

 

 

Anchor Toggle 

Toggling is based on an anchor element. If the range is anchored by a point, and is not empty, the anchor element is set to the element within the range that is nearest to the anchor point. Toggling sets the selection state of all elements in the range to the inverse of the initial state of the anchor element. 

 

 

 

 

 

Full Toggle 

The selection state of each element in the extended range is toggled. 

 

 

 

 

 

In discontiguous selection, Control+BSelect provides a convenient means of toggling the selection state of elements in a range. 

Required 

4-12: 

In a collection that uses discontiguous selection, after Control+BSelect toggles a selection, Shift+BSelect or Control+Shift+BSelect extends the range of toggled elements. The extended range is determined in exactly the same way as when Shift BSelect is used to extend a range selection. When the user releases Control+Shift+BSelect, the selection state of elements added to the range is determined by the toggle model in use (either Anchor Toggle or Full Toggle). If elements are removed from the range, they either revert to their state prior to the last use of Control+BSelect or change to the state opposite that of the elements remaining within the extended range.  

Shift+BSelect and Control+Shift+BSelect provide a convenient means of extending the range of toggled elements. 

Required 

o: 

In a collection that uses discontiguous selection, BAdjust can be used to extend the range of a discontiguous selection. The extended range is determined in exactly the same way as when BAdjust is used to extend a range selection. 

On a three-button mouse, mouse button 2 is typically used for the BTransfer function. However, in a Common Desktop Environment environment, the user may change an environment setting indicating that mouse button 2 should be used for the BAdjust function instead. BAdjust can be used to extend the selection set in the same manner as Shift+BSelect. 

Keyboard Selection

 

n/a 

 

 

 

Required 

4-13: 

The selection models support keyboard selection modes according to the following rules:  

  • Single selection supports only add mode.

  • Browse selection supports only normal mode.

  • Multiple selection supports only add mode.

  • Range selection supports normal mode. If it also supports add mode, normal mode is the default.

  • Discontiguous selection supports both normal mode and add mode. Normal mode is the default.

Selection must be available from the keyboard. In normal mode, used for making simple contiguous selections from the keyboard, the location cursor is never disjoint from the current selection. In add mode, used for making more complex and possibly disjoint selections, the location cursor can move independently of the current selection. 

Required 

4-14: 

If a collection supports both normal mode and add mode, Shift+F8 switches from one mode to the other. Mouse-based selection does not change when the keyboard selection mode changes. In editable components, add mode is a temporary mode that is exited when the user performs an operation on the selection or deselects the selection.  

Shift+F8 provides a convenient means of switching between normal mode and add mode. 

Keyboard-Based Single Selection

 

n/a 

 

 

 

Required 

4-15: 

In a collection that uses single selection, the navigation keys move the location cursor independently from the selected element. If the user presses the Select key or the Spacebar on an unselected element, the element with the location cursor is selected, and any other selection in the collection is deselected.  

Single selection supports only add mode. Pressing the Select key or the Spacebar is similar to clicking BSelect. 

Keyboard-Based Browse Selection

 

n/a 

 

 

 

Required 

4-16: 

In a collection that uses browse selection, the navigation keys move the location cursor and select the cursored element, deselecting any other element. If the application has deselected all elements or if the cursor is left disjoint from the selection, the Select key or the Spacebar selects the cursored element and deselects any other element. 

Browse selection supports only normal mode. A navigation operation is similar to dragging BSelect. 

Keyboard-Based Multiple Selection

 

n/a 

 

 

 

Required 

4-17: 

In a collection that uses multiple selection, the navigation keys move the location cursor independently from the current selection. The Select key or the Spacebar on an unselected element adds the element to the current selection. Pressing the Select key or the Spacebar on a selected element removes the element from the current selection. 

Multiple selection supports only add mode. Pressing the Select key or the Spacebar is similar to clicking BSelect. 

Keyboard-Based Range Selection

 

n/a 

 

 

 

Required 

4-18: 

In a collection that uses range selection and is in normal mode, the navigation keys move the location cursor and deselect the current selection. If the cursor is on an element, it is selected. The anchor moves with the location cursor. 

Text-like collections can use a different model in which the navigation keys leave the anchor at its current location, except that, if the current selection is not empty, it is deselected and the anchor is moved to the location of the cursor prior to navigation.  

Range selection supports normal mode, and, if the collection also supports add mode, normal mode is the default. 

Required 

4-19: 

In a collection that uses range selection, whether in normal mode or add mode, the Select key or Spacebar (except in a text component) moves the anchor to the cursor, deselects the current selection, and, if the cursor is on an element, selects the element. Unless the anchor is on a deselected item, Shift+Select or Shift+Spacebar (except in text) extends the selection from the anchor to the cursor, based on the extension model used by Shift+BSelect (Reselect, Enlarge Only, or Balance Beam.  

In range selection, pressing the Select key or Spacebar is similar to clicking BSelect, and pressing Shift+Select or Shift+Spacebar extends the range as with Shift+BSelect. 

Required 

4-20: 

In a collection that uses range selection and is in normal mode, using Shift in conjunction with the navigation keys extends the selection, based on the extension model used by Shift+BSelect. If the current selection is empty, the anchor is first moved to the cursor. The cursor is then moved according to the navigation keys, and the selection is extended based on the extension model used by Shift+BSelect.  

In range selection, shifted navigation extends the selection in a similar manner to dragging Shift+BSelect. 

Required 

4-21: 

In a collection that uses range selection and is in add mode, the navigation keys move the location cursor but leave the anchor unchanged. Shifted navigation moves the location cursor according to the navigation keys, and the selection is extended based on the extension model used by Shift+BSelect.  

Shifted navigation in add mode is similar to shifted navigation in normal mode, except that when the selection is empty the anchor does not move to the cursor prior to navigation. 

Keyboard-Based Discontiguous Selection

 

n/a 

 

 

 

Required 

4-22: 

In a collection that uses discontiguous selection and is in normal mode, all keyboard operations have the same effect as in the range selection model.  

Normal mode does not permit multiple discontiguous selections. 

Required 

4-23: 

In a collection that uses discontiguous selection and is in add mode, the Select key or Spacebar moves the anchor to the location cursor and initiates toggling. If the cursor is on an element, the selection state of that element is toggled, but the selection state of all other elements remains unchanged. Shift+Select or Shift+Spacebar and shifted navigation operations extend the selection between the anchor and the location cursor, based on the toggle mechanism used by Control+BSelect (Anchor Toggle or Full Toggle).  

Add mode permits use of the keyboard to make multiple discontiguous selections. 

Canceling a Selection

 

n/a 

 

 

 

Required 

4-24: 

Your application uses the Cancel key to cancel or undo any incomplete motion operation used for selection. Once the user presses the Cancel key to cancel a motion operation, the application ignores subsequent key and button releases until after all buttons and keys are released. Pressing the Cancel key while extending or toggling leaves the selection state of all elements as they were prior to the button press.  

The Cancel key allows the user to cancel an incomplete selection operation quickly and consistently. 

Autoscrolling and Selection

 

n/a 

 

 

 

Required 

4-25: 

If the user drags the pointer out of a scrollable collection during a motion-based selection operation, autoscrolling is used to scroll the collection in the direction of the pointer. If the user presses the Cancel key with BSelect pressed, the selection operation is canceled.  

Autoscrolling provides a convenient means of extending a selection to elements outside the viewport of a scrollable collection. 

Selecting and Deselecting All Elements

 

n/a 

 

 

 

Required 

4-26: 

In a collection that uses multiple, range, or discontiguous selection, Control+/ selects all the elements in the collection, places the anchor at the beginning of the collection, and leaves the location cursor at its previous position.  

Control+/ provides the user with a convenient means of selecting all of the objects in a collection. 

Required 

4-27: 

In a collection that is in add mode, Control+\ deselects all the elements in the collection. In a collection that is in normal mode, Control+\ deselects all the elements in the collection, except the element with the location cursor if the location cursor is being displayed. In either mode, Control+\ leaves the location cursor at its current position and moves the anchor to the location cursor.  

Control+\ allows the user to deselect all of the selected objects quickly and uniformly. 

Using Mnemonics for Elements

 

n/a 

 

 

 

Required 

4-28: 

If your application supports mnemonics associated with selectable elements, typing a mnemonic while the collection has the keyboard focus is equivalent to moving the location cursor to the element and pressing the Select key or Spacebar.  

Mnemonics within a collection of selectable elements provide an additional selection method.