Wednesday, June 4, 2008


Tooltips are generally implemented such that if the user keeps their cursor in the same pixel location (or, sometimes, within a tolerance of a pixel or two) for a predetermined length of time, the tooltip appears. Sometimes they're optimized such that if a tooltip is visible and you move from one thing with a tooltip to another, the second one instantly appears. Still, I wonder if there's a better method.

One thing that seems like it would be better would probably require more input from the mouse—either in more precision, or greater polling frequency. It would probably require OS support, not just program code. Instead of basing it on pixel changes, monitor the velocity and acceleration of the mouse pointer. You wouldn't need an accelerometer; just analyze the existing mouse inputs to calculate the rate of change. As soon as the acceleration reaches a certain low threshold (near zero), show the tooltip. As I see it, this would make it so that if a person who uses the mouse in very quick motions like I do stopped it on something, the tooltip could immediately appear instead of having to wait. You wouldn't want this behavior using the standard cursor tracking model because there would be tooltips popping up all over as you moved the mouse, but if you stop the mouse over a control, you either want to click it, or you want a tooltip.

It might turn out that that implementation would be really annoying. You'd see more tooltips than you do today, and that's the point. But I'd like to see it tried out.

No comments: