There are many factors that affect how a user can perform a selection. For example, depending on what control the user is currently working in, a selection may be limited to just the selection of characters or to graphic objects. Users may also be limited in how they can select elements. For example, a user may be able to select only one item at a time or multiple items. How a user selects items is controlled by the selection model. A selection model describes how selection works in a selection scope. The following sections describe selection and the factors that affect selection.
A user performs selections within the confines of controls. The provision of many controls enables the support of selections. For example, although the apparent purpose of containers is to group items, the reason that these items are grouped is so that a user can select and act on them. Controls limit what elements may be selected and how they are to be selected. The following are examples of controls and their selection limits:
How a user performs a selection depends on the selection model. For example, some selection models support the selection of only one item at a time; others support the selection of multiple elements at one time.
A selection model consists of the following:
The following sections briefly describe these selection model components. Refer to the Selection Models reference page for a description of the selection models themselves.
Selection techniques are the multiple ways that the user can interpret how to make a selection. For example, in a list, the user selects a list element by clicking on it. In text, the user selects a character by pressing the SELECT button, moving the mouse to highlight the character, then releasing the SELECT button. A number of factors affect how a user selects items, including the selection scope and the layout of the items to be selected. For example, if a user needs to choose multiple items from a list where the items are not next to each other, then the user selects the items individually. However, if the list items are next to each other, the user can select the list items as a group.
There are many reasons for having different selection techniques. Some techniques result from different preferences and some techniques result from user needs.
Refer to "Mouse-Based Selection Techniques" and "Keyboard-Based Selection Techniques" for a detailed description of selection techniques for mouse and keyboard-based users, respectively.
See the Selection Techniques reference page for guidelines on selection modes.
Selection modes control how selection techniques work. For example, a user can select a list item by clicking the SELECT button on that item. However, what actually happens to that item depends on the selection mode in effect.
Select mode and toggle mode are the two selection modes available for the mouse user. When the user selects a list item and select mode is enabled, that item is selected and all other items are deselected. When toggle mode is enabled, the result of the selection depends on the current state of the item. If the selected item is already selected, it becomes deselected; otherwise it is selected. In other words, the state of the item is "toggled."
Select mode is for users who prefer to select items, perform actions on those items, then repeat the procedure with an entirely new selection. Toggle mode is for users who prefer to select items, perform actions on those items, then add or remove items from the selection to perform other actions.
Refer to "Mouse-Based Selection Modes" and "Keyboard-Based Selection Modes" for a detailed description of selection modes for mouse and keyboard-based users, respectively.
See the Selection Modes reference page for guidelines on selection modes.
Selection policies affect how a user can perform a selection, such as how a user can change a selection, whether an element's selection state can be toggled, and so on. For example, when a user selects a background color from a list of colors, it makes sense for the user to be able to choose only one color at a time. In some applications, it is even possible to have a no selection option.
Selection policies also control whether selections of groups of items should be contiguous or noncontiguous. Contiguous elements are any two elements that, when selected, also have all the elements between them selected. Noncontiguous elements are elements that, when selected, do not have the elements between them selected. Selecting contiguous elements is useful when the selection is for ordered sets of items, such as alphabetized lists. Selecting noncontiguous elements is useful when the selection is for nonordered sets of items, such as graphic data.
There are a number of selection policies that you should consider when choosing selection models. These policies fall under the general categories of policies that define the selection models, policies for modifying selections, and area and range policies.
Refer to Selection Policies
Whether or not a selection retains its selection state while a user performs other selections depends on whether the selection scope supports persistent selection or primary selection. In a selection scope that supports persistent selection, a selection is independent of any selection in any other selection scope. For example, a user can select text in a text control and a list item in a list control, and both selections are independent. In a selection scope that supports primary selection, existing selections in other selection scopes that support primary selection are deselected. In other words, only one selection is allowed.
You must provide primary selections for primary transfers. A primary transfer is one that allows a user to transfer a current selection from a source directly to a destination without using dragging or the clipboard as an intermediary. To achieve this, only one primary selection can exist at any given time so that when a user selects an item for primary transfer, then clicks the TRANSFER button, the contents of the primary selection are transferred to wherever the user clicks the TRANSFER button.
For more information on persistent and primary selection, see the Primary Transfer, and Selection reference pages.