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.

+

+

[[/About|Learn more about the philosophy behind the KDE HIG]]

+

= Structure =

= Structure =

+

<div style="display: none;">

== Conceptual Model ==

== Conceptual Model ==

−

<cite>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.</cite>

* Real World, Vision

* Real World, Vision

== Task Flow ==

== Task Flow ==

−

<cite>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.</cite>

<cite>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. </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>

=== General navigation ===

=== General navigation ===

* [[Projects/Usability/HIG/Dialogs|Dialogs]]

* [[Projects/Usability/HIG/Dialogs|Dialogs]]

Line 33:

Line 41:

** [[Projects/Usability/HIG/Keyboard_Shortcuts|Keyboard Shortcuts]]

** [[Projects/Usability/HIG/Keyboard_Shortcuts|Keyboard Shortcuts]]

=== Grouping ===

=== Grouping ===

−

* Group box, Panel

+

* Use a [[Projects/Usability/HIG/GroupBox| group box]] to arrange associated controls.

−

* Splitter

+

* 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 ===

=== Complex views ===

−

* [[Projects/Usability/HIG/Lists_Rich_Lists|List Views]]

+

* Use a [[Projects/Usability/HIG/ListView| list view]] to show some items out of one category.

−

* Tree view

+

* Use a [[Projects/Usability/HIG/TreeView| tree view]] to show items with a single, natural, hierarchical categorization.

* 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 ==

−

<cite>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. </cite>

=== Selection ===

=== Selection ===

−

* Use a [[Projects/Usability/HIG/Radio Buttons|radio button]] for 1 of a few n selections.

+

* 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 n of a few m selections.

+

* 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/ListView|list view]] for one or a few n of some m selections.

+

* 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/Slider|Slider]] for arbitrary changes within a defined range.

−

* [[Projects/Usability/HIG/Date_Time|Date- and Time-Picker]]

+

* 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 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>

* [[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 ==

−

<cite>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.</cite>

* Resizing

* Resizing

* Default and minimal size

* Default and minimal size

* Spacing

* Spacing

−

* Alignment & Placement

+

* 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.

−

* Color

+

* 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>

== Text ==

== Text ==

−

<cite>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.</cite>

* Language localizations

* Language localizations

* Static text

* Static text

Line 103:

Line 116:

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].

+

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.

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.