Difference between revisions of "Projects/Usability/HIG"

Jump to: navigation, search
(HIG moved to community)
 
(49 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= Introduction =
+
{{ Moved To Community | KDE_Visual_Design_Group/HIG }}
 
 
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 =
 
<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 ==
 
=== Access functions ===
 
* Apply a [[Projects/Usability/HIG/Menu_Bar|menu bar]] to every standard application.
 
* Try to omit the [[Projects/Usability/HIG/StatusBar| status bar]] from your application.
 
* Provide a [[Projects/Usability/HIG/ContextMenu|context menu]] for controls with implicit functions.
 
* Provide a [[Projects/Usability/HIG/Toolbar|toolbar]] for frequently used 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]].
 
* Follow the guidelines for [[Projects/Usability/HIG/Dialogs|dialogs]] for secondary windows.
 
 
 
=== Grouping ===
 
* Arrange associated controls by using a labeled [[Projects/Usability/HIG/GroupBox| group box]] or an unlabeled [[Projects/Usability/HIG/GroupBox| frame]].
 
* 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 ===
 
* 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 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 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 inform 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 ==
 
* Place controls carefully with proper [[Projects/Usability/HIG/Placement|size and space]] between.
 
* 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.
 
* Choose icons from the Oxygen icon set and follow guidelines on [[Projects/Usability/HIG/IconDesign| icon design]].
 
 
 
== Style ==
 
== Text ==
 
* Keep [[Projects/Usability/HIG/Wording|wording]] consistent and easy to understand.
 
* Take care about [[Projects/Usability/HIG/localization| localization]] of your project.
 
* Use [[Projects/Usability/HIG/Ellipsis|ellipsis]] to label functions which require user’s input.
 
* Do not apply [[Projects/Usability/HIG/Capitalization|capitalization]] except for titles and in case of sentence style.
 
* Static text
 
* [[Projects/Usability/HIG/Labels|Control Labels]]
 
 
 
=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.
 
 
 
= See also =
 
* [http://techbase.kde.org/Projects/Usability/HIG/Tablet/Index| KDE HIG for Plasma Active]
 
* [http://techbase.kde.org/Projects/Usability/HIG/Netbook/Index| KDE HIG for Plasma Netbook]
 
* [http://hcibib.org/sam| Guidelines for Designing User Interface Software (Smith & Mosier, 1986)]
 
* [http://msdn.microsoft.com/en-us/library/windows/desktop/aa511258.aspx| Microsoft Windows User Experience Interaction Guidelines]
 
* [https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html| Mac OS X Human Interface Guidelines]
 
* [https://developer.gnome.org/hig-book/stable/| GNOME Human Interface Guidelines (v2.2.3)]
 
* [http://elementaryos.org/docs/human-interface-guidelines| elementary OS HIG]
 
* [http://developer.android.com/guide/practices/index.html| Android User Interface Guidelines]
 
 
 
= Legacy stuff =
 
** [[Projects/Usability/HIG/KNS|KNewStuff Button Labels]]
 
* [[Projects/Usability/HIG/Exclamation_points|Exclamation Points]]
 
 
 
[[Category:Usability]]
 

Latest revision as of 11:26, 4 August 2016

This page is now on the community wiki.


This page was last edited on 4 August 2016, at 11:26. Content is available under Creative Commons License SA 4.0 unless otherwise noted.