Difference between revisions of "Projects/Usability/HIG"

Jump to: navigation, search
(Unconstrained input)
(Layout)
(29 intermediate revisions by 3 users not shown)
Line 16: Line 16:
  
 
= Behaviour =
 
= Behaviour =
 +
All HIGs assume that the controls referenced in the following "Implementation" sections are used. Therefore they only contain guidelines for aspects which can be changed by the developer, to keep them as concise as possible.
 +
If you feel your application needs something which the referenced standard KDE or Qt widget does not provide, do not create you own custom replacement, because it might violate best practice which is implemented in the standard
 +
widget. Instead, ask the KDE HIG team for advice on how to solve your specific problem.
 
== Viewing and Navigation ==
 
== Viewing and Navigation ==
 
<cite>The Viewing and Navigation layer encompasses the wide variety of behaviors and operations that allow users to navigate the interface and effect its presentation. </cite>
 
<cite>The Viewing and Navigation layer encompasses the wide variety of behaviors and operations that allow users to navigate the interface and effect its presentation. </cite>
Line 38: Line 41:
 
=== 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.
<span style="color:blue">legacy text: [[Projects/Usability/HIG/Lists_Rich_Lists|List Views]]</span>
 
 
* Tree view
 
* Tree view
 
* Grids
 
* Grids
 +
* If you really need to create your own widget follow the guidelines for  [[Projects/Usability/HIG/CustomControls| custom controls]].
  
 
== Editing and Manipulation ==
 
== Editing and Manipulation ==
Line 53: Line 56:
 
=== Unconstrained input ===
 
=== Unconstrained input ===
 
* To enter one line of text use a [[Projects/Usability/HIG/edits| line edit]] and for multiple lines of texts a [[Projects/Usability/HIG/edits| text edit]].
 
* To enter one line of text use a [[Projects/Usability/HIG/edits| line edit]] and for multiple lines of texts a [[Projects/Usability/HIG/edits| text edit]].
* Lists with direct input
+
* Consider to provide inline editing with complex views.
* Complex views with direct input (Grid cell editing)
+
  
 
=== Constrained input ===
 
=== Constrained input ===
* Numeric input within a range and with fix steps * [[Projects/Usability/HIG/Spin_Box|(Spin Box)]]
+
* Use a [[Projects/Usability/HIG/Spin_Box|Spin Box]] for numerical input within a range and with fix steps.
* Arbitrary changes within a range for immediate feedback * [[Projects/Usability/HIG/Slider|(Slider)]]
+
* Use a [[Projects/Usability/HIG/Slider|Slider]] for arbitrary changes within a defined range.
* Numeric input with both large changes and precise control * [[Projects/Usability/HIG/Slider_and_Spin_Box|(Slider and Spin Box)]]
+
* (Under construction): Numeric input with both large changes and precise control: [[Projects/Usability/HIG/Slider_and_Spin_Box|Slider and Spin Box]]
* [[Projects/Usability/HIG/Date_Time|Date- and Time-Picker]]
+
* 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 ==
 
<cite>Interface elements that inform users of the application’s activity and status, as well as elements dedicated to user education, are all contained in the User Assistance layer. This includes online help, error alerts, and status alerts. </cite>
 
<cite>Interface elements that inform users of the application’s activity and status, as well as elements dedicated to user education, are all contained in the User Assistance layer. This includes online help, error alerts, and status alerts. </cite>
 
=== User-driven information ===
 
=== User-driven information ===
* Tool-tip
+
* Provide [[Projects/Usability/HIG/Tooltip|tool-tips]] for user driven information.
 +
 
 
=== System triggered notification ===
 
=== System triggered notification ===
* Balloon
+
* Provide a [[Projects/Usability/HIG/MessageWidget| message panel]] to inform users about non-critical problems.
* [[Projects/Usability/HIG/Notifications|Notification]] is a system-triggered message used to acknowledge about events out of the current context.
+
* Use a [[Projects/Usability/HIG/Notifications|notification]] as system-triggered message to acknowledge about events out of the current context.
* Progress indicator
+
* Show a [[Projects/Usability/HIG/ProgressIndicator| progress indicator]] for lengthy actions.
 +
 
 
=== Disruptive messages ===
 
=== Disruptive messages ===
* [[Projects/Usability/HIG/Messages|Message dialogs]]
+
* Show a modal [[Projects/Usability/HIG/Messages|message dialog]] if the processing has reached an unexpected condition that needs interaction.
 +
 
 
=== Help system ===
 
=== Help system ===
* KDE Help
+
* Support the user by an elaborated interface or per [[Projects/Usability/HIG/HelpSystem|help system]].
 +
 
 
= Presentation =
 
= Presentation =
 
== Layout ==
 
== Layout ==
Line 82: Line 88:
 
* Alignment & Placement
 
* Alignment & Placement
 
** [[Projects/Usability/HIG/Form_Label_Alignment|Forms: Label Alignment]]
 
** [[Projects/Usability/HIG/Form_Label_Alignment|Forms: Label Alignment]]
* Color
+
* Do not use [[Projects/Usability/HIG/Color| color]]  as primary method of communication.
 
* Icons
 
* Icons
 +
 
== Style ==
 
== Style ==
 
<cite>Like many forms of visual design, the Style layer is concerned with emotion, tone, and visual vocabulary. Because it is the most visible and concrete aspect of an interface, it typically accounts for people’s first impression of a product. Paradoxically however, the ultimate effect of style on overall usability or user satisfaction is minimal.</cite>
 
<cite>Like many forms of visual design, the Style layer is concerned with emotion, tone, and visual vocabulary. Because it is the most visible and concrete aspect of an interface, it typically accounts for people’s first impression of a product. Paradoxically however, the ultimate effect of style on overall usability or user satisfaction is minimal.</cite>
Line 107: Line 114:
 
Didn't find what you were looking for?
 
Didn't find what you were looking for?
  
Our Human Interface Guidelines are a work in progress and we need your help. If you found an area that was unclear or is not even covered in our HIG, tell us about it. You'll find everything you need on our mailing list: [mailto:kde-guidelines@kde.org kde-guidelines@kde.org] or in [http://techbase.kde.org/Projects/Usability/HIG/UI_Files our little tutorial].
+
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=
 
=Index=
Line 125: Line 132:
 
'''D'''
 
'''D'''
  
* [[Projects/Usability/HIG/Date_Time|Date and Time]]
+
* [[Projects/Usability/HIG/Date_Time_Pickers|Date and Time Pickers]]
 
* [[Projects/Usability/HIG/Dialogs|Dialogs]]
 
* [[Projects/Usability/HIG/Dialogs|Dialogs]]
  
Line 142: Line 149:
 
'''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'''
Line 165: Line 172:
 
[[Category:Usability]]
 
[[Category:Usability]]
  
<pre>----------------------------------------------legacy stuff--------------------------------------</pre>
+
 
 +
----
 +
'''Legacy Stuff'''
 +
 
 +
[[Projects/Usability/HIG/Lists_Rich_Lists|List Views]]
  
 
Please add any guidelines questions or requests to the [[Projects/Usability/HIG_Questions|HIG Questions]] page.
 
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 [http://developer.kde.org/documentation/design/ui/ KDE User Interface Guidelines] and the [[Projects/Usability/HIG/SOU_Workspace|Season of Usability HIG & Design Patterns Workspace]].
+
Also see the [[Projects/Usability/HIG/SOU_Workspace|Season of Usability HIG & Design Patterns Workspace]].

Revision as of 15:45, 16 July 2013

Contents

Structure

Conceptual Model

The conceptual model is the most fundamental aspect of the interface, describing the relationship between the interface and the outside world. The purpose of the conceptual model is to draw on the user’s past experiences so they can readily understand basic operations and accurately predict functionality.

  • Real World, Vision

Task Flow

The task flow is concerned with the manner in which users’ complete specific operations with the system. In contrast to the conceptual model, the task flow is largely dependent on the product’s technical environment.

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

Organizational Model

The organizational model describes how the system’s content and functionality are ordered and categorized. Also known as the information architecture, the organizational model encompasses both the classification scheme as well as the model of association, hierarchy versus index for example.

Behaviour

All HIGs assume that the controls referenced in the following "Implementation" sections are used. Therefore they only contain guidelines for aspects which can be changed by the developer, to keep them as concise as possible. If you feel your application needs something which the referenced standard KDE or Qt widget does not provide, do not create you own custom replacement, because it might violate best practice which is implemented in the standard widget. Instead, ask the KDE HIG team for advice on how to solve your specific problem.

Viewing and Navigation

The Viewing and Navigation layer encompasses the wide variety of behaviors and operations that allow users to navigate the interface and effect its presentation.

General navigation

Access functions

Grouping

  • Group box, Panel
  • Splitter

Complex views

  • Use a List View to show some items out of one category.
  • Tree view
  • Grids
  • If you really need to create your own widget follow the guidelines for custom controls.

Editing and Manipulation

The Editing and Manipulation layer contains the behaviors that result in permanent changes to user’s stored information. … Behaviors in this layer can often be recognized by the following traits: they result in permanent, stored changes; they require an implicit or explicit save operation; and they typically require validation of the input data.

Selection

  • Use a radio button for 1 of a few n selections.
  • Use one or more check boxes for clear options or n of a few m selections.
  • Use a list view for one or a few n of some m selections.
  • Use a drop-down list for 1 of some n selection and a combo box if users should be able to add items.
  • Use the dual list pattern for n of m selections.

Unconstrained input

  • To enter one line of text use a line edit and for multiple lines of texts a text edit.
  • Consider to provide inline editing with complex views.

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.
  • (Under construction): Numeric input with both large changes and precise control: Slider and Spin Box
  • Use Date and Time Pickers for formatted input of datum, time of day, or periods etc.

User Assistance

Interface elements that inform users of the application’s activity and status, as well as elements dedicated to user education, are all contained in the User Assistance layer. This includes online help, error alerts, and status alerts.

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

The various design decisions governing the placement and ordering of onscreen elements are expressed in the Layout layer. In addition to providing an ordered visual flow, the Layout layer also supports the Behavior tier by arranging elements in a manner that helps communicate behavior, importance, and usage.

  • Resizing
  • Default and minimal size
  • Spacing
  • Alignment & Placement
  • Do not use color as primary method of communication.
  • Icons

Style

Like many forms of visual design, the Style layer is concerned with emotion, tone, and visual vocabulary. Because it is the most visible and concrete aspect of an interface, it typically accounts for people’s first impression of a product. Paradoxically however, the ultimate effect of style on overall usability or user satisfaction is minimal.

Text

Contained within the Text layer are all the written, language-based elements of the interface. This includes the labels used to represent the organizational model, the names of the input and navigational controls contained in the Viewing and Navigation layer, and the alert messages and help text used by the User Assistance layer.

See also:

Contributing

Didn't find what you were looking for?

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



Legacy Stuff

List Views

Please add any guidelines questions or requests to the HIG Questions page.

Also see the Season of Usability HIG & Design Patterns Workspace.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal