From kfm-devel Fri Mar 30 12:21:40 2001 From: Torsten Rahn Date: Fri, 30 Mar 2001 12:21:40 +0000 To: kfm-devel Subject: PLEASE READ: KControl-Guidelines X-MARC-Message: https://marc.info/?l=kfm-devel&m=98595799707280 As KDE2.x becomes more and more complex it becomes more difficult to avoid that KControl turns into a Graphical Registry. To improve this situation I put together some guidelines and tips which make it easier to create good dialogs. Everyone who changes something in the KControl-Modules: It's important that you take the five minutes to read this stuff! It's only five minutes of your time and it will help a lot to get a KControl which is easier to use! Thanks for your attention. Tackat PS: I will post this every two weeks as a reminder in an updated version. If you feel that there's something missing then send me an e-mail and I will add your suggestion. =========================================================== 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.