I work on ADA a lot for my company. Please put on some headphones, turn on the voice assistant of your OS, put on some blinders, and run your app or website… no mouse, just keyboard. 1. Democracy is about access; make sure everyone has access to your software. 2. The keyboard allows folks with disabilities and power users to fly through your website/app… that being said… the second a tab is off, the person with a dis…
Also, please avoid animations and transitions, or at least add a button to reduce them.
GUIs should be fully keyboard-driven
401–410 of 510 posts
Re: GUIs should be fully keyboard-driven
#402Earlier quoted context omitted.
Not guaranteed but easy, because Windows has mnemonics, where you can associate arbitrarily nested menus with actions, and each menu can have its own mnemonic key, so that you press ALT, then, say, "k", then, maybe "m" and so on, following along with the menus as they drop down. This way it becomes easy to memorize key sequences; start by navigating with arrow keys, then eventually speed up as you memorize each menu…
> Not guaranteed but easy, because Windows has mnemonics, where you can associate arbitrarily nested menus with actions, and each menu can have its own mnemonic key, so that you press ALT, then, say, "k", then, maybe "m" and so on, following along with the menus as they drop down. > I'd even say friendlier than MacOS (heresy!!) Honestly, I disagree. If you've used macOS for a length of time, you might be aware of the…
That's a very two-handed ableist view. Imagine having lost your arm and being told hitting three keys on opposite ends of the keyboard is simple.
I'm joking, but only about the calling you ableist and the emotional response parts. The situation does really occur. Keyboards aren't always the most accessible option.
(Hotkeys reveal mental limitations in myself. I can rarely remember them. I know a ton, but I've forgotten so many more. On MacOS in particular, when multiple modifiers are involved. Can never remember if it's cmd-shift, cmd-option, option-shift, cmd-ctrl, cmd-fn, or whatever.)
Re: GUIs should be fully keyboard-driven
#403Earlier quoted context omitted.
We know what it means for a GUI to be keyboard driven now: Edit with Copilot[1] Press the Copilot key on your keyboard[2] and type the thing you want to happen on your keyboard in English without leaving the home row. Forget the keyboard shortcuts, the path through the menus, the button location in the toolbar, the command name in the omnibar, the marketing name of the feature. Forget queueing up keyboard keys in an…
LLMs do solve the discoverability problem which underpins every power user feature ever. It is fantastic to be able to describe what you want without the domain knowledge that was previously a prerequisite to achieving that goal. Hopefully as more systems create declarative ways to interact with them (MCP, clis), power users will be able to profit from this as a side effect as well.
I also think this is misunderstanding "discoverability" a bit. For me "discoverability" also means you get an understanding of what options are available at all in the system, which can be helpful to get a better idea of what you want to do in the first place.
Seach and chat-based UIs always assume you already have a perfectly thought-out plan what to do (conveniently in terms if the software you're working with) and just have to type it in.
Re: GUIs should be fully keyboard-driven
#404I work on ADA a lot for my company. Please put on some headphones, turn on the voice assistant of your OS, put on some blinders, and run your app or website… no mouse, just keyboard. 1. Democracy is about access; make sure everyone has access to your software. 2. The keyboard allows folks with disabilities and power users to fly through your website/app… that being said… the second a tab is off, the person with a dis…
I had to keep accessibility in mind a lot in my previous job (web development for a university). The thing that I consistently found was that, the more accessible a website was, the better the experience for everyone , not just people with disabilities.
Have you some more stories of massive text, huge margins and padding helping UIX for healthy visitors?
Re: GUIs should be fully keyboard-driven
#405At this point what keeps me on Firefox is less the browser engine diversity than [tridactyl]( https://tridactyl.xyz/ ), without which I feel almost helpless in a browser.
always happy to hear from people like that if there are things we can improve.
(people who just don't like using mice need no such encouragement to share their opinions :) )
Re: GUIs should be fully keyboard-driven
#406Earlier quoted context omitted.
> Democracy, in it's purest form, is about mob rule --majority rule, if you want to say it in a softer/kinder way. You're just parroting an old urban myth. The terminus technicus for mob rule is ochlocracy [1]; democracy, per se , includes minority protections (i. e. if it doesn't then it isn't a democracy to begin with). 1. [ https://en.wikipedia.org/wiki/Mob_rule ]
>democracy, per se, includes minority protections (i. e. if it doesn't then it isn't a democracy to begin with). Democracy has nothing to do with minority protections. I don't understand you can say it per se includes minority protections. Democracy includes whatever enough people think it should include. If people don't want such protections then there is no need for them. If a democratic society does not want to li…
You just proved my point by demonstrating your utter ignorance of the topic: Your three sentences encapsulate the textbook definition of ochlocracy (or laocracy), i. e. mob rule. Which, as already outlined, is not democracy.
I suggest you read some authoritative and up-to-date texts on democracy before embarassing yourself again.
Re: GUIs should be fully keyboard-driven
#407What does it mean though for a GUI to be keyboard-driven? The obvious way is that every action simply gets a shortcut assigned. My counter would be that that is not really keyboard-driven, but merely keyboard-compatible.There is the issue of discoverability. The best practice right now seems to display the shortcuts of buttons in tooltips, menu items, or when pressing a different shortcut. I’d content that buttons ar…
I'm a longtime Emacs user and I detest tools like VSCode (VSCode in particular) because they aren't fully keyboard driven. "Fully" is the important part here. You can do a lot of things with keyboard in VSCode, but every now and then there isn't a way to do what you want without the mouse. And it screams "bad (no) design". For example, jumping between different panes in the editor is not always possible without a mouse, or the path to doing it is too long.
Before my attempt at generalization, I also want to address these:
> UIs like CLI or TUI suffer terrible discoverability
They typically do, but they don't have to. The reason for making a CLI and, to a lesser extent, TUI is the development speed. A full graphical interface will take longer to develop. So, whoever ends up making a CLI or a TUI tends not to invest time into accessibility either, because their goal was to save time on the UI in the first place.
Another aspect of this problem is the baseline knowledge. Users of graphical interfaces know how to discover functionality, they recognize familiar controls and patterns, they know that a cogwheel icon is likely to be a gateway to a program's settings, that if they want to make their changes persist, they need to look for something that looks like an open folder, or maybe a diskette icon...
Emacs has absolutely amazing discoverability. No program with graphical interface ever made doesn't hold a candle to what Emacs can do. But the user needs to have the baseline knowledge to... ironically, discover the discoverability. And I don't think there's a way to bootstrap from this problem. The minimal knowledge necessary to discover Emacs' features must come from reading the manual or asking a friend etc. Just to give you a few examples: Emacs can easily display all, without exception, keys and associated functionality available in the current editor's layout. It can also display them per individual component (if you, for example, knew that a key was defined, but was missing from the aforementioned list). You could also use the function name, if known, to find what key it binds to in the current layout. You can easily discover what any key (combination) does in the current layout without actually trying it (rather reading its documentation).
> can we have a keyboard-driven UI that is as intuitive as clicking with a mouse?
Absolutely! If we commit to a general set of rules that allow bootstrapping. This would require a degree of uniformity between such tools and, perhaps, some visual or even physical aids in the computer periphery to make this work. Computer interfaces, both physical and on-screen, evolved to support mouse-first UIs. For example, the navigation arrows on the keyboard are virtually never drawn on jklm etc. The keyboard is presented to its users as a tool solely designed for entering text, not a tool to engage UI controls. Compare this to gamers' keyboards that often emphasize wasd keys (because they are often used for moving your character in games) or even more extreme designs like Nostromo that are geared towards typical game interface.
* * *
Being keyboard-driven isn't about, as you said, having a shortcut assigned to an action. This is not how good keyboard-driven programs work. This is the way of thinking if your baseline experience is a GUI, which must be somehow retrofitted into the world with the keyboard as a primary driver.
Keyboard-driven, to me, means that the program has a systematic, hierarchical and consistent approach to deal with the keyboard input. Assigning keys to actions at random will quickly overload the user's ability to memorize such bindings. A keyboard-driven program is designed to have a system that the user can internalize and use to predict the right key for the desired action. Such a program should make no exceptions when binding actions to keys: any action should be accessible in a reasonable small number of keystrokes.
Re: GUIs should be fully keyboard-driven
#408The experience is unparalleled to this day, although writing it down I realize more why it was never really reproduced. For a browser, I would imagine having blocks like:
A. meta (browser itself) / B. page (DOM) A1. page controls (bookmark, ...) / A2. Navigation experience (font size, dark mode, ...)
One can dream :-)
Re: GUIs should be fully keyboard-driven
#409Earlier quoted context omitted.
I had to keep accessibility in mind a lot in my previous job (web development for a university). The thing that I consistently found was that, the more accessible a website was, the better the experience for everyone , not just people with disabilities.
Additionally, I found, that simply sticking to web standards, instead of reimplementing everything in JavaScript, goes a long way towards accessibility.
Re: GUIs should be fully keyboard-driven
#410Earlier quoted context omitted.
1. Make sure that the tree view control has screen reader support and that it has all the normal keyboard commands (such as right/left arrow for expanding/collapsing a parent node). 2. Make sure that the text box has a label that says “search” or “filter” and not just a magnifying glass icon. You can only get away with an icon if the GUI toolkit allows you to give it an alt text. 3. Make sure that this label has a ho…
Hm OK thanks for the pointers. Point 1: I don't know whether tkinter's treeview has screen reader support. I will have to look into that. But what I did already do is to make it focusable, which it wasn't by default, I believe, and add controls like: up, down to select rows, pos1/home and end to go to first row or last row, space to select/highlight a row, I left right and left arrow key for opening and collapsing it…
Please leave standard shortcuts alone. Ctrl+f lets me search the page for content. It should never search anything other than the current page.
Edit: nvm, thought this was a web app / page. A native app having search this way is normal