The OSF/Motif Level One Certification Checklist (Revision 1.2) provides the list of requirements for OSF/Motif application-level certification. In order for your application to be certified compliant, it must behave according to these requirements. You certify your own application by comparing its behavior with that specified in the Checklist. For each Checklist item, check Yes only if your application performs exactly as described for that item. If you have not implemented a specified type of behavior in any manner anywhere in your application, you may mark N/A (not applicable) for the items pertaining to that behavior.
The Checklist describes keys using a model keyboard mechanism. Wherever keyboard input is specified, the keys are indicated by the engravings that they have on the OSF/Motif model keyboard. Mouse buttons are described using a virtual button mechanism to better describe behavior independent from the number of buttons on the mouse. For more information on the model keyboard and virtual button mechanisms, consult the , "Preface" and Section 2.2.1, "Pointing Devices" of this guide.
By default, this Checklist assumes that your application is being designed for a left-to-right language environment in an English-language locale. Some sections of the Checklist may require appropriate changes for other locales.
As you compare the behavior of your application to the requirements in the Checklist, we recommend that you follow along in the OSF/Motif Style Guide (Revision 1.2). For each Checklist item, corresponding section numbers in the guide have been provided for your convenience. Each item in the Checklist is also followed by a brief explanation and/or justification. If you do not understand a particular item, refer to the appropriate section in the guide and check the glossary in the guide for any terms that are unclear.
Yes N/A No |
| |
___ ___ ___ 1-1: |
The model keyboard does not correspond directly to any existing keyboard; rather, it assumes a keyboard with an ideal set of keys. However, to ensure consistency across applications, the nonoptional keys or substitutes for them must always be available. |
Yes N/A No |
| |
___ ___ ___ 2-1: |
The keyboard focus determines which component on the screen receives keyboard events. This rule prevents confusion about which window and component have the focus. | |
___ ___ ___ 2-2: |
An explicit focus policy requires the user to explicitly select which window or component receives the keyboard focus. Generally, the user gives the focus to a window or component by pressing BSelect over it. However, this policy must not allow the user to give focus to a component that is not traversable or does not accept input. | |
___ ___ ___ 2-3: |
The user needs to know the location of the keyboard focus to be able to control an application. |
Yes N/A No |
| |
___ ___ ___ 2-4: |
Some users may not have access to a pointing device. These users need to be able to access the full functionality of the application from the keyboard. Additionally, advanced users will be able to use the keyboard to perform some tasks more quickly than with a pointing device. | |
___ ___ ___ 2-5: |
These bindings ensure a consistent interface for using standard mouse-based operations across applications. | |
___ ___ ___ 2-6: |
The pointer position is intended only as input to applications, not as an output mechanism. An application warps the pointer when it changes the pointer's position. This practice is confusing to users and reduces their sense of control over an application. Warping the pointer can also cause problems for users of absolute location pointing devices. |
Yes N/A No |
| |
___ ___ ___ 3-1: |
BSelect provides a convenient mechanism for using the mouse to move focus when the keyboard focus policy is explicit. | |
___ ___ ___ 3-2: |
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: |
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: |
This specification ensures that the Popup Menu for an internal element is always accessible. | |
___ ___ ___ 3-5: |
The specified operation of BMenu is for manipulating Popup Menus. | |
___ ___ ___ 3-6: |
Once a Popup Menu is posted, the user can select an element from it using the standard selection mechanism, BSelect. | |
___ ___ ___ 3-7: |
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: |
The concept of a spring-loaded Menu system requires that the Menu disappear when the mouse button is released. | |
___ ___ ___ 3-9: |
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: |
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: |
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: |
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: |
BMenu Click provides a means of posting a Popup Menu that is consistent across applications. | |
___ ___ ___ 3-14: |
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: |
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: |
This feature of a posted Popup Menu allows the user to switch easily between using a posted Menu and a spring-loaded Menu. |
Yes N/A No |
| |
___ ___ ___ 3-17: |
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: |
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: |
This rule reduces possible confusion about the significance of filling in a small component. | |
___ ___ ___ 3-20: |
For visual consistency, the sizes and positions of components should not change when keyboard focus moves from one component to another. | |
___ ___ ___ 3-21: |
These keys provide a consistent means of navigating among fields in a window. | |
___ ___ ___ 3-22: |
These rules ensure the consistent operation of <Tab> (if not used for internal navigation) and <Ctrl> <Tab> across applications. | |
___ ___ ___ 3-23: |
These rules result in the uniform operation of <Shift> <Tab> (if not used for internal navigation) and <Ctrl> <Shift> <Tab> across applications. | |
___ ___ ___ 3-24: |
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: |
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 <Down arrow> and <Up arrow> are used for component navigation within a field, they behave according to the following rules (Section 3.2.3, "Component Navigation" ):
These rules ensure a consistent means of navigating among components using the directional keys. | |
___ ___ ___ 3-27: |
These rules ensure a consistent means of navigating among components using the directional keys. | |
___ ___ ___ 3-28: |
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: |
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: |
This rule permits convenient navigation to the beginning of the data in a control. | |
___ ___ ___ 3-31: |
This rule permits convenient navigation to the end of the data in a control. |
Yes N/A No |
| |
___ ___ ___ 3-32: |
Menus must always be traversable, even when the keyboard focus policy is generally implicit. | |
___ ___ ___ 3-33: |
<F10> provides a consistent means of traversing to the MenuBar using the keyboard. | |
___ ___ ___ 3-34: |
<Menu> provides a uniform way of activating a Popup Menu from the keyboard. | |
___ ___ ___ 3-35: |
These keys provide a means of posting an Option Menu from the keyboard that is consistent across applications. | |
___ ___ ___ 3-36: |
The <Down arrow>,<Left arrow>,<Right arrow>,and <Up arrow> directional keys provide a consistent means of navigating among items in a Menu system. | |
___ ___ ___ 3-37: |
This specification provides consistency between Menu traversal and component navigation within a field. | |
___ ___ ___ 3-38: |
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: |
This rule results in consistent operation of the directional keys in a Menu or MenuBar system. | |
___ ___ ___ 3-40: |
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 <Down arrow>. This rule results in consistent operation of the directional keys in a Menu or MenuBar system. | |
___ ___ ___ 3-41: |
This rule results in consistent operation of the directional keys in a Menu or MenuBar system. | |
___ ___ ___ 3-42: |
This rule results in consistent operation of the directional keys in a Menu or MenuBar system. | |
___ ___ ___ 3-43: |
Traversal of TearOffButtons needs to be consistent with traversal of other Menu items. | |
___ ___ ___ 3-44: |
Returning the location cursor to the component that had it previously allows the user to resume a task without disruption. |
Yes N/A No |
| |
___ ___ ___ 3-45: |
A user needs to be able to view and access the entire contents of a scrollable component. | |
___ ___ ___ 3-46: |
The overlap between one page and the next yields visual continuity for the user. | |
___ ___ ___ 3-47: |
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: |
<Cancel> provides a convenient way for the user to cancel a scrolling operation. |
Yes N/A No |
| |
___ ___ ___ 4-1: |
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. |
Yes N/A No |
| |
___ ___ ___ 4-2: |
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. |
Yes N/A No |
| |
___ ___ ___ 4-3: |
Browse selection is used to select a single element. It also allows the user to browse through the collection by dragging BSelect. |
Yes N/A No |
| |
___ ___ ___ 4-4: |
Multiple selection allows the user to select or deselect multiple elements of a collection, one at a time, by using BSelect Click. |
Yes N/A No |
| |
___ ___ ___ 4-5: |
Range selection allows the user to select multiple contiguous elements of a collection by pressing and dragging BSelect. | |
___ ___ ___ 4-6: |
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. | |
___ ___ ___ 4-7: |
A marquee, or highlighted rectangle, is often used to indicate the range of a selection in graphics-like and list-like collections. | |
___ ___ ___ 4-8: |
|
Reselect |
| |
Enlarge Only |
| |
Balance Beam |
<Shift> BSelect provides a convenient means of extending the range of a selection. |
Yes N/A No |
| |
___ ___ ___ 4-9: |
Discontiguous selection is an extension of range selection that allows the user to select multiple discontiguous ranges of elements. | |
___ ___ ___ 4-10: |
In discontiguous selection, <Ctrl> BSelect Click provides a convenient means of moving the anchor and toggling the selection state of the element under the pointer. | |
___ ___ ___ 4-11: |
|
Anchor Toggle | | |
Full Toggle |
In discontiguous selection, <Ctrl> BSelect provides a convenient means of toggling the selection state of elements in a range. |
___ ___ ___ 4-12: |
<Shift> BSelect and <Ctrl> <Shift> BSelect provide a convenient means of extending the range of toggled elements. |
Yes N/A No |
| |
___ ___ ___ 4-13: |
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 independent of the current selection. | |
___ ___ ___ 4-14: |
<Shift> <F8> provides a convenient means of switching between normal mode and add mode. |
Keyboard-Based Single Selection
Yes N/A No |
| |
___ ___ ___ 4-15: |
Single selection supports only add mode. Pressing <Select> or <Space> is similar to clicking BSelect. |
Keyboard-Based Browse Selection
Yes N/A No |
| |
___ ___ ___ 4-16: |
Browse selection supports only normal mode. A navigation operation is similar to dragging BSelect. |
Keyboard-Based Multiple Selection
Yes N/A No |
| |
___ ___ ___ 4-17: |
Multiple selection supports only add mode. Pressing <Select> or <Space> is similar to clicking BSelect. |
Keyboard-Based Range Selection
Yes N/A No |
| |
___ ___ ___ 4-18: |
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 ("Keyboard-Based Range Selection" in Chapter 4 ). Range selection supports normal mode, and, if the collection also supports add mode, normal mode is the default. | |
___ ___ ___ 4-19: |
In range selection, pressing <Select> or <Space> is similar to clicking BSelect, and pressing <Shift> <Select> or <Shift> <Space> extends the range as with <Shift> BSelect. | |
___ ___ ___ 4-20: |
In range selection, shifted navigation extends the selection in a similar manner to dragging <Shift> BSelect. | |
___ ___ ___ 4-21: |
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
Yes N/A No |
| |
___ ___ ___ 4-22: |
Normal mode does not permit multiple discontiguous selections. | |
___ ___ ___ 4-23: |
Add mode permits use of the keyboard to make multiple discontiguous selections. |
Yes N/A No |
| |
___ ___ ___ 4-24: |
<Cancel> allows the user to cancel an incomplete selection operation quickly and consistently. |
Yes N/A No |
| |
___ ___ ___ 4-25: |
Autoscrolling provides a convenient means of extending a selection to elements outside the viewport of a scrollable collection. |
Yes N/A No |
| |
___ ___ ___ 4-26: |
<Ctrl> </> provides the user with a convenient means of selecting all of the objects in a collection. | |
___ ___ ___ 4-27: |
<Ctrl> <\> allows the user to deselect all of the selected objects quickly and uniformly. |
Yes N/A No |
| |
___ ___ ___ 4-28: |
Mnemonics within a collection of selectable elements provide an additional selection method. |
Yes N/A No |
| |
___ ___ ___ 4-29: |
The destination component is used to identify the component on which certain operations, primarily data transfer operations, act. There is only one destination component at a time. | |
___ ___ ___ 4-30: |
A selection operation acts on the component that has focus, if that component supports selections. | |
___ ___ ___ 4-31: |
An operation that does not act on a selection acts on the component that has focus, if that component supports the operation. | |
___ ___ ___ 4-32: |
Pending delete controls the conditions under which the selection is deleted. It is enabled by default. | |
___ ___ ___ 4-33: |
In add mode, a transfer operation that is disjoint from the selection does not affect the selection. | |
___ ___ ___ 4-34: |
<Delete> provides a consistent means of deleting the selection. | |
___ ___ ___ 4-35: |
In text, <Delete> and <BackSpace> provide a convenient way to delete the entire selection or single characters. |
Yes N/A No |
| |
___ ___ ___ 4-36: |
Three transfer operations are generally available: copy, move, and link. The user requests one of these operations by pressing the buttons or keys appropriate for the type of transfer. In general, for mouse-based operations, the modifier <Ctrl> forces a copy, <Shift> forces a move, and <Ctrl> <Shift> forces a link. However, any requested transfer operation must fail if that operation is not available. | |
___ ___ ___ 4-37: |
The insertion position is the position in the destination where transferred data is placed. Some mouse-based transfer operations place data at the pointer position if possible. Other operations, including keyboard-based transfer, generally place the data at the location cursor. |
Yes N/A No |
| |
___ ___ ___ 4-38: |
Clipboard selection actions need to be available from the keyboard. | |
___ ___ ___ 4-39: |
<Cut> or <Shift> <Delete> and the Cut entry on the Edit Menu offer a consistent means of cutting the selection to the clipboard from the keyboard. | |
___ ___ ___ 4-40: |
<Copy> or <Ctrl> <Insert> and the Copy entry on the Edit Menu offer a consistent means of copying the selection to the clipboard from the keyboard. | |
___ ___ ___ 4-41: |
<Paste> or <Shift> <Insert> offers a consistent way of pasting the contents of the clipboard from the keyboard. | |
___ ___ ___ 4-42: |
Popping up a Popup Menu over a selection indicates that a Paste or Paste Link operation should replace the selection. | |
___ ___ ___ 4-43: |
Pending delete determines whether the selection is deleted when the insertion position is not disjoint from the selection and Paste or Paste Link is invoked from the Edit Menu or by a keyboard operation. |
Yes N/A No |
| |
___ ___ ___ 4-44: |
These operations provide a convenient way for the user to force a copy operation. | |
___ ___ ___ 4-45: |
These operations provide a convenient way for the user to force a move operation. | |
___ ___ ___ 4-46: |
<Ctrl> <Shift> BTransfer provides a convenient way for the user to force a link operation. | |
___ ___ ___ 4-47: |
This rule provides the expected treatment of the selection in move, copy, and link operation. |
Yes N/A No |
| |
___ ___ ___ 4-48: |
Quick transfer is used to make a temporary selection and then immediately move, copy, or link that selection to the insertion position of the destination component. In Text quick transfer provides a convenient way to move, copy, or link text without disturbing the primary selection. | |
___ ___ ___ 4-49: | If a component supports quick transfer, <Alt> BTransfer Motion or <Alt> <Ctrl> BTransfer Motion temporarily selects elements in the specified range and, on release, copies them to the insertion position of the destination component (Section 4.3.3, "Quick Transfer" ). These operations provide a convenient way to perform a quick copy. | |
___ ___ ___ 4-50: |
This operation provides a convenient way to perform a quick cut. | |
___ ___ ___ 4-51: |
This operation provides a convenient way to perform a quick link. | |
___ ___ ___ 4-52: |
Quick transfer is a secondary selection mechanism, so it cannot disrupt the primary selection. When the destination of the transfer is in the primary selection, quick transfer replaces the primary selection with the secondary selection. | |
___ ___ ___ 4-53: |
This rule provides consistency between primary selection and quick transfer operations. | |
___ ___ ___ 4-54: |
Autoscrolling provides a convenient means of extending a temporary selection to elements outside the viewport of a scrollable collection. |
Yes N/A No |
| |
___ ___ ___ 4-55: |
This mechanism offers a convenient way for the user to force a move operation. | |
___ ___ ___ 4-56: |
This mechanism offers a convenient way for the user to force a copy operation. | |
___ ___ ___ 4-57: |
This mechanism offers a convenient way for the user to force a link operation. | |
___ ___ ___ 4-58: |
This mechanism offers a convenient way to move the selection within a component. | |
___ ___ ___ 4-59: |
To be consistent, drag and drop actions need to operate on the entire selection. | |
___ ___ ___ 4-60: |
To be consistent, drag and drop actions need to operate on the entire selection. | |
___ ___ ___ 4-61: |
Unselected elements can be dragged without affecting the selection. | |
___ ___ ___ 4-62: |
This guideline ensures the consistency of drag operations. | |
___ ___ ___ 4-63: |
A drag icon provides visual feedback that a drag operation is in progress. | |
___ ___ ___ 4-64: |
A source indicator gives a visual representation of the elements being dragged. | |
___ ___ ___ 4-65: |
<Cancel> provides a consistent way for the user to cancel a drag operation. | |
___ ___ ___ 4-66: |
Releasing BTransfer offers a consistent means of ending a drag operation. | |
___ ___ ___ 4-67: |
This rule provides consistency in the treatment of mouse-based transfer operations. | |
___ ___ ___ 4-68: |
A transfer icon can be used to represent the type of data being transferred during a drop operation. A successful drop operation results in the transfer of data. | |
___ ___ ___ 4-69: |
A failed drop operation does not result in the transfer of data. |
Yes N/A No |
| |
___ ___ ___ 5-1: | Your application uses BSelect to activate a button (Section 5.1, "Basic Activation" ). BSelect, the first mouse button, provides a consistent means of activating a button using the mouse. | |
___ ___ ___ 5-2: | When a button has the focus, your application uses <Select> or <Space> to activate the button (Section 5.1, "Basic Activation" ). <Select> and <Space> provide a uniform way of selecting a button. Selecting a button is equivalent to activating the button. | |
___ ___ ___ 5-3: | When an activatable Menu entry has the focus, your application uses <Select>,<Space>,<Enter>,or <Return> to activate the entry (Section 5.1, "Basic Activation" ). <Select>,<Space>,<Enter>, and <Return> offer a consistent means of activating a Menu entry using the keyboard. | |
___ ___ ___ 5-4: | When BSelect is pressed over a button, the appearance of the button changes to indicate that releasing BSelect will activate the button. If while BSelect is pressed the pointer is moved outside of the button, the visual state is restored. If while BSelect is still pressed the pointer is moved back inside of the button, the visual state is again changed to indicate the pending activation. If BSelect is pressed and released within a button, the button is activated, regardless of whether the pointer has moved out of the button while it was pressed (Section 5.1, "Basic Activation" ). The visual state of a button offers a cue to the user about whether or not the button will be activated when the mouse button is released. | |
___ ___ ___ 5-5: | If a selectable element of a collection is activatable, BSelect Click, <Select>,and <Space> (except in Text) select it. BSelect Click 2 selects and activates it (Section 5.1, "Basic Activation" ). This rule provides for consistent integration of activation and selection in a collection where elements can be both selected and activated. |
Yes N/A No |
| |
___ ___ ___ 5-6: | If your application uses accelerators, the component with the accelerator displays the accelerator key or key combination following the Label of the component (Section 5.2, "Accelerators" ). An accelerator is a key or key combination that invokes the action of some component regardless of the position of the location cursor when the accelerator is pressed. So that the user knows that there is an accelerator associated with a component, the accelerator needs to be displayed. | |
___ ___ ___ 5-7: | If a button with an accelerator is within a primary or secondary window, or within a Pulldown Menu system from its MenuBar, it is activatable whenever the input focus is in the window or the MenuBar system. If a button with an accelerator is within a Popup Menu system, it is activatable whenever the focus is in the Popup Menu system or the component with the Popup Menu (Section 5.2, "Accelerators" ). An accelerator must be activatable from the window or component associated with the accelerator. |
Yes N/A No |
| |
___ ___ ___ 5-8: | If your application uses mnemonics, the Label for the component with the mnemonic contains the character that is its mnemonic. If the Label does not naturally contain the character, the mnemonic is placed in parentheses following the Label (Section 5.3, "Mnemonics" ). A mnemonic is a single character that can be associated with any component that contains a text Label. Mnemonics provide a fast way of selecting a component from the keyboard. So that the user knows that there is a mnemonic associated with a selection, the mnemonic is underlined in the Label of the selection by the toolkit. In order for a mnemonic to be underlined, the Label for a selection needs to contain the mnemonic character. Putting the mnemonic in parentheses following the Label provides visual consistency. | |
___ ___ ___ 5-9: | All mnemonics are case insensitive for activation (Section 5.3, "Mnemonics" ). The user must be able to activate a mnemonic by pressing either the lowercase or the uppercase variant of the mnemonic key. | |
___ ___ ___ 5-10: |
A mnemonic is generally activatable when the location cursor is within the component that contains the mnemonic. Pressing <Alt> and the mnemonic provides a way to activate a visible mnemonic when the location cursor is within the window that contains the mnemonic. |
Yes N/A No |
| |
___ ___ ___ 5-11: |
A TearOffButton is like a PushButton with the special interaction of tearing off the Menu from its CascadeButton. TearOffButtons use the same basic activation as other buttons. | |
___ ___ ___ 5-12: | When a Menu with a TearOffButton is posted, pressing BTransfer in the TearOffButton starts a TearOff action. As long as BTransfer is held, a representation of the Menu follows the movement of the pointer. Releasing BTransfer ends the TearOff action by unposting the Menu system, creating a new window at the current pointer location that contains the contents of the Menu, and giving focus to the new window in explicit pointer mode (Section 5.4, "TearOff Activation" ). BTransfer, the second mouse button, provides a consistent means of activating a TearOffButton. |
Yes N/A No |
| |
___ ___ ___ 5-13: |
<Help> offers the user a consistent mechanism for invoking context-sensitive help. |
Yes N/A No |
| |
___ ___ ___ 5-14: |
Placing emphasis on the default PushButton in a DialogBox provides the user with a visual cue about the expected reply to the dialog. | |
___ ___ ___ 5-15: |
These rules ensure that the means of invoking a default action are consistent across applications. | |
___ ___ ___ 5-16: |
<Cancel> provides a uniform means of canceling a DialogBox from the keyboard. |
Yes N/A No |
| |
___ ___ ___ 5-17 |
Expert activation, using mouse double-clicking on buttons, provides a convenient way for experienced users to perform certain tasks quickly. However, new users and keyboard-only users need to be able to perform the same tasks. | |
___ ___ ___ 5-18: |
This rule minimizes possible confusion between default and expert activation. | |
___ ___ ___ 5-19: |
A user needs to be able to select a component, even if it has an expert action associated with it. |
Yes N/A No |
| |
___ ___ ___ 5-20: |
Activation preview presents the user with additional information that describes the effect of activating a button. This information cannot interfere with the normal operation of the application. |
Yes N/A No |
| |
___ ___ ___ 5-21: |
These guidelines for <Cancel> ensure the consistent operation of the key across applications. |
Yes N/A No |
| |
___ ___ ___ 6-1: |
A MainWindow contains a client area and, optionally, a MenuBar, a command area, a message area, and ScrollBars. The client area contains the framework of the application. The use of a MainWindow ensures interapplication consistency. | |
___ ___ ___ 6-2: |
For example, a text editor might allow the user to edit multiple documents, each in its own MainWindow. Each window is then treated as a separate application and can be closed or iconified when it is not being used. | |
___ ___ ___ 6-3: |
For example, a debugger might provide separate MainWindows for editing source code, examining data values, and viewing results. Each window can be iconified when it is not being used, but it is up to the application to decide whether each window closes separately or whether closing one window closes the entire application. |
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| ||
___ ___ ___ 6-4: |
A MenuBar organizes the most common features of an application. It contains a list of Menu topics in CascadeButtons; each button is associated with a distinct Pulldown Menu containing commands that are grouped by common functionality. The use of a MenuBar yields consistency across applications. | ||
___ ___ ___ 6-5: |
When other buttons are included as topics in a MenuBar, they inhibit Menu browsing. | ||
___ ___ ___ 6-6: |
If a File Menu is present, it is the first Menu and is placed at the far left of the MenuBar. If a Help Menu is present, it is the last Menu and is placed at the far right of the MenuBar. The ordering of common Menus in the MenuBar ensures consistency among applications. You can omit any of these Menus if they are not relevant to the application. You can also intersperse other, application-specific, Menus among these Menus. |
File Menu Contents
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| |
___ ___ ___ 6-7: | If your application uses a File Menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application ("File Menu Contents"). |
New | Creates a new file. If the current client area will be used to display the new file, your application clears the existing data from the client area. If changes made to the current file will be lost, your application displays a DialogBox, asking the user about saving changes. Has the mnemonic N. | |
Open... |
| |
Save | Saves the currently opened file without removing the existing contents of the client area. If the file has no name, your application displays a DialogBox, prompting the user to enter a filename. Has the mnemonic S. | |
Save As... |
| |
Schedules a file for printing. If your application needs specific information in order to print, it displays a DialogBox, requesting the information from the user. In this case, the Menu entry is followed by an ellipsis (Print...). Has the mnemonic P. | ||
Close | Closes the current primary window and its associated secondary windows. If your application uses only a single primary window or multiple dependent primary windows, this action is not supplied. Has the mnemonic C. | |
Exit | Ends the current application and all windows associated with it. If changes made to the current file will be lost, your application displays a DialogBox, asking the user about saving changes. Has the mnemonic X. The use of a File Menu with these common file operations yields consistency across applications. |
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| |
___ ___ ___ 6-8: | If your application uses an Edit Menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application ("Edit Menu Contents"): |
Undo | Reverses the most recently executed action. Has the mnemonic U. | |
Cut | Removes the selected portion of data from the client area and puts it on the clipboard. Has the mnemonic T. | |
Copy | Copies the selected portion of data from the client area and puts it on the clipboard. Has the mnemonic C. | |
Copy Link |
| |
Paste | Pastes the contents of the clipboard into the client area. Has the mnemonic P. | |
Paste Link |
| |
Clear | Removes a selected portion of data from the client area without copying it to the clipboard and does not compress the remaining data. Has the mnemonic E. | |
Delete | Removes a selected portion of data from the client area without copying it to the clipboard. Has the mnemonic D. | |
Select All |
| |
Deselect All |
| |
Select Pasted |
| |
Reselect |
| |
Promote |
The use of an Edit Menu with these common editing operations yields consistency across applications. |
___ ___ ___ 6-9: |
|
Table B-1. Edit Menu Accelerators, Model 1
Edit Menu Item | Accelerator |
Undo | <Alt> <BackSpace> |
Cut | <Shift> <Delete> |
Copy | <Ctrl> <Insert> |
Paste | <Shift> <Insert> |
Table B-2. Edit Menu Accelerators, Model 2
Edit Menu Item | Accelerator |
Undo | <Ctrl> <Z> |
Cut | <Ctrl> <X> |
Copy | <Ctrl> <C> |
Paste | <Ctrl> <V> |
These models provide consistent sets of accelerators for common editing operations in an Edit Menu.
Help Menu Contents
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| |
___ ___ ___ 6-10: | If your application uses a Help Menu, it contains either of the following two sets of choices, with the specified functionality, when the actions are actually supported by your application ("Help Menu Contents"): |
On Context |
| |
On Help | | |
On Window |
| |
On Keys |
| |
Index | Provides an index for all help information in your application. Has the mnemonic I. | |
Tutorial |
| |
On Version |
If your application uses a Help Menu, and it does not use the previous set of choices, the Help Menu contains the following choices, with the specified functionality, when the actions are actually supported by your application ("Help Menu Contents"): | |
Context-Sensitive Help |
| |
Overview |
| |
Index | Provides an index for all help information in your application. Has the mnemonic I. | |
Keyboard |
| |
Tutorial |
| |
Using Help |
| |
Product Information |
The use of a Help Menu with these common help operations yields consistency across applications. |
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| |
___ ___ ___ 6-11: | If your application uses any of the common Popup Menu actions, the actions function according to the following specifications ("Popup Menus" in Chapter 6 ): |
Properties |
| |
Undo | Reverses the most recently executed action. | |
Primary Move |
| |
Primary Copy |
| |
Primary Link |
| |
Cut | Cuts elements to the clipboard. If the Menu is popped up in a selection, cuts the entire selection to the clipboard. | |
Copy | Copies elements to the clipboard. If the Menu is popped up in a selection, copies the entire selection to the clipboard. | |
Copy Link |
| |
Paste | Pastes the contents of the clipboard to the component. This action is available only in editable components. | |
Paste Link |
| |
Clear | Removes a selected portion of data from the client area without copying it to the clipboard. If the Menu is popped up in a selection, deletes the selection. | |
Delete | Removes a selected portion of data from the client area without copying it to the clipboard. If the Menu is popped up in a selection, deletes the selection. | |
Select All |
| |
Deselect All |
| |
Select Pasted |
| |
Reselect |
| |
Promote |
The use of Popup Menus with these common actions yields consistency across applications. |
___ ___ ___ 6-12: |
In the context of a selection, Popup Menu actions affect the entire selection. |
Yes N/A No |
| |
___ ___ ___ 6-13: |
An InformationDialog conveys information to the user that does not require immediate attention, so it does not need to be modal. |
Yes N/A No |
| |
___ ___ ___ 6-14: |
When a TearOffButton is activated, the Menu changes into a DialogBox. The TearOffButton needs to be the first item in the Menu so that the entire contents of the Menu are torn off. | |
___ ___ ___ 6-15: |
The ability to see the full Label of each Menu element allows the user to browse through a Menu. |
![]() | Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales. |
Yes N/A No |
| |
___ ___ ___ 6-16: | If your application uses common DialogBox actions, the actions have the following specified functionality ("Common DialogBox Actions" in Chapter 6 ): |
Yes | Indicates an affirmative response to a question posed in the DialogBox. | |
No | Indicates a negative response to a question posed in the DialogBox. | |
OK | Applies any changes made to components in the DialogBox and dismisses the DialogBox. | |
Apply | Applies any changes made to components in the DialogBox. | |
Retry | Causes the task in progress to be attempted again. | |
Stop | Ends the task in progress at the next possible breaking point. | |
Pause | Causes the task in progress to pause. | |
Resume |
| |
Reset | Cancels any user changes that have not been applied to your application. Resets the status of the DialogBox to the state since the last time the DialogBox action was applied or to the initial state of the DialogBox. | |
Cancel |
| |
Help | Provides any help for the DialogBox. The use of common actions provides a consistent way for the user to respond quickly to DialogBoxes and get back to primary application tasks. |
Yes N/A No |
| |
___ ___ ___ 6-17: |
The Cancel button in the help DialogBox provides a convenient way for the user to cancel a drag and drop operation. |
Yes N/A No |
| |
___ ___ ___ 6-18: |
The user needs to have a way to cancel an operation that can cause destructive results. |
Yes N/A No |
| |
___ ___ ___ 7-1: | If your application uses CheckButtons, each button graphically indicates its state (Chapter 9, "Controls, Groups, and Models Reference Pages" ). A CheckButton is used to select settings that are not mutually exclusive. The user needs to know whether the button is set or not. | |
___ ___ ___ 7-2: | When the user presses BSelect in a CheckButton, the CheckButton is armed. If the CheckButton was previously unset, it is shown in the set state. If the CheckButton was previously set, it is shown in the unset state (Chapter 9, "Controls, Groups, and Models Reference Pages" ). BSelect Press arms a CheckButton and shows the result of activating it by releasing BSelect. | |
___ ___ ___ 7-3: | When the user releases BSelect in the same CheckButton that the press occurred in:
In all cases the CheckButton is disarmed, and, if the CheckButton is in a Menu, the Menu is unposted (Chapter 9, "Controls, Groups, and Models Reference Pages" ). BSelect Release activates a CheckButton. | |
___ ___ ___ 7-4: | When the user presses <Enter> or <Return> in a CheckButton, if the CheckButton is in a window with a default action, the default action is activated. If the CheckButton is in a Menu:
<Enter> and <Return> perform the default action of a window or activate a CheckButton in a Menu. | |
___ ___ ___ 7-5: | When the user presses <Select> or <Space> in a CheckButton, if the CheckButton was previously unset, it is set. If the CheckButton was previously set, it is unset. In both cases, the CheckButton is disarmed, and, if the CheckButton is in a Menu, the Menu is unposted (Chapter 9, "Controls, Groups, and Models Reference Pages" ). <Select> and <Space> activate a CheckButton. |
Yes N/A No |
| |
___ ___ ___ 7-6: | If your application uses a CommandBox, it is composed of a Text component with a command line prompt for text input and a List component for a command history area. The List uses either the single selection or browse selection model (Chapter 9, "Controls, Groups, and Models Reference Pages" ). This specification ensures the consistent appearance and operation of a CommandBox across applications. | |
___ ___ ___ 7-7: | When an element of a CommandBox List is selected, its contents are placed in the Text area (Chapter 9, "Controls, Groups, and Models Reference Pages" ). This specification provides a convenient way of selecting a previously entered command. | |
___ ___ ___ 7-8: | The List navigation actions <Up arrow>,<Down arrow>,<Ctrl> <Begin>,and <Ctrl> <End> are available from the Text component for moving the cursored element within the List and thus changing the contents of the Text (Chapter 9, "Controls, Groups, and Models Reference Pages" ). These actions provide a convenient way to choose a command from the List while focus remains in the Text component. | |
___ ___ ___ 7-9: | The default action of the CommandBox passes the command in the Text area to the application for execution and adds the command to the end of the List (Chapter 9, "Controls, Groups, and Models Reference Pages" ). Maintaining a history of commands provides a convenient means of entering often-used commands. |
Yes N/A No |
| |
___ ___ ___ 7-10: |
This specification ensures the uniform appearance of a FileSelectionBox across applications. | |
___ ___ ___ 7-11: |
The method for selecting a new directory to examine needs to be consistent across applications. | |
___ ___ ___ 7-12: |
The method for specifying a new search pattern needs to be uniform across applications. | |
___ ___ ___ 7-13: |
These actions provide a convenient way to choose a directory or filename from the corresponding List while focus remains in the Text component. | |
___ ___ ___ 7-14: |
The method for initiating a search needs to be uniform across applications. | |
___ ___ ___ 7-15: |
The method for selecting a file needs to be consistent across applications. | |
___ ___ ___ 7-16: |
This specification results in the uniform operation of a FileSelectionBox across applications. | |
___ ___ ___ 7-17: |
This specification ensures the consistent operation of a directory and file search in a FileSelectionBox. |
Yes N/A No |
| |
___ ___ ___ 7-18: |
The arrow keys provide a consistent means of moving the location cursor within a List component. | |
___ ___ ___ 7-19: |
These keys offer a convenient mechanism for moving the location cursor quickly through a List. | |
___ ___ ___ 7-20: |
These keys offer a convenient mechanism for paging through a List. | |
___ ___ ___ 7-21: |
Double-clicking using BSelect provides a consistent way of activating the default action for a List. |
Yes N/A No |
| |
___ ___ ___ 7-22: |
An OptionButton is used to post an Option Menu which allows the user to select from a number of choices. The Label of an OptionButton needs to display the most recent selection from the associated Option Menu. | |
___ ___ ___ 7-23: |
BSelect Press is a consistent way of activating an OptionButton. | |
___ ___ ___ 7-24: |
BSelect Release posts or unposts an Option Menu, depending on whether the release occurs inside the OptionButton and whether the Option Menu was posted at the time of the press. | |
___ ___ ___ 7-25: |
<Select> or <Space> posts an Option Menu from the keyboard. |
Yes N/A No |
| |
___ ___ ___ 7-26: |
This specification ensures the consistent appearance of a PanedWindow across applications. |
Yes N/A No |
| |
___ ___ ___ 7-27: |
A Panel group organizes a collection of basic controls in a horizontal, vertical, or 2-dimensional layout. The directional keys are used to navigate among the controls. |
Yes N/A No |
| |
___ ___ ___ 7-28: |
BSelect provides a consistent means of activating a PushButton. | |
___ ___ ___ 7-29: |
<Enter> and <Return> activate a DialogBox or a PushButton in a Menu. | |
___ ___ ___ 7-30: |
<Select> and <Space> activate a PushButton. |
Yes N/A No |
| |
___ ___ ___ 7-31: |
RadioButtons are used to represent a panel of mutually exclusive selections. The user needs to know which button in the panel is set. | |
___ ___ ___ 7-32: |
BSelect Press arms a RadioButton and shows the result of activating it by releasing BSelect. | |
___ ___ ___ 7-33: |
BSelect Release activates a RadioButton. | |
___ ___ ___ 7-34: |
<Enter> and <Return> perform the default action of a window or activate a RadioButton in a Menu. | |
___ ___ ___ 7-35: |
<Select> and <Space> activate a RadioButton. |
Yes N/A No |
| |
___ ___ ___ 7-36: |
This specification results in the uniform operation of a PanedWindow across applications. | |
___ ___ ___ 7-37: |
BSelect, the first mouse button, and BTransfer, the second mouse button, provide a consistent means of moving a Sash in a PanedWindow using the mouse. | |
___ ___ ___ 7-38: |
The arrow keys offer a uniform means of moving a Sash in a PanedWindow. | |
___ ___ ___ 7-39: |
These keys provide a convenient way of moving a Sash quickly in a PanedWindow. |
Yes N/A No |
| |
___ ___ ___ 7-40: |
BSelect Press provides a consistent means of adjusting a Scale component using the mouse. | |
___ ___ ___ 7-41: |
BSelect Press provides a consistent means of adjusting a Scale component using the mouse. | |
___ ___ ___ 7-42: |
BSelect Motion offers a convenient way to adjust a Scale component precisely using the mouse. | |
___ ___ ___ 7-43: |
BTransfer Motion provides another convenient way to adjust a Scale component precisely using the mouse. | |
___ ___ ___ 7-44: |
<Cancel> provides a consistent way for the user to cancel a mouse-based sliding action. | |
___ ___ ___ 7-45: |
The arrow keys provide a uniform way of adjusting the slider in a Scale component using the keyboard. | |
___ ___ ___ 7-46: |
These keys provide a convenient way of adjusting the slider in a Scale component quickly using the keyboard. | |
___ ___ ___ 7-47: |
These keys provide a convenient mechanism for setting a Scale to its minimum or maximum value using the keyboard. |
Yes N/A No |
| |
___ ___ ___ 7-48: |
BSelect Press provides a consistent means of adjusting a ScrollBar using the mouse. | |
___ ___ ___ 7-49: |
BSelect Press provides a consistent means of adjusting a ScrollBar using the mouse. | |
___ ___ ___ 7-50: |
BSelect Motion offers a convenient way to adjust a ScrollBar precisely using the mouse. | |
___ ___ ___ 7-51: |
BTransfer Motion offers another convenient way to adjust a ScrollBar precisely using the mouse. | |
___ ___ ___ 7-52: |
<Cancel> provides a consistent way for the user to cancel a mouse-based scrolling action. | |
___ ___ ___ 7-53: |
The arrow keys provide a uniform means of adjusting a ScrollBar using the keyboard. | |
___ ___ ___ 7-54: |
These keys provide a convenient way of adjusting a ScrollBar quickly using the keyboard. | |
___ ___ ___ 7-55: |
These keys allow for the convenient movement of the slider in a ScrollBar using the keyboard. | |
___ ___ ___ 7-56: |
These keys offer a convenient mechanism for setting a ScrollBar to its minimum or maximum value using the keyboard. |
Yes N/A No |
| |
___ ___ ___ 7-57: |
This specification ensures the consistent appearance and operation of a SelectionBox across applications. | |
___ ___ ___ 7-58: |
These actions provide a convenient way to choose an element from the List while focus remains in the Text component. |
Yes N/A No |
| |
___ ___ ___ 7-59: |
The up and down arrow keys provide a uniform means of navigation within Text components. | |
___ ___ ___ 7-60: |
The left and right arrow keys offer a consistent way of navigating within Text components. | |
___ ___ ___ 7-61: |
<Ctrl> <Right arrow> and <Ctrl> <Left arrow> provide a uniform way of navigating by words in a Text component. Moving right by a word means that the location cursor is placed before the first character that is not a space, tab, or newline character after the next space, tab, or newline. Moving left by a word means that the location cursor is placed after the first space, tab, or newline character preceding the first previous character that is not a space, tab, or newline. | |
___ ___ ___ 7-62: |
These keys allow the user to move quickly to the beginning or end of a line of text in a Text component. | |
___ ___ ___ 7-63: |
These keys permit the user to move quickly to the beginning or end of a file in a Text component. | |
___ ___ ___ 7-64: |
This specification ensures that selection is available from the keyboard in a Text component. | |
___ ___ ___ 7-65: |
This specification ensures that activation is available from the keyboard in a Text component. | |
___ ___ ___ 7-66: |
<Tab> is used for tabbing in multiline Text. | |
___ ___ ___ 7-67: |
By default, the component starts in insert mode, where the location cursor is between two characters. In insert mode, typing a character inserts the character at the position of the location cursor. In replace mode, the location cursor is on a character. Typing a character replaces the current character with that newly entered character and moves the location cursor to the next character, selecting it (Chapter 9, "Controls, Groups, and Models Reference Pages" ). These rules ensure the uniform operation of a Text component with a replace mode. | |
___ ___ ___ 7-68: |
Double clicking with the first mouse button provides a convenient mechanism for selecting words in a Text component. |