Projects/Usability/HIG: Difference between revisions

    From KDE TechBase
    m (Added link to note on contraction non-usage)
    (97 intermediate revisions by 8 users not shown)
    Line 1: Line 1:
    __NOTOC__
    = Introduction =
    Please add any guidelines questions or requests to the [[Projects/Usability/HIG_Questions|HIG Questions]] page.


    Also see the  [http://developer.kde.org/documentation/standards/kde/style/basics/index.html KDE3 User Interface Guidelines] and the draft notes for the  [http://wiki.openusability.org/guidelines/ KDE4 Human Interface Guidelines].
    Human interface guidelines (HIG) are software development documents that offer
    application developers a set of recommendations. Their aim is to improve the  
    experience for users by making application interfaces more consistent and
    hence more intuitive and learnable.  


    [[Projects/Usability/HIG/SOU_Workspace|Season of Usability HIG & Design Patterns Workspace]]
    [[/About|Learn more about the philosophy behind the KDE HIG]]
     
    = Structure =
    <div style="display: none;">
    == Conceptual Model ==
    * Real World, Vision
    == Task Flow ==
    * Core usability goals, Use cases / User requirements, Task aggregation
    * Personas, Scenarios, Usability criteria, Feature list
    == Organizational Model ==
    * [[Terminology]]
    * Information architecture, Interface management, Window style, Basic arrangement, Screen design, Design Pattern
    * [[Projects/Usability/HIG/CentralConfiguration|central configuration]] (content tbd.)
    * [[Projects/Usability/HIG/NotificationMechanism|Notification mechanism]] (content tbd.)
    *Minimize to tray (perhaps at behaviour>navigation)
    </div>
     
    = Behaviour =
    == Viewing and Navigation ==
    === General navigation ===
    * [[Projects/Usability/HIG/Dialogs|Dialogs]]
    * Accordion
    * [[Projects/Usability/HIG/Tabs_Pages|Tabs and Pages in Dialogs]]
    * Toolbar
    * Status bar
    * Paging
    === Access functions ===
    * Apply a [[Projects/Usability/HIG/Menu_Bar|menu bar]] to every standard application.
    * Provide a [[Projects/Usability/HIG/ContextMenu|context menu]] for controls with implicit functions.
    * Use a [[Projects/Usability/HIG/Buttons|push button]] to initiate an action when the user clicks it.
    * Use a [[Projects/Usability/HIG/Toggle_Buttons|toogle button]] to indicate a state, preferably in toolbars only.
    * Use a [[Projects/Usability/HIG/Command_Link|command link]] to navigate between pages.
    * Support keyboard access by [[Projects/Usability/HIG/Keyboard_Accelerators|accelerators]] and [[Projects/Usability/HIG/Keyboard_Shortcuts|shortcuts]].
     
    === Grouping ===
    * Use a [[Projects/Usability/HIG/GroupBox| group box]] to arrange associated controls.
    * Use a [[Projects/Usability/HIG/Panel| panel]] for arrangement of controls without a caption.
    * Allow users to resize aligned groups by placing a [[Projects/Usability/HIG/Splitter| splitter]] between the groups.
     
    === Complex views ===
    * Use a [[Projects/Usability/HIG/ListView| list view]] to show some items out of one category.
    * Use a [[Projects/Usability/HIG/TreeView| tree view]] to show items with a single, natural, hierarchical categorization.
    * If you really need to create your own widget follow the guidelines for [[Projects/Usability/HIG/CustomControls| custom controls]].
    * Double check the guidelines about plotting [[Projects/Usability/HIG/Diagram|diagram/charts]].
     
    == Editing and Manipulation ==
    === Selection ===
    * Use [[Projects/Usability/HIG/Radio Buttons|radio buttons]] for 1 selection out of a few items.
    * Use one or more [[Projects/Usability/HIG/Check_Box|check boxes]] for clear options or to select items out of a small number of options.
    * Use a [[Projects/Usability/HIG/DropDown| drop-down]] list for selection of 1 out of a small number of items.
    * Use a [[Projects/Usability/HIG/Combo_Box| combo box]] to select 1 out of a small number of items where users should be able to add items.
    * Use a [[Projects/Usability/HIG/ListView|list view]] to select 1 singular item out of a potentially big list.
    * Apply the [[Projects/Usability/HIG/DualList| dual list pattern]] for several selections out of a large number of (multiple) items.
     
    === Unconstrained input ===
    * Provide a [[Projects/Usability/HIG/LineEdit| line edit]] to enter one line of text.
    * Provide a [[Projects/Usability/HIG/TextEdit| text edit]] to enter multiple lines of texts.
    * Use a [[Projects/Usability/HIG/TableView| table view]] to arrange data in rows and columns with inline editing feature.
     
    === Constrained input ===
    * Use a [[Projects/Usability/HIG/Spin_Box|spin box]] for numerical input within a range and with fix steps.
    * Use a [[Projects/Usability/HIG/Slider|slider]] for arbitrary changes within a defined range.
    * Apply the [[Projects/Usability/HIG/Slider_and_Spin_Box|slider and spin box pattern]] for numeric input with both large changes and precise control.
    * Use [[Projects/Usability/HIG/Date_Time_Pickers|date and time pickers]] for formatted input of datum, time of day, or periods etc.
     
    == User Assistance ==
    === User-driven information ===
    * Provide [[Projects/Usability/HIG/Tooltip|tool-tips]] for user driven information.
     
    === System triggered notification ===
    * Provide a [[Projects/Usability/HIG/MessageWidget| message panel]] to inform users about non-critical problems.
    * Use a [[Projects/Usability/HIG/Notifications|notification]] as system-triggered message to acknowledge about events out of the current context.
    * Show a [[Projects/Usability/HIG/ProgressIndicator| progress indicator]] for lengthy actions.
     
    === Disruptive messages ===
    * Show a modal [[Projects/Usability/HIG/Messages|message dialog]] if the processing has reached an unexpected condition that needs interaction.
     
    === Help system ===
    * Support the user by an elaborated interface or per [[Projects/Usability/HIG/HelpSystem|help system]].
     
    = Presentation =
    == Layout ==
    * Resizing
    * Default and minimal size
    * Spacing
    * Carefully place control according the KDE [[Projects/Usability/HIG/Alignment| alignment]] style.
    * Do not use [[Projects/Usability/HIG/Color| color]]  as primary method of communication.
    * Icons
     
    == Style ==
    == Text ==
    * Language localizations
    * Static text
    * [[Projects/Usability/HIG/Labels|Control Labels]]
    ** [[Projects/Usability/HIG/KNS|KNewStuff Button Labels]]
    * [[Projects/Usability/HIG/Wording|Wording]]
    * [[Projects/Usability/HIG/Ellipsis|Ellipsis]]
    * [[Projects/Usability/HIG/Capitalization|Capitalization]]
    * [[Projects/Usability/HIG/Contractions|Contractions (don't, there's, etc.)]]
    * [[Projects/Usability/HIG/Exclamation_points|Exclamation Points]]
     
    See also:
     
    * [[Projects/Usability/HIG/Tablet/Index|HIG for Plasma Active]]
    * [[Projects/Usability/HIG/Netbook/Index|HIG for Plasma Netbook]]
     
    =Contributing=
     
    Didn't find what you were looking for?
     
    A guide to the guide can be found at the [[Projects/Usability/HIG/About|about page]].
     
    Our Human Interface Guidelines are a work in progress and we need your help. Visit the [[Projects/Usability/HIG/Contributing|Contributing page]] to report problems or get involved.
     
    =Index=
     
    '''B'''
     
    * [[Projects/Usability/HIG/Buttons|Buttons]]
     
    '''C'''


    ==Index==
    ===C===
    * [[Projects/Usability/HIG/Capitalization|Capitalization]]
    * [[Projects/Usability/HIG/Capitalization|Capitalization]]
    * [[Projects/Usability/HIG/Contractions|Contractions (don't, there's, etc.)]]
    * [[Projects/Usability/HIG/Contractions|Contractions (don't, there's, etc.)]]
    Line 13: Line 133:
    * [[Projects/Usability/HIG/Combo_Box|Combo Box]]
    * [[Projects/Usability/HIG/Combo_Box|Combo Box]]


    ===D===
     
    * [[Projects/Usability/HIG/Date_Time|Date and Time]]
    '''D'''
     
    * [[Projects/Usability/HIG/Date_Time_Pickers|Date and Time Pickers]]
    * [[Projects/Usability/HIG/Dialogs|Dialogs]]
    * [[Projects/Usability/HIG/Dialogs|Dialogs]]


    ===E===
    '''E'''
    * [[Projects/Usability/HIG/Ellipsis|Ellipsis]]
    * [[Projects/Usability/HIG/Ellipsis|Ellipsis]]
    * [[Projects/Usability/HIG/Exclamation_points|Exclamation Points]]
    * [[Projects/Usability/HIG/Exclamation_points|Exclamation Points]]


    ===F===
    '''F'''
    * [[Projects/Usability/HIG/Form_Label_Alignment|Forms: Label Alignment]]
    * [[Projects/Usability/HIG/Form_Label_Alignment|Forms: Label Alignment]]


    ===K===
    '''K'''
    * [[Projects/Usability/HIG/KNS|KNewStuff Button Labels]]
    * [[Projects/Usability/HIG/KNS|KNewStuff Button Labels]]
    * [[Projects/Usability/HIG/Keyboard_Accelerators|Keyboard Accelerators]]
    * [[Projects/Usability/HIG/Keyboard_Accelerators|Keyboard Accelerators]]
    * [[Projects/Usability/HIG/Keyboard_Shortcuts|Keyboard Shortcuts]]
    * [[Projects/Usability/HIG/Keyboard_Shortcuts|Keyboard Shortcuts]]


    ===L===
    '''L'''
    * [[Projects/Usability/HIG/Labels|Labels]]
    * [[Projects/Usability/HIG/Labels|Labels]]
    * [[Projects/Usability/HIG/Lists_Rich_Lists|Lists and Rich Lists]]
    * [[Projects/Usability/HIG/ListView|List Views]]


    ===M===
    '''M'''
    * [[Projects/Usability/HIG/Menu_Bar|Menu Bar]]
    * [[Projects/Usability/HIG/Menu_Bar|Menu Bar]]
    * [[Projects/Usability/HIG/Messages|Messages]]
    * [[Projects/Usability/HIG/Messages|Messages]]
    ===R===
     
    '''R'''
    * [[Projects/Usability/HIG/Radio Buttons|Radio Buttons]]
    * [[Projects/Usability/HIG/Radio Buttons|Radio Buttons]]
    ===S===
     
    '''S'''
    * [[Projects/Usability/HIG/Slider|Slider]]
    * [[Projects/Usability/HIG/Slider|Slider]]
    * [[Projects/Usability/HIG/Slider_and_Spin_Box|Slider and Spin Box]]
    * [[Projects/Usability/HIG/Spin_Box|Spin Box]]
    * [[Projects/Usability/HIG/Spin_Box|Spin Box]]


    ===T===
    '''T'''
    * [[Projects/Usability/HIG/Tabs_Pages|Tabs and Pages in Dialogs]]
    * [[Projects/Usability/HIG/Tabs_Pages|Tabs and Pages in Dialogs]]
    * [[Projects/Usability/HIG/Toggle_Buttons|Toggle Buttons]]


    ===W===
    '''W'''
    * [[Projects/Usability/HIG/Wording|Wording]]
    * [[Projects/Usability/HIG/Wording|Wording]]


    [[Category:Usability]]
    [[Category:Usability]]

    Revision as of 11:14, 26 September 2013

    Introduction

    Human interface guidelines (HIG) are software development documents that offer application developers a set of recommendations. Their aim is to improve the experience for users by making application interfaces more consistent and hence more intuitive and learnable.

    Learn more about the philosophy behind the KDE HIG

    Structure

    Conceptual Model

    • Real World, Vision

    Task Flow

    • Core usability goals, Use cases / User requirements, Task aggregation
    • Personas, Scenarios, Usability criteria, Feature list

    Organizational Model

    Behaviour

    Viewing and Navigation

    General navigation

    Access functions

    Grouping

    • Use a group box to arrange associated controls.
    • Use a panel for arrangement of controls without a caption.
    • Allow users to resize aligned groups by placing a splitter between the groups.

    Complex views

    • Use a list view to show some items out of one category.
    • Use a tree view to show items with a single, natural, hierarchical categorization.
    • If you really need to create your own widget follow the guidelines for custom controls.
    • Double check the guidelines about plotting diagram/charts.

    Editing and Manipulation

    Selection

    • Use radio buttons for 1 selection out of a few items.
    • Use one or more check boxes for clear options or to select items out of a small number of options.
    • Use a drop-down list for selection of 1 out of a small number of items.
    • Use a combo box to select 1 out of a small number of items where users should be able to add items.
    • Use a list view to select 1 singular item out of a potentially big list.
    • Apply the dual list pattern for several selections out of a large number of (multiple) items.

    Unconstrained input

    • Provide a line edit to enter one line of text.
    • Provide a text edit to enter multiple lines of texts.
    • Use a table view to arrange data in rows and columns with inline editing feature.

    Constrained input

    • Use a spin box for numerical input within a range and with fix steps.
    • Use a slider for arbitrary changes within a defined range.
    • Apply the slider and spin box pattern for numeric input with both large changes and precise control.
    • Use date and time pickers for formatted input of datum, time of day, or periods etc.

    User Assistance

    User-driven information

    • Provide tool-tips for user driven information.

    System triggered notification

    Disruptive messages

    • Show a modal message dialog if the processing has reached an unexpected condition that needs interaction.

    Help system

    • Support the user by an elaborated interface or per help system.

    Presentation

    Layout

    • Resizing
    • Default and minimal size
    • Spacing
    • Carefully place control according the KDE alignment style.
    • Do not use color as primary method of communication.
    • Icons

    Style

    Text

    See also:

    Contributing

    Didn't find what you were looking for?

    A guide to the guide can be found at the about page.

    Our Human Interface Guidelines are a work in progress and we need your help. Visit the Contributing page to report problems or get involved.

    Index

    B

    C


    D

    E

    F

    K

    L

    M

    R

    S

    T

    W