Difference between revisions of "Projects/Usability/HIG/SearchPattern"

< Projects‎ | Usability‎ | HIG
Jump to: navigation, search
(Appearance)
(2 intermediate revisions by one user not shown)
Line 7: Line 7:
  
 
== Purpose ==
 
== Purpose ==
A ''search function'' allows to generate a subset out of a big number of items on ground of a user defined pattern.  The function is essential to find matching items in case of a extended list or if the position of target(s) is unknown, as well as when bulk operations should be executed.  
+
A ''search function'' allows to generate a subset out of a big number of items on ground of a user defined pattern.  The function is essential to find matching items in case of a extended list or if the position of target(s) is unknown, as well as when bulk operations should be executed to a subset. A search operation interrupts the 'predefined workflow' and bypass core functions to a user-defined data set.
  
More text....
+
Supplemental to search is the ''filter function'' which rather reduces a given number of items than generating an output.
  
 
== Guidelines ==
 
== Guidelines ==
* Make the search result persistent. Users must not need to research after selecting or referencing an item.
+
=== Input ===
 
* Consider to allow iterative search on result lists.
 
* Consider to allow iterative search on result lists.
 
* Do not inherit artificial intelligence from users. Search operations have always be clear and comprehensible to users.
 
* Do not inherit artificial intelligence from users. Search operations have always be clear and comprehensible to users.
* Follow the guidelines on [[Projects/Usability/HIG/ProgressIndicator|delayed operations]] if the search takes longer.
+
 
* Provide paging/scrolling of results.
+
* Prefer instant over explicit search.
* Provide auto complete feature to the input based on previous operations.
+
** If the search can be performed quickly and with low resource usage, start searching as the user types.  
* Start the search process via button or when the user pressed enter.
+
** If the search requires more resources (such as computationally intensive search, reading lots of data from disk or transferring lots of data over the network), start searching only when the user presses enter or clicks the search button.
* Show the search pattern at the header of the result list (e.g. "Search results for: <Hello World>")
+
** Do not mix search types.
 +
 
 
* Show hints on how to use the search effectively.
 
* Show hints on how to use the search effectively.
 
* Do case insensitive search, unless its important.
 
* Do case insensitive search, unless its important.
 +
* Do fuzzy search by default, if applicable. That means extend the results by adding a wildcard to the item.
 
* Make the search box large enough to show at least 20 characters (at the moment: KRunner & Kicker = 24, Konqueror = 54, KCM = 33, cf. ).
 
* Make the search box large enough to show at least 20 characters (at the moment: KRunner & Kicker = 24, Konqueror = 54, KCM = 33, cf. ).
 
* Run a combined AND search when two words have been entered unless the term is quoted (e.g. Hello World vs "Hello World")
 
* Run a combined AND search when two words have been entered unless the term is quoted (e.g. Hello World vs "Hello World")
 
+
+ Wildcards
 +
=== Output ===
 +
* Make the search result persistent. Users must not need to research after selecting or referencing an item.
 +
* Follow the guidelines on [[Projects/Usability/HIG/ProgressIndicator|delayed operations]] if the search takes longer.
 +
* Provide paging/scrolling of results.
 +
* Provide auto complete feature to the input based on previous operations.
 +
* Show the search pattern at the header of the result list (e.g. "Search results for: <Hello World>")
 
== Appearance ==
 
== Appearance ==
* Search input consists of an icon, a line input to enter the search pattern, and a button to start the search. (VDG could make a proposal how it looks nice)
+
=== Input ===
 +
* Discriminate instant search from search that needs to be started explicitly by
 +
** a special decorator of a common icon. Use version a) for the first option, and b) for second one.
 +
** adding ellipsis to the inline text: 'Search...' instead of 'Search'
 +
* Search input consists of an icon, a line input to enter the search pattern, and a button to start the search. (VDG made a proposal how it looks nice; Actually, icon is not standard currently but makes sense; Make sure search icon is not mixed-up with zoom!; Omit icon because of lightweight appearance)
 
* ''Placement''
 
* ''Placement''
 
** Start search at the upper right area of your dialog (KCM and web style).
 
** Start search at the upper right area of your dialog (KCM and web style).
Line 37: Line 49:
 
** Active the control and focus it on Ctrl+F or when user clicks the icon.
 
** Active the control and focus it on Ctrl+F or when user clicks the icon.
 
** Do not use search icon anywhere else.
 
** Do not use search icon anywhere else.
 +
=== Output ===
 
* ''How to present results'' (Depends on use case?)
 
* ''How to present results'' (Depends on use case?)
 
** Highlight search results (KCM mode).
 
** Highlight search results (KCM mode).

Revision as of 15:57, 26 March 2014

Under construction.png
 
Under Construction
This is a new page, currently under construction!

Ref's:

Purpose

A search function allows to generate a subset out of a big number of items on ground of a user defined pattern. The function is essential to find matching items in case of a extended list or if the position of target(s) is unknown, as well as when bulk operations should be executed to a subset. A search operation interrupts the 'predefined workflow' and bypass core functions to a user-defined data set.

Supplemental to search is the filter function which rather reduces a given number of items than generating an output.

Guidelines

Input

  • Consider to allow iterative search on result lists.
  • Do not inherit artificial intelligence from users. Search operations have always be clear and comprehensible to users.
  • Prefer instant over explicit search.
    • If the search can be performed quickly and with low resource usage, start searching as the user types.
    • If the search requires more resources (such as computationally intensive search, reading lots of data from disk or transferring lots of data over the network), start searching only when the user presses enter or clicks the search button.
    • Do not mix search types.
  • Show hints on how to use the search effectively.
  • Do case insensitive search, unless its important.
  • Do fuzzy search by default, if applicable. That means extend the results by adding a wildcard to the item.
  • Make the search box large enough to show at least 20 characters (at the moment: KRunner & Kicker = 24, Konqueror = 54, KCM = 33, cf. ).
  • Run a combined AND search when two words have been entered unless the term is quoted (e.g. Hello World vs "Hello World")

+ Wildcards

Output

  • Make the search result persistent. Users must not need to research after selecting or referencing an item.
  • Follow the guidelines on delayed operations if the search takes longer.
  • Provide paging/scrolling of results.
  • Provide auto complete feature to the input based on previous operations.
  • Show the search pattern at the header of the result list (e.g. "Search results for: <Hello World>")

Appearance

Input

  • Discriminate instant search from search that needs to be started explicitly by
    • a special decorator of a common icon. Use version a) for the first option, and b) for second one.
    • adding ellipsis to the inline text: 'Search...' instead of 'Search'
  • Search input consists of an icon, a line input to enter the search pattern, and a button to start the search. (VDG made a proposal how it looks nice; Actually, icon is not standard currently but makes sense; Make sure search icon is not mixed-up with zoom!; Omit icon because of lightweight appearance)
  • Placement
    • Start search at the upper right area of your dialog (KCM and web style).
    • Start search at the lower left area of your dialog (Kicker and Konqueror style).
    • Show search centered in the upper area of your dialog (Dolphin and KRunner style).
  • To show or not to show:
    • Always show search input. Do not hide the availability from users.
    • Show input control only when users start the search.
    • Hide the control in case the search is not the primary function of the app, but show a small button which indicates clearly the availability of the function.
    • Active the control and focus it on Ctrl+F or when user clicks the icon.
    • Do not use search icon anywhere else.

Output

  • How to present results (Depends on use case?)
    • Highlight search results (KCM mode).
    • Hide non-matching results (Kicker mode).
    • Generate a new list that matches the search pattern (KRunner mode).

Best Practice


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