Projects/Usability/HIG/Combo Box: Difference between revisions

    From KDE TechBase
    < Projects‎ | Usability‎ | HIG
    No edit summary
    No edit summary
    (9 intermediate revisions by 3 users not shown)
    Line 1: Line 1:
    Combo boxes (also known as a dropdown box) offer the user a choice of two or more mutually exclusive options. Their disadvantage compared to related controls like radio buttons or lists is that the options are not visible without further interaction.
    __NOTOC__


    === Guidelines ===
    == Purpose ==
    A ''combo box'' is a combination of a drop-down list and an edit control, thus allowing users to enter a value that isn't in the list. It behaves like a drop-down list and allows the user to choose from a list of existing items but adds the option to type a value directly into the control. Newly typed items are usually added to the list and can be selected next time. Combo boxes are typically applied to provide auto-complete or auto-type functionality in a convenient way to the user.


    * For 3 or fewer options, use a set of [[Projects/Usability/HIG/Radio_Buttons|radio buttons]].
    The list provides auto-complete feature for the whole string, independently of the "editable" property. Given the items of "bike", "boat", and "car": 
    * For 4 to 10 options, use a combo box instead of radio buttons.
    *If one types "b", the list selects "bike".
    * For more than 10 options, use a list.
    *If one (rapidly) types "bo", it selects "boat".
    * Label the combo box with a descriptive label to the left of the combo box.
    *If one types "c", it selects "car".
    * Use sentence style capitalization for the label and the options.
    The input field of the combo box ("editable" is true) marks the completed part of the item as selected, making it easy to change the completion.  
    * If activating a choice affects the appearance or the enabled state of other controls, place them next to the combo box or below the combo box with a space indentation.
    * Make sure the items are easily accessible via keyboard by moving distinctive letters to the beginning of each option. For example, in a list of countries on continents, write ''Germany (Europe)'' instead of ''Europe/Germany''.


    == Guidelines ==


    * Don't initiate an action when the user selects an item from a drop-down list.
    === Is this the right control ===
    * Don't forget to create a buddy relation so access keys are assigned.
    * Use a combo box for single selection of one out of many items of lists that can be extended by the user. Prefer a simple [[Projects/Usability/HIG/DropDown| drop-down list]] in case of read-only interaction.
    * Consider to replace the combo box by a [[Projects/Usability/HIG/ListView| list view]] with a connected [[Projects/Usability/HIG/edits| edit control]].


    === Behavior ===
    * Show a maximum of eight items at once (maxVisibleItems=8).
    * When possible apply changes immediately but do not initiate an action (like print, send, delete) when the user selects an item from the list.
    * Do not add controls to the drop-down (e.g. check boxes for each item).
    * Place options that represent general options (e.g. all, none) at the beginning of the list.
    * Sort list items in a logical order. Make sure sorting fits translation.
    * Make sure the items are easily accessible via keyboard by moving distinctive letters to the beginning of each option. For example, in a list of countries on continents, write "Germany (Europe)" instead of "Europe/Germany".
    * Do not have blank list items; use meta-options, e.g. (None) instead


    Controls that show the options without further user interaction are preferable, except for the following cases:
    === Appearance ===
    * Combo boxes are distinguished visually from drop-down lists (normally by the raised or lowered bevel). Do not override the common processing, e.g. by using a combo box and making it read only in order to simulate a simple drop-down list.
    * If activating a choice affects the appearance or the enabled state of other controls, place them next to the combo box.
    * If certain controls in a configuration dialog are only relevant if a certain item is selected (i.e. they are dependent controls), disable them instead of hiding.
    * Label the combo box with a descriptive caption to the left (cf. [[Projects/Usability/HIG/Alignment| alignment]]).
    * Create a buddy relation so access keys are assigned.
    * Do not use ending punctuation (neither dot nor colon) for caption.
    * Use [[Projects/Usability/HIG/Capitalization|sentence style capitalization]] for items.


    * the list of options may change over time,
    == Implementation ==
    * the contents are obvious from the label and the one selected item, for example ''Month'' and ''January''
    [http://api.kde.org/4.10-api/kdelibs-apidocs/kdeui/html/classKComboBox.html KComboBox]
    * the combo box is part of a related sequence of controls. For example, to set a reminder to ring 5 hours or minutes before or after an event.
     
    [[Category:Usability]][[Category:Behavior]][[Category:Editing_and_Manipulation]][[Category:Selection]]

    Revision as of 12:46, 2 August 2013


    Purpose

    A combo box is a combination of a drop-down list and an edit control, thus allowing users to enter a value that isn't in the list. It behaves like a drop-down list and allows the user to choose from a list of existing items but adds the option to type a value directly into the control. Newly typed items are usually added to the list and can be selected next time. Combo boxes are typically applied to provide auto-complete or auto-type functionality in a convenient way to the user.

    The list provides auto-complete feature for the whole string, independently of the "editable" property. Given the items of "bike", "boat", and "car":

    • If one types "b", the list selects "bike".
    • If one (rapidly) types "bo", it selects "boat".
    • If one types "c", it selects "car".

    The input field of the combo box ("editable" is true) marks the completed part of the item as selected, making it easy to change the completion.

    Guidelines

    Is this the right control

    • Use a combo box for single selection of one out of many items of lists that can be extended by the user. Prefer a simple drop-down list in case of read-only interaction.
    • Consider to replace the combo box by a list view with a connected edit control.

    Behavior

    • Show a maximum of eight items at once (maxVisibleItems=8).
    • When possible apply changes immediately but do not initiate an action (like print, send, delete) when the user selects an item from the list.
    • Do not add controls to the drop-down (e.g. check boxes for each item).
    • Place options that represent general options (e.g. all, none) at the beginning of the list.
    • Sort list items in a logical order. Make sure sorting fits translation.
    • Make sure the items are easily accessible via keyboard by moving distinctive letters to the beginning of each option. For example, in a list of countries on continents, write "Germany (Europe)" instead of "Europe/Germany".
    • Do not have blank list items; use meta-options, e.g. (None) instead

    Appearance

    • Combo boxes are distinguished visually from drop-down lists (normally by the raised or lowered bevel). Do not override the common processing, e.g. by using a combo box and making it read only in order to simulate a simple drop-down list.
    • If activating a choice affects the appearance or the enabled state of other controls, place them next to the combo box.
    • If certain controls in a configuration dialog are only relevant if a certain item is selected (i.e. they are dependent controls), disable them instead of hiding.
    • Label the combo box with a descriptive caption to the left (cf. alignment).
    • Create a buddy relation so access keys are assigned.
    • Do not use ending punctuation (neither dot nor colon) for caption.
    • Use sentence style capitalization for items.

    Implementation

    KComboBox