That’s really nice of him to put together such a concise, well-described list of issues for them. Hopefully someone sees this and adds it to their issue tracker. It’s very rare to see anyone internal grab something from outside like that though.
Heads up, foone uses they/them pronouns.
I love their write ups, I know whenever I see their posts on here to cozy up with a coffee because it's about to get fun.
Button presses are often handled by state machines at a driver level so that a single “press” only registers as a single press. Otherwise, it will register as a lot of presses because the physical switches bounce on contact. They call this debouncing. Probably, a drivers state machine did not transition out
This doesn't seem to explain how it would happen after plugging in a new keyboard, or trying to use the on-screen keyboard, though...
Same generic keyboard debouncing in use in all 3 instances on the windows end? I know windows drivers debounce mouse clicks because I had a really old mouse that would double and triple click by accident on Linux but not in windows. I might be wrong, but changing the device might not affect it if the different devices are handled by shared runtime code
You can get into a similar state on MacOS by pressing a key multiple times in a row (option I think). It just quietly disables a large number of keys. I figured it out by accident one day because I assigned the key as my "push to talk" on Discord. That was a fun hour trying to figure out what had happened.
On MacOS if you remap your capslock to control there is a race condition on the login screen. If you use the control/capslock key to wake up your laptop and manage to time it right, you can enable capslock but not have a way to disable it (unless you remapped another key to capslock (why?)).
Xorg has an option to toggle capslock by pressing both shift keys together, which seems like a nice solution.
When this was happening to me it turned out to be bad interaction with '@' followed by a punctuation mark. I can reproduce it at will right now. Something to do with name auto-completion, but once I knew how to avoid it I stopped debugging their code for free.
Same darn thing with Outlook. They added mentions, and now anytime you type @something it goes looking for that person. Examples of how this goes wrong: @10pm or when I type to send to a colleague in a language that has @var type syntax.
Reply from MS was that there isn’t any way to turn off the mentions.
These hotkeys in websites are an utter curse. So many times I've started typing in Jira, then something weird happened that caused my keystrokes to be interpreted by the page instead of entered into a comment box ... then the ticket gets reopened, unassigned, etc.
This is why desktop apps use the Ctrl key for shortcuts. I'm not sure how that bit of common sense got lost in the transition to webapps.
The lack of Ctrl is sadly a feature for web apps. You don't know which browser, and thus which set of shortcuts your user will be using your app from. However assuming that shortcuts will be prefixed is a pretty safe assumption, so the non-prefixed letters are really the only safe option for web app hotkeys as they form a relatively safe space of shortcuts.