Gnome Article on UI Design on /.

Torsten Rahn tackat at kde.org
Tue Apr 23 17:11:24 BST 2002


Am Dienstag, 23. April 2002 15:47 schrieb Alexander Kellett:
> On Tue, Apr 23, 2002 at 03:03:37PM +0200, Thomas Zander wrote:
> > On Tue, Apr 23, 2002 at 02:30:15PM +0200, Oswald Buddenhagen wrote:
> > > On Tue, Apr 23, 2002 at 12:13:05PM +0200, Alexander Kellett wrote:
> > > > Which reminds me. I'd agree here but for one thing, windows has a
> > > > nice gui regedit program. How about adding one to KDE but going one

Sorry, but the regedit is for sure one of the worst things Microsoft has ever 
written.
The regedit is nice for people who think that one can solve usability-issues 
by not caring for them at all (i.e. for programmers who are lazy when it 
comes to usability).

From my experience I have to agree with  "Aaron J. Seigo" 
<aseigo at olympusproject.org> who said:

> there are indeed some options where this is probably the best thing. but it 
> would be better IMO to try two other approaches first:
> 
>  o make the existing configuration options more accessable through better 
> layouts, descriptions, simplifications etc ...
>
>  o move the more esoteric settings into an "Advanced" tab or dialog

In fact I have posted some "KControl Guidelines" to create good dialogs some 
months ago (also attached):

http://lists.kde.org/?l=kfm-devel&m=98595799707280&w=2
 
If programmers would care a bit more about usability - even more about some 
stuff which they regard as "trivial" we'd have a much less cluttered kcontrol 
(adding features is more fun of course and I understand that this is what KDE 
is mostly about).

Better concepts for kcontrol which would improve usabilty would include a 
"more sexy", google-like search-based "kcontrol" (instead of the current 
hierarchcal one) which offers dynamically created tabs according to the 
settings the user is searching for. But this stuff is certainly a huge amount 
of work.  

-- snip --
 
Guidelines for Creating KControl Modules.
===============================

As KDE2.x becomes more and more complex it becomes more difficult to avoid 
that KControl turns into a Graphical Registry.

Our biggest enemy is what I call the "cockpit-dilemma" which keeps especially 
newbies from using our software:

- If people think of the cockpit of a plane then they imagine dozens of 
controls spread all over the control-panel. Of course only advanced users 
(i.e. the pilot)  can "easily" control such a crowded-looking system because 
they know where each control is and what it does. 

- machines which are designed for the common user (washing machines, tv-sets 
etc.) are usually kept more simple: there is a low number of buttons for the 
most common tasks exposed on the front of the machine ("start, stop, 
channel/program #1, #2, etc. ..").
To still allow advanced actions (like changing frequencies per channel e.g.) 
these settings can be controlled in a more hidden place (on the back of the 
machine or behind a tiny semitransparent/labeled door on the front of the 
machine).

While the cockpit-solution can be used very fast by the advanced user it 
guarantees a horrible experience for the newbie: Most people who are not very 
used to computers will react in one way when seeing such a cockpit-dialog:
"It looks complicated. I don't understand it. I'm too stupid. I can't work 
with this.".

To avoid that people react this way we have to follow the second approach:
The user has to be _GUIDED_ by the dialog and it must be possible to _EXPLORE_
the possibilities of configuration step by step:

Tips:
====

*** Group your items in groupboxes. Arrange your items / groupboxes in a way 
that looks *simple*.

Remember: In many cultures people read from left to rigth and from top to the 
bottom. (For cultures where the situation is different the toolkit has to 
make sure that things are arranged in a proper way ....).
This means that settings on the bottom shouldn't affect settings on the top
of the page.
Also keep in mind that groupboxes inside groupboxes are bad style.


*** the number of items/groupboxes should be kept low.

How many I's can be seen here:
IIIIIIIIIIIIIIIIIIIII
As you can see it's not easy to "get" the situation unless these items are 
being arranged in a different way:
IIII IIII IIII IIII IIII I
It's very easy for the human brain to deal with up to 4 items so try not to 
use more than four groupboxes on one dialog-page. Inside this groupbox the 
number of items should also be kept as low as possible (ideally 3-4). Larger 
numbers of items can't be counted easily and don't look very simple.

*** More advanced options should be hidden!

The most important settings should be very easy to find.
Less important or more special items can be "hidden" on different pages. That 
way the user can "explore" the situation step by step.
Usually newbies have much more basic needs. Therefore it is necessary to
put more important settings in more prominent places. Once the user gets more
advanced he will have more specific needs. Such users are able to find the 
settings even if they are being "hidden". This way the user can "explore" the 
interface.

- Tabs: The tab with the most general stuff should be put on the first (left) 
tab.
Other stuff should be grouped by topic from the left to the right in 
decreasing importancy. Don't use Tabs inside Tabs (bad style)!

- "Customize"-button: A small number of settings which are probably
changed only very seldomly ("finetuning") should go into a dialog which pops 
up when pressing a button ("Customize", "Tuning", "Advanced").
Such buttons should only contain one word.

*** The whole kcontrol dialog should fit on a 800x600 screen using 
default-settings _without_ using scrollbars.

Therefore:
- Don't use scrollbars
- Make sure that textstrings are as short as possible and still easy to 
understand.

Making the textstrings short is important to make sure that the dialogs look 
good in every language.

If you use a word over and over again in a groupbox (like "Add" or "Setup") 
then there's probably something wrong: Mentioning them once on the whole 
dialog should be enough: Often you can do this by changing the Subject of the 
Groupbox in a way that already implies these terms instead. In most cases 
terms like "setup" or "configure" are redundant as "configuring" or "setting 
up" is what kcontrol is about anyways.


Greetings,
Tackat




More information about the kde-core-devel mailing list