Projects/Usability/HIG: Difference between revisions

From KDE TechBase
(32 intermediate revisions by the same user not shown)
Line 25: Line 25:
= Behaviour =
= Behaviour =
== Viewing and Navigation ==
== 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 ===
=== Access functions ===
* [[Projects/Usability/HIG/Menu_Bar|Menu Bar]]
* Apply a [[Projects/Usability/HIG/Menu_Bar|menu bar]] to every standard application.
* [[Projects/Usability/HIG/Buttons|Buttons]]
* Try to omit the [[Projects/Usability/HIG/StatusBar| status bar]] from your application.
** [[Projects/Usability/HIG/Toggle_Buttons|Toggle Buttons]]
* Provide a [[Projects/Usability/HIG/ContextMenu|context menu]] for controls with implicit functions.
* Links
* Provide a [[Projects/Usability/HIG/Toolbar|toolbar]] for frequently used functions.
* Keyboard Access
* Use a [[Projects/Usability/HIG/Buttons|push button]] to initiate an action when the user clicks it.
** [[Projects/Usability/HIG/Keyboard_Accelerators|Keyboard Accelerators]]
* Use a [[Projects/Usability/HIG/Toggle_Buttons|toogle button]] to indicate a state, preferably in toolbars only.
** [[Projects/Usability/HIG/Keyboard_Shortcuts|Keyboard Shortcuts]]
* 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]].
* Follow the guidelines for [[Projects/Usability/HIG/Dialogs|dialogs]] for secondary windows.
 
=== Grouping ===
=== Grouping ===
* Use a [[Projects/Usability/HIG/GroupBox| group box]] to arrange associated controls,
* Arrange associated controls by using a labeled [[Projects/Usability/HIG/GroupBox| group box]] or an unlabeled [[Projects/Usability/HIG/GroupBox| frame]].
* 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.
* Allow users to resize aligned groups by placing a [[Projects/Usability/HIG/Splitter| splitter]] between the groups.
* Use [[Projects/Usability/HIG/TabControl|tabs]] to show related information on separate pages.
* Provide an [[Projects/Usability/HIG/Accordion|accordion]] (aka tool box) for different views to content.


=== Complex views ===
=== Complex views ===
* Use a [[Projects/Usability/HIG/ListView| list view]] to show some items out of one category.
* 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.
* Use a [[Projects/Usability/HIG/TreeView| tree view]] to show items with a single, natural, hierarchical categorization.
* Grids
* If you really need to create your own widget follow the guidelines for [[Projects/Usability/HIG/CustomControls| custom controls]].
* 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 ==
== Editing and Manipulation ==
=== Selection ===
=== Selection ===
* Use [[Projects/Usability/HIG/Radio Buttons|radio buttons]] for 1 selection out of a few items.
* Use [[Projects/Usability/HIG/Radio Buttons|radio buttons]] for selection of 1 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 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/DropDown| drop-down]] list for selection of 1 out of a small number of items.
Line 63: Line 60:
* Provide a [[Projects/Usability/HIG/LineEdit| line edit]] to enter one line of text.
* 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.
* Provide a [[Projects/Usability/HIG/TextEdit| text edit]] to enter multiple lines of texts.
* Consider to provide inline editing with complex views.
* Use a [[Projects/Usability/HIG/TableView| table view]] to arrange data in rows and columns with inline editing feature.
<div style="display: none;">http://techbase.kde.org/Projects/Usability/HIG/inline_editing</div>
 
=== Constrained input ===
=== 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/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.
* 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.
* 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.
* 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 Assistance ==
Line 93: Line 90:
* Carefully place control according the KDE [[Projects/Usability/HIG/Alignment| alignment]] style.
* 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.
* Do not use [[Projects/Usability/HIG/Color| color]]  as primary method of communication.
* Icons
* [[Projects/Usability/HIG/IconDesign| icon design]]


== Style ==
== Style ==

Revision as of 10:24, 4 November 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

Access functions

Grouping

  • Arrange associated controls by using a labeled group box or an unlabeled frame.
  • Allow users to resize aligned groups by placing a splitter between the groups.
  • Use tabs to show related information on separate pages.
  • Provide an accordion (aka tool box) for different views to content.

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 selection of 1 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.
  • icon design

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