14 Feb 2001 pcburns   » (Journeyer)

I have been reading a few Computer-Human Interface books by Bruce Tognazzini and Jef Raskin. I want to learn how to make good user interfaces.

An intersting idea came to me after reading about Fitt's Law. Fitt's Law helps to quantify the time that it takes to target an object on the screen with a mouse. Basically, it will be easier and faster to hit the object if the object is large and close to the current mouse position. Both Raskin and Tognazzini site the example of the Macintosh menu bar which is located at the top of the screen. It is faster to use since the mouse stops at the top of the screen, making its effective size is much larger.

I've been trying think of ways to exploit this property further. Many unix desktops have virtual screens. Often you can switch virtual screens by simply moving off the edge of the screen. I have found this a little disconcerting. Often the scrollbar is right on the edge of the screen - if you don't take car you can miss the scrollbar and end up on a different virtual screen. Some window managers fix this problem by employing "friction". If you move the mouse off the edge of the screen the virtual screen does not change straight away, but if you keep it off the screen for a configurable time the virtual screen will change to the next one.

I thought about the way the mouse operates. Move the mouse to the point corresponding to 0,0 on your mouse pad and the mouse cursor will move to the point 0,0 on the screen. You can effectively scale the distance you move the mouse on the mouse pad to the distance it moves on screen by modifying the speed of the mouse. The fast the mouse the smaller the distance you need to move the mouse to move the pointer the same distance on screen.

Some games make it easier to target an object by giving the objects "gravity". If you move the mouse close to an object the game will move the pointer so that it targets the object.

Many desktops give the objects on the desktop a 3D look. Perhaps this look could be exploited in combination with Fitt's Law. Instead of treating the desktop as a flat plain think of it as populated with ridges and bumps and plateaus. The mouse should move the pointer fastest over flat surfaces. Moveing over a slope will cause the pointer to move slower, it has to move further after all. Consider moving the mouse out of an application window. It will take a few more rolls of the mouse to move the pointer over the edge of the window. I think this sort of idea has been tried out with "force feedback mice" but I have never used one so I'm not sure how effective it is.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!