What does annoy me about user interface latency: when a page loads slowly, I try to click something, the layout changes at the last minute, and I end up clicking something else. That's an example of a full feedback loop where my actions aren't coming directly from me. They're dependent on what I'm seeing on the page.
Now, finally, why might input lag for keyboards be less frustrating than on tablets?
My theory is: because the keyboards themselves provide an important source of feedback. Namely: the tactile feedback when a key is pressed tells you that you did what you set out to do. At the very least it’s possible to feel whether something was pressed or not; experienced typists will also easily be able to tell whether it was the correct key or not. And thus you yourself are taken out of the equation as a potential source of error, removing any self-doubt while waiting for the screen to catch up with your action.
When you’re working on a tablet, you’re never provided with such tactile feedback, and are thus forced to wait for the lag to complete whether a mistake was made or not.
That is fixed now, and it is so much better.
The "We're done here" button is only 200 ms, and "Surprise me" only goes up to 500 ms. I have experienced far worse and variable latencies over Windows Remote Desktop and SSH due to bad Internet connections - like multi-second delays. This demo pales in comparison to the real world.
If I just keep typing typing typing without need to worry about correction, the annoyance is probably minimal. I could just ignore the latency, close my eyes, and keep typing, assuming I have really high touch-typing accuracy. (I know that's something I sometimes do when I face high latency in real usage.)
Maybe a better and more meaningful simulation is to show some random sentences that you have to read and type, and then randomly force you to make some corrections as you go along (e.g. suddenly change the last word from "their" to "they're"), to simulate you having mistyped something.
I think the biggest frustration with latency is not the latency itself, but rather when latency is combined with the possibility that what you entered didn't register at all and the time pressure of having only 15 seconds of signal to submit your command - situations that often occur when using Internet based sessions in the wild.
The other source of annoyance is trying to "not crash the system". Often when a system presents high latency like this, I tend to consciously pay attention to how many "buffered" inputs I'm sending for fear of crashing something, and that self-throttling can get tiring.
It would need to be defeatable for "game mode" though, for games involving clicking moving targets. Any other edge cases to consider?
As a result, this is going to make moderate to high latencies look way, way worse than they really are.
When you press a key, it will take a while to see the result. Depending on how things are set up, your computer will either send all subsequent keypresses immediately while you’re waiting, or it will buffer then and then send them all together once you get the reply. Either way, you won’t get this long term buildup.
I'm talking high enough that someone backspacing over a mistake will think that the interface didn't receive the input. So they do another backspace.
To get it just right you'd probably trigger the initial backspace callback immediately after the user types a 2nd backspace. Then wait a long time before triggering the 2nd backspace callback. Since the original problem character has been removed the user will most likely try to continue typing. Finally, update the queue of characters all at once-- starting with the 2nd backspace. Now the latency has caused a character right before the queue to get eaten.
This is how you cause people to throw their device against a wall.
But "variable latency mode"? That made me more nostalgic than annoyed.
It was an instant flashback into the 90s, running Irssi in screen over SSH on a slow dial-up connection while downloading MP3s. Happily chatting away.
Individual perceptions are weird.
The latency hovered around 100ms (it's not great), but it went up and down throughout the day and as I moved in and out of the office. Honestly, it isn't so bad. I find after years of working like this I keep enough of a mental model of what I've typed that I'm not bothered by even the "we're done here" setting.
Of course this was on slow computers so it was not so much a feat of speed but rather how much of the full code they were holding in their head at any time.
Unless it was 2.4Ghz, I suppose; all bets are off then.
Even this text box, on HN, is noticeably disconnected compared with, say, DOS on an IBM PC-XT, or your average text input area on early Apple computers, BeOS on a first-gen Pentium, QNX on same, that sort of thing, and that's without applying the linked site's extra latency. Everything, just about, is a bit muddy on a "modern" computer. iOS is the closest thing to an exception and even that's gotten worse over the years.
I've had a similar experience with audio systems - I can play guitar tolerably well even if I can't hear what I'm playing, but >40ms of latency will turn me into a ham-fisted mess.
Funny this comes up today because I was thinking of getting back to vim fully instead of VSCode+vim extension and used vscode as a debugger only (love the UI!).
I've never learned vim proper (started with Atom and vim-mode-plus), but I keep thinking it might be time to dive in.
Of course, dialup was worse. You can never really get used to 300ms.
When I started using Ubuntu in 2008, I used gnome-terminal as was default, and had no issues for it for quite some time.
Around 2009-2010, I decided to start experimenting with a whole bunch of alternate window managers and terminals. Eventually settled on wmii and xterm.
Since then I've gotten so used to xterm, that I can sense the extra latency in gnome-terminal that isn't in xterm, and it bothers me. This isn't even over ssh or anything, just local.
Toying with this page, gnome-terminal feels about the same as 10ms. And apparently I can still just barely sense the delay at 5ms now. Somewhere below that, probably around 2ms, I can't sense it anymore and it feels like xterm.
(Yes, I know mosh exists for this reason)
It actually made me realise that my normal typing in my browser is quite high latency, since the 5-10ms exacerbated something enough to the point where I notice it even though there's no added latency now.. one of those "cannot unsee" moments and it's going to cause me to go insane.
Is it possible to describe what it is without spoiling anything?
1. The latency selector should be plain numbers, to avoid coloring the perception by the emotional terms used
2. Currently the letters appear with a delay, but the cursor advances immediately (could be my browser) - there is instant visual feedback, which probably reduces perceived latency
I think something about the drawing is the issue.
The variable latency mode was truly annoying.
That being said, somehow the variable latency seems way less annoying than what it would be if averaged out and set that constant value.
Can't figure out if the site is down or if this is part of the test.