This is so much more important than people realise. The same applies to things like: what happens if you click a button, but change your mind, move your cursor off the button before you release?<p>This is a nuance that has to be implemented by the UI developer, otherwise you're essentially stuck in a multi-step process you cannot get out of, no matter how many steps you have left to change your mind about. This is mostly implemented in a bad way in custom non-native-UIs like browser JavaScript where a button mouse event might be scoped to a click regardless of when the mouse down event and the mouse up event happens.<p>Native elements have (usually trough decades of legacy development) this down to perfection (in my current OS at least), even here on HN where the "add comment" button really is just the native button, it works flawlessly. But as soon as someone tried to 're-implement' it, things go horribly wrong, and something that looks like a familiar UI element suddenly behaves completely wrong.<p>With so much time spent interacting with UI widgets, any time you have to take a moment and think about how some new thing might work differently from the millions of other times you have used it is just painful.
I have always understood hysteresis as that the response is depended on the way the current situation is reached, e.g. a memory effect of a magnet (knowing whether it came from a high or a low field). This might be something useful in UI as well, but I would not categorise the delay mentioned in the article as such.
People complaining that the hysteresis used in the article is different from the one they learned in school are incorrect.<p>To begin with, in its introduction the wikipedia page on hysteresis already says:
“Hysteresis can be a dynamic lag between an input and an output that disappears if the input is varied more slowly; this is known as rate-dependent hysteresis.”<p>Thats what the article covers— rate dependent hysteresis.<p>But the equivalence goes actually deeper!<p>Even the “magnetic” hysteresis you learnt of (but not about, or else you would not have thought to complain) is in essence a time lag phenomenon..<p>This goes quite deep, but basically its the converse of the Noether theorem that time (not just reversal, not just a sign change) invariance leads to energy conservation—- in magnetic hysteresis energy is not conserved.<p>Here is a 2011 article linked from the wikipedia that takes quite a bit of effort to try explaining magnetic hysteresis in a time dependent way.<p><a href="http://vincent.francois-l.be/VINCH_model.pdf" rel="nofollow">http://vincent.francois-l.be/VINCH_model.pdf</a>
This is great. There are so many nuances in UI design and I hadn’t considered this before.<p>Does anyone know of other resources like this that explain easily missed UI best practices?
I vaguely think that Win9x did have a parameter in the control panel for how much the mouse is allowed to move during a double-click. I made way more than one excursion to the control panel, and I remember thinking that thankfully I didn't have to adjust this kind of parameters. They likely resided in the accessibility group. But I may be mistaken altogether.