Rendered at 20:13:51 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
ProxCoques 23 hours ago [-]
It will never cease to amaze to me that Apple (under Jef Raskin who also wrote about this in The Humane Interface) observed and fixed problems with interactions like this in SYSTEM 6 in like 1993 or something - only for the same problem to have to be re-descovered and re-fixed decades later.
vachina 10 hours ago [-]
This is also how tooltips in Windows XP behave too. Tooltips fade in on cold hover, and subsequent hovers show the tooltips with zero delay.
I like how these things are "figured out" and then fleshed out bit by bit like they're some kind of innovation. Software industry in a nutshell.
pastel8739 17 hours ago [-]
Because every single application rebuilds their own operating system
baxtr 14 hours ago [-]
And mail client!
amelius 11 hours ago [-]
And LISP.
WorldMaker 4 hours ago [-]
Relatedly, my immediate reaction was "tooltips on logos? Just use alt attributes and browser native tooltips, stop reinventing wheels that are already decently handled in HTML".
projektfu 19 hours ago [-]
Raskin left Apple in 1982.
twelvechairs 10 hours ago [-]
Even more amazing!
(Raskin left before even the original macintosh he helped lead. He also opposed the use of the mouse)
hinkley 20 hours ago [-]
Chesterton's Fence.
Why on earth do we need this thing here?
Oh, that's why.
baxtr 5 hours ago [-]
In its most concise version, Chesterton’s Fence states the following:
“Do not remove a fence until you know why it was put up in the first place.”
silon42 6 hours ago [-]
Rewrite will be better /s
19 hours ago [-]
nancyminusone 6 hours ago [-]
everyone hates reading
brixie 24 hours ago [-]
This looks it's describing the same technique as the last example in https://emilkowal.ski/ui/you-dont-need-animations (and that whole post is worth a read, I think, if you found this interesting).
It's such a small detail that I wouldn't have otherwise noticed (because I don't build animations, so it doesn't cross my mind), but now that I know about it, I think about it all the time.
chrismorgan 13 hours ago [-]
The example shown at the top is really bad.
“Before (Without the delay of 200ms)” shows obvious delay in appearance. I think this is because of the very inappropriate fade-in.
“After (With the delay of 200ms & instant tooltips)” doesn’t show the instant behaviour at all, only one tooltip.
>> Hysteresis is the dependence of the state of a system on its history. For example, a magnet may have more than one possible magnetic moment in a given magnetic field, depending on how the field changed in the past.
How is this different from the observation that, say, a non-magnetic iron ball may have more than one possible velocity in a given gravitional field, depending on whether it was recently thrown upward or dropped from above?
rcxdude 8 hours ago [-]
With the ball in the gravitational field the state of the system is entirely captured by the ball's position and velocity. With hysteresis there is some extra state in the system that also affects the behaviour. The general pattern you see is that if you push the system from state A to B, then from B back to A, then it will take a different path in each direction. (you can of course create mechanical systems that have this property as well, it's not specific to magnetic fields, its just that magnetic materials tend to have this kind of state-storage effect).
womble2 11 hours ago [-]
A ball dropped near the earth's surface will always fall towards the centre of the earth at ~9.81m/s^2 no matter what it has done previously.
A chunk of iron put into a 1μT magnetic field will behave differently depending on what other magnetic fields it has been in recently.
thaumasiotes 9 hours ago [-]
> A ball dropped near the earth's surface will always fall towards the centre of the earth
How exactly does this address "whether it was recently thrown upward or dropped from above"?
A ball in a given location will do something unpredictable if you have no information about its past. Is that hysteresis?
nkrisc 8 hours ago [-]
You don’t need information about its past. Everything you need to know to predict its future state is contained in its current position and velocity at the moment you measure it.
yummybrainz 7 hours ago [-]
Is there no measurable quantity in the current state of a magnetized ball that would predict its behavior in a magnetic field then?
I'd be surprised if that were the case: seems like it'd violate some sort of "locality", where the future should depend entirely on the present state.
Is it just that there's unidentified present state that's perhaps more easily characterized by knowing the history? Or is it somehow unidentifiable in principle?
PowerElectronix 7 hours ago [-]
Yeah, the current magnetization of the sphere carries all the history of the magnetic fields it's been in in its value.
The hysteresis in the material only means that if you apply 1T to it to magnetise (supposing the ball starts with zero magnetisation) it and then apply 0T to demagnetise it, the remanent field in the ball would be like 0.4T due to hystetesis, you need to apply something like -0.4T to leave it as it started.
ErroneousBosh 8 hours ago [-]
If it was recently thrown upward, it is either still travelling upwards away from the centre of the Earth, or it is falling downwards towards the centre of the Earth.
So its past is kind of irrelevant. At some point if nothing is supporting it, it will fall towards the centre of the Earth.
This is just high school physics.
12 hours ago [-]
Yokohiii 11 hours ago [-]
Hysteresis is nonlinear.
thaumasiotes 9 hours ago [-]
And?
skrebbel 11 hours ago [-]
Umm, either I'm misunderstanding or this holds for nearly every UI everywhere, no? Like if I click "reply" on HN I'm moved to the screen I now type this comment in. That means my current state depends on history, too, no?
anonymars 6 hours ago [-]
If you click "reply" and copy the resulting link, there is no difference in behavior if you go straight to that link vs clicking "reply" to get there instead
Think of a state diagram: "you are at the reply screen" is one and only one state. "The tooltip is shown" is a behavior of more than one state, with different paths to get to those states
compiler-guy 1 days ago [-]
I greatly appreciate this attention to detail, and there isn't enough of this in the world. For example, in Visual Studio popups on hover happen so fast you can barely select anything, or you end up clicking on the popup instead of selecting a word.
My favorite is the info icons that show a tooltip on hover, but if you click them, they disappear the tip if it’s showing and never show it if it hasn’t appeared yet.
gblargg 1 days ago [-]
Opus Magnum suffers from this. It feels like punishment for taking the most direct route to get the cursor where I want it.
wang_li 1 days ago [-]
If there is a primary UI element on screen that the user can interact with and moving the mouse towards that causes a secondary, alternative, UI element to appear, the second element needs an active modifier key to bring it up. Tooltips and such are total trash and get in the way of usability. If you have something important then put it on the screen to begin with don't have it randomly jump in front of the user who is already mid action with something else.
sanj 5 hours ago [-]
I went one step further: there's a really annoying behavior in Google Workspace where a giant popup appears if you linger over any account.
I ran into the same problem about 20 years ago when implementing hover-based dropdown menus on a website. It was only about 10 lines of JS and a couple global variables but I was the only person who understood it. :-P
(These days I would have included more comments.)
Naturally, there was a fallback to pure CSS menus, because we weren't barbarians.
altacc 8 hours ago [-]
> only about 10 lines of JS
Ah, the good old days when we wrote JS function to do something, or copied from dHTMLZone. These days the first 10 lines of JS is loading hundreds of lines of JS libraries. (Yep, I'm an old man yelling at clouds!)
dylan604 1 days ago [-]
what did the JS provide that the CSS solve wasn't the only solve?
jcranmer 1 days ago [-]
Not OP, but my guess is things like timing delay--20 years ago, CSS animations and transitions weren't a thing yet, especially since 20 years ago also puts us in the era of IE6 being a major browser.
phyzome 8 hours ago [-]
Exactly. And on the browser front we had to contend with not only IE6, but IE5.5 on Mac, which was its own special beast.
I wish the Teams emoji/reaction popup would not come up so often.
I have to intention place my mouse cursor somewhere that won't trigger it. I don't need to react to every message. I'd rather be able to read them without something blocking them.
hedora 7 hours ago [-]
That sounds like engagement hacking. Someone’s promotion packet probably brags about the number of emojis sent.
On a related note: I refuse to install teams, and have never seen an emoji popup in the web video chat thing.
gazook89 6 hours ago [-]
Two things:
First, it’s funny how browsers finally get to the point where good html tooltips can be done with just HTML/CSS via Anchor Positioning and Popover APIs, eliminating the need for JS for tooltips. But then there is a “one more thing” that pulls JS right back into it.
Second, I think the tooltip context could be applied to “tooltip groups”, so it’s not a check to see if the whole page is “warm”, but whether a group is warm.
k__ 12 hours ago [-]
I'm always amazed by solutions for user interactions.
I once built a Bomberman clone that had control issues.
The first iteration of the controls were clunky, because I only checked if a player was touching a block in the direction they wanted to move and if there was, I reset the position.
Move down, hit block, stop.
After a bit of experimenting I checked if a player was halfway behind or ahead of a block and added perpendicular motion after resetting the position. That way the player would glide around the blocks.
Move down, hit block, stop, move left or right until moved around the block.
That change alone made the game 100x more fun.
Gravityloss 10 hours ago [-]
In FPS maps like Quake you only realized how much invisible clip blocks the map makers put in once you play an amateur map that doesn't have them. You hit things, get stuck and can even get crushed and die. Or you can try and play an early version of some popular multiplayer map that doesn't have them and it's way less playable.
A lot of new creators of course will not believe you if you tell you have to do these affordances. I once tested a person's multiplayer map where a door had a central lip that crushed you if you entered off-center. I told them that it should be fixed, but the answer was "you should always go through doors through the center". It's some sort of very enticing idea of purity. "My map will only have real architecture and no affordances." In the end it will self correct.
MachineMan 6 hours ago [-]
tooltips are important. So important I think they need a dedicated shortcut key, because 1 key to speed up your entire workflow forever and lower the learning curve of new software is worth it. 1 key to highlight all elements with tooltips at the same time, then hoover over it. No delays, no searching and they need to explain concepts beyond a few words so you can get rid of the entire help manual also.
doctor_phil 14 hours ago [-]
Wouldn't it make sense to use mouse movement for this. Display the tooltip only if the cursor is not moving (same position two frames in a row).
xxs 13 hours ago [-]
a rather poor idea - esp. the frame part, mouse movement is not related to the display frame (rate). The latter can be rather high, e.g. 240Hz which is 8ms. Having a set delay and be in the boundaries (and not leaving it) is a significantly easier solution and easier to test too.
Overall the delay in tooltips (and configurable) has been a feature since the 90s (could set the delay in millis in some UI frameworks)
forestrywat 14 hours ago [-]
Tooltips pop up in many cases where there's no more being used. Tabbing through items, for example.
maya335 13 hours ago [-]
[flagged]
cbondurant 7 hours ago [-]
I think I can tell just how good a design this is by the fact that the moment I interacted with the demo it just felt right. To the extent that I had to focus harder to really recognize that it was doing exactly as described.
Truly, good design is design that goes unnoticed.
goda90 1 days ago [-]
What about using mouse velocity? If the mouse is changing position at a certain rate, don't show the tooltips.
jareklupinski 1 days ago [-]
i only show tooltips if you wiggle the mouse cursor over an element
thoughtbefore 22 hours ago [-]
On a Catholic church site I designed you have to do the cross pattern with your mouse and say 3 Hail Marys to see the tooltip.
There is no contact form. Only a Confession Textarea
kwarcode 18 hours ago [-]
At least the cookie popup comes with wine
Terr_ 12 hours ago [-]
Hold up, we've got to remember our recursive acronyms here: "WINE Is Not a Eucharist".
bgro 5 hours ago [-]
Am I the only one who doesn’t like things popping up, sliding in, expanding and contracting and lazy loading trash website design?
How do you think tooltip hover works on mobile?
Why do we need to explain what a thing is or does on every site? Are JavaScript devs seeing video games and the key takeaway is everybody loves the tutorial where they’re told W moves forward? Or are they doing wacky JavaScript devs stuff like making pageup forward because it contains word “up” so fixed another bug. Then patting themselves on the back.
Just display the text information. Let me print it. Use consistent designs. Don’t intercept my clicks.
I could do an hour long standup rant just about how you guys need to STOP intercepting my clicks. In fact I’ll narrow it down to just Microsoft. They continuously find new ways to block and obstruct clicks. Once windows toast notifications got mostly fixed they reinvented toast notifications in yet another parallel duplicate feature with Teams toasts that spawn back to back to block critical button clicks.
I can’t believe even Apple has let this slip and iPhone is also subject to click blocking.
What are the rest of you devs doing all day?
kazinator 17 hours ago [-]
Basically, have a global temperature. When the pointer is in something that has a tooltip, the temperature rises. Otherwise it cools (possibly at a different rate). A tooltip is shown only when the pointer is in bounds, and the temperature is above a certain threshold.
amelius 13 hours ago [-]
Even with that fix, the UX is still broken on touchscreens ...
aequitas 10 hours ago [-]
To bad apple abandoned force touch. Would be nice to drag your finger over the buttons to see the tooltips and push down harder to actually push the button. With haptic feedback of course so you feel the edge of the button, like the magic touchpad does for clicks.
Prydown 18 hours ago [-]
Windows taskbar has done this forever and I never once noticed it consciously. Good catch.
jtrn 10 hours ago [-]
Tooltip are useful, but i usualy avoid them since they dont work well with touch devices. Web-dev primary tho.
self_awareness 23 hours ago [-]
Hilarious. Web devs discovering UX from Win95. What's next, 3d buttons?
tgv 15 hours ago [-]
MacOS had it even earlier. I think it's because there's not a mature UI framework out there. They come, have their moment in the spotlight, and are replaced. There's also a ton of them. And they are often written by a very small group of people without deeper understanding of ergonomics, and don't live long enough to get this level of attention. You should be glad if it still gets bug fixes after 2 years.
ProxCoques 23 hours ago [-]
I know right? It's like interaction design came and went over a period of 30 years and now we're back to the beginning again.
quacked 21 hours ago [-]
I spend a lot of time seething at how poorly modern software interaction is, and I've come to the belief that they basically solved most of the window-based GUI computing interactivity problems by around XP, and have just been gutting them since then.
My three most-hated modern trends
- Disappearing scroll bar with content that you have to scroll for
- Pills going across the top of the screen that are "most-used" filters instead of a real filtering menu
- Clickable text and non-clickable text appearing the same. I mean come on. Who the fuck is designing these things? That's the one I can't wrap my mind around. How can a self-respecting programmer put out a UI where the display and clickable elements look exactly the same? What are we doing man
nxc18 20 hours ago [-]
I think the real problem is we don’t have a native-quality UX toolkit on the web - the built in controls are just horrible. So every app has to reinvent the wheel from scratch, or use one of a few hundred (thousand) web component libraries that have all also had to reinvent the wheel from scratch (I guess a div and some text rendering isn’t scratch per se but you get my point)
thaumasiotes 18 hours ago [-]
Well, Microsoft was interested in making it easy to develop Windows applications, and also in making it easy and pleasant to use Windows applications. They had reason to invest in learning how that could be done and in writing utilities that would let you benefit from their knowledge; doing that made more money for them.
Browsers are different. They don't really benefit from being written for, or from being used. This seems like enough to explain the difference. They provide some functionality, and giving your users a good experience is your problem, not theirs.
I feel like I've seen complaints that Apple has forgotten things it already knew about how to design a usable interface; that wouldn't be explained by this model.
MathMonkeyMan 12 hours ago [-]
It's phones. Nobody uses computers anymore (for some statistical definition of "nobody"). There's no pressure to make precise and consistent UIs because poke poke poke poke.
actionfromafar 7 hours ago [-]
You forgot swipe up down, down down, double tap, left, up.
tiborsaas 8 hours ago [-]
Yes, carmakers are discovering 3D buttons, ackchyually
I like how these things are "figured out" and then fleshed out bit by bit like they're some kind of innovation. Software industry in a nutshell.
(Raskin left before even the original macintosh he helped lead. He also opposed the use of the mouse)
Why on earth do we need this thing here?
Oh, that's why.
“Do not remove a fence until you know why it was put up in the first place.”
It's such a small detail that I wouldn't have otherwise noticed (because I don't build animations, so it doesn't cross my mind), but now that I know about it, I think about it all the time.
“Before (Without the delay of 200ms)” shows obvious delay in appearance. I think this is because of the very inappropriate fade-in.
“After (With the delay of 200ms & instant tooltips)” doesn’t show the instant behaviour at all, only one tooltip.
I think there was also an article about it on The Old New Thing, but I can't seem to find it anymore.
Find modern examples by Googling "menu safe triangle." Here's one from 5 days ago https://www.framer.com/blog/cursor-trajectory/
> I asked the Framer Agent to fix it, and within minutes it had built and applied what I now call trajectory-based menu aim
https://en.wikipedia.org/wiki/Schmitt_trigger
How is this different from the observation that, say, a non-magnetic iron ball may have more than one possible velocity in a given gravitional field, depending on whether it was recently thrown upward or dropped from above?
A chunk of iron put into a 1μT magnetic field will behave differently depending on what other magnetic fields it has been in recently.
How exactly does this address "whether it was recently thrown upward or dropped from above"?
A ball in a given location will do something unpredictable if you have no information about its past. Is that hysteresis?
I'd be surprised if that were the case: seems like it'd violate some sort of "locality", where the future should depend entirely on the present state.
Is it just that there's unidentified present state that's perhaps more easily characterized by knowing the history? Or is it somehow unidentifiable in principle?
The hysteresis in the material only means that if you apply 1T to it to magnetise (supposing the ball starts with zero magnetisation) it and then apply 0T to demagnetise it, the remanent field in the ball would be like 0.4T due to hystetesis, you need to apply something like -0.4T to leave it as it started.
So its past is kind of irrelevant. At some point if nothing is supporting it, it will fall towards the centre of the Earth.
This is just high school physics.
Think of a state diagram: "you are at the reply screen" is one and only one state. "The tooltip is shown" is a behavior of more than one state, with different paths to get to those states
I wrote an chrome extension to block them: https://chromewebstore.google.com/detail/google-workspace-ho...
(These days I would have included more comments.)
Naturally, there was a fallback to pure CSS menus, because we weren't barbarians.
Ah, the good old days when we wrote JS function to do something, or copied from dHTMLZone. These days the first 10 lines of JS is loading hundreds of lines of JS libraries. (Yep, I'm an old man yelling at clouds!)
I have to intention place my mouse cursor somewhere that won't trigger it. I don't need to react to every message. I'd rather be able to read them without something blocking them.
On a related note: I refuse to install teams, and have never seen an emoji popup in the web video chat thing.
First, it’s funny how browsers finally get to the point where good html tooltips can be done with just HTML/CSS via Anchor Positioning and Popover APIs, eliminating the need for JS for tooltips. But then there is a “one more thing” that pulls JS right back into it.
Second, I think the tooltip context could be applied to “tooltip groups”, so it’s not a check to see if the whole page is “warm”, but whether a group is warm.
I once built a Bomberman clone that had control issues.
The first iteration of the controls were clunky, because I only checked if a player was touching a block in the direction they wanted to move and if there was, I reset the position.
Move down, hit block, stop.
After a bit of experimenting I checked if a player was halfway behind or ahead of a block and added perpendicular motion after resetting the position. That way the player would glide around the blocks.
Move down, hit block, stop, move left or right until moved around the block.
That change alone made the game 100x more fun.
A lot of new creators of course will not believe you if you tell you have to do these affordances. I once tested a person's multiplayer map where a door had a central lip that crushed you if you entered off-center. I told them that it should be fixed, but the answer was "you should always go through doors through the center". It's some sort of very enticing idea of purity. "My map will only have real architecture and no affordances." In the end it will self correct.
Overall the delay in tooltips (and configurable) has been a feature since the 90s (could set the delay in millis in some UI frameworks)
Truly, good design is design that goes unnoticed.
There is no contact form. Only a Confession Textarea
How do you think tooltip hover works on mobile?
Why do we need to explain what a thing is or does on every site? Are JavaScript devs seeing video games and the key takeaway is everybody loves the tutorial where they’re told W moves forward? Or are they doing wacky JavaScript devs stuff like making pageup forward because it contains word “up” so fixed another bug. Then patting themselves on the back.
Just display the text information. Let me print it. Use consistent designs. Don’t intercept my clicks.
I could do an hour long standup rant just about how you guys need to STOP intercepting my clicks. In fact I’ll narrow it down to just Microsoft. They continuously find new ways to block and obstruct clicks. Once windows toast notifications got mostly fixed they reinvented toast notifications in yet another parallel duplicate feature with Teams toasts that spawn back to back to block critical button clicks.
I can’t believe even Apple has let this slip and iPhone is also subject to click blocking.
What are the rest of you devs doing all day?
My three most-hated modern trends
- Disappearing scroll bar with content that you have to scroll for
- Pills going across the top of the screen that are "most-used" filters instead of a real filtering menu
- Clickable text and non-clickable text appearing the same. I mean come on. Who the fuck is designing these things? That's the one I can't wrap my mind around. How can a self-respecting programmer put out a UI where the display and clickable elements look exactly the same? What are we doing man
Browsers are different. They don't really benefit from being written for, or from being used. This seems like enough to explain the difference. They provide some functionality, and giving your users a good experience is your problem, not theirs.
I feel like I've seen complaints that Apple has forgotten things it already knew about how to design a usable interface; that wouldn't be explained by this model.
I like predictable, consistent, and fast.