Action Map - Improving the useability of KDE applications

What is an Action Map?

Why do I need an Action Map?

Feedback

KActionMap

What is an Action Map?

Almost every web page has a site map. According to Wikipedia, a site map "helps visitors, and search engine robots, to find pages on the site". Similar an Action Map should help the user to find actions (i.e. functions or menu items) in an application.

More concrete an Action Map is a dialog with a list of all actions (i.e. make text bold, save file or insert image) that can be performed in the application at its current state. Additionally there is a search box at the top of the list so that the user can search the list easily for a special action. The action is executed by clicking on it. Disabled actions are grayed out and cannot be clicked. The dialog is modeless so that it can always be open and the normal usage of the application is not disturbed.

The column displaying the shortcut, tells the user how s/he can access this function faster the next time it is needed. The location in the menu is not displayed, because some actions are located in toolbars which are faster to access then menus and others do not exist in menus at all. A solution how these locations can be displayed has yet to be found.

screeshot of a KDE implementation of an
actionmap

screeshot of a KDE implementation of an
actionmap

Why do I need an Action Map?

Imagine you are using a word processor. You know there is a function to insert a footnote - but you cannot remember where you can find this feature in the large menu. You now go to the Help menu and open the Action Map. Type "footnote" in the searchbox and you will find the footnote feature. You can immediately click on the feature and insert a new footnote.

Additionally an Action Map can be used to browse through all the actions of an application and see which features it does provide.

Action Maps might not be necessary for small applications as well as site maps are not necessary for small webpages. But they are in my opinion a good addition to larger applications with lot's of menu items and function. As the user can get lost easily in large menus. Along with the KHelpCenter and what's this? help Action Maps can help the user to use KDE applications more easily.

Feedback

I have some questions to the useability experts out there:

Please send me your comments. If it is useful I will continue to improve the current implementation and port it to KDE 4.

KActionMap

KActionMap is a concrete implementation of an Action Map for KDE 3.5. It is already used in KBarcode. Just download the files and add it to your application. This implementation is only proof of concept and in no way perfect or bug free at the moment!

kactionmap.cpp

kactionmap.h

To open a dialog with an Action Map from your application use the following line of code after you have included kactionmap.h:

    /* I assume that you are opening the KActionMapDlg from a KMainWindow.
     * The first argument has to be a KActionCollection.
     * The second argument is the parent window.
     */
    new KActionMapDlg( actionCollection(), this );


2006 Dominik Seichter domseichter@web.de
Thanks goes to Daniel Neuber for his ideas.