Comment 36 for bug 239462

Revision history for this message
In , Silas-mozilla (silas-mozilla) wrote :

Normally a tooltip will appear below the mouse pointer, so it will not obscure the *current* mouse position, and if the user repositions the mouse to point to a part of the object that's underneath the tooltip, then this mouse movement should pop down the tooltip as per comment 33, hence allowing clicking on the part of the object that was obscured by the tooltip.

In this case (tooltip can fit below mouse pointer), I see nothing wrong with then re-popping-up the tooltip at a new position if the mouse were to hesitate at its new position. Waiting for the mouse to leave and re-enter the object may be awkward in two ways: (1) the object may be larger than the viewing area, (2) the object's boundary might not be visible. Therefore if the user wants the tooltip again then the only sure strategy to get it back would be to move the mouse out of the browser window and back in. Re-popup at new mouse position would be better than this (although you might want a slightly longer timeout before re-popup).

If there is not enough screen space for the tooltip to appear below the mouse pointer, then I would suggest trying to position it above the mouse pointer, or to the left or right of the mouse pointer, or something, i.e. try as hard as you can to position the tooltip such that it does not obscure what the mouse is currently pointing at. That way, if the user wants to point at something that's underneath the tooltip, they first have to move the mouse pointer anyway, and as soon as they do this the tooltip disappears.

But what if the tooltip is so absolutely huge that it MUST obscure what the mouse is currently pointing at, because it can't be positioned in any other way? In this case, automatic re-popup is NOT helpful because it will keep getting in the way of whatever you are trying to point at. And it would certainly not be helpful to use the logic from the Microsoft Windows common controls DLL, which appears to be "pop down if mouse pointer happens to be over the tooltip", which can lead to large tooltips flashing rapidly on and off (especially when you're working in giant print i.e. high DPI setting) - the tooltip pops up, the computer realises the mouse is now on top of the tooltip, so the tooltip pops down, then it pops up again, and so on. It seems Windows programmers try to avoid this situation by trying to make sure that the tooltip can definitely fit to the right or left of the mouse (by truncating its contents if necessary), but sometimes the programming of this isn't quite right and the tooltip ends up being just a bit too big and it obscures the mouse and starts flashing.

Perhaps, if the tooltip is very large, then we should wait for a longer timeout before re-popup if the mouse has not left and re-entered the object. This means re-popup is still possible without the user having to know where the object boundaries are, but they still have time to look at the object underneath and point the mouse at things before the tooltip comes back.

Another idea would be to press Escape to pop down the tooltip. Especially if the tooltip is obscuring the whole screen - it might not be obvious that the mouse has to be moved to pop it down (especially if the user is used to software that does not pop down the tooltip while the mouse cursor is over it). Many users know that "Escape" means "get me out of here", and I have found myself instinctively pressing Escape to try to pop down nearly-full-screen tooltips in some programs (it didn't work of course). If Escape is pressed then the tooltip should stay down for a long time before re-popup if the mouse has not left the object.

So I suppose:

1. Pop up the tooltip when the mouse is held still for a short timeout T1.
2. Try to position the tooltip so it does not obscure the current mouse position if at all possible.
3. Pop down when mouse is moved.
4. If mouse leaves the object and re-enters it, go back to step 1. Otherwise, re-popup the tooltip if mouse is held still for a slightly longer timeout, T2.
5. If the tooltip is big, make T2 longer.
6. (Optional) If Escape is pressed, pop down the tooltip and set T2 to a very long (but not infinite) time.
7. (Optional) Add a hotkey to "show tooltip again right now" (which effectively sets T2 to 0 temporarily).

8. (Optional and low priority) : Add a "tooltips are sticky" setting - if this is set then tooltips do not pop down when the mouse is moved within the object or toward or within the tooltip. This would allow for users who need to move the mouse over the text they are reading (as an aid to tracking), and users of dictionary programs that pop up a definition for the word under the mouse (they might want to point at words in the tooltip). They would then need to press Escape to get rid of the tooltip (or maybe give it a close box), unless they move the mouse right out of the object and back in.