Live data from Hacker News

GUIs should be fully keyboard-driven

ckardaris.com

81–90 of 507 posts

Re: GUIs should be fully keyboard-driven

#82
post #71

The mouse is amazing, if you have a good sensor, a mousepad and no mouse acceleration. Not many have this setup, but those who do can wield their cursor with insane speed and accuracy. Consider top osu! or Starcraft players.

In video games, you're typically resting one hand on the mouse and the other on the keyboard fairly consistently.

Going back and forth between the keyboard and the mouse is what's awful about bad interfaces in my opinion, not the mouse as a pointing device.

Re: GUIs should be fully keyboard-driven

#83
>But I want to oppose a recurring argument in favor of TUIs that in my opinion does not have a solid foundation. To paraphrase various commenters: TUIs should be preferred because they are keyboard-driven.

Yes. One problem with this argument in particular is that every TUI reinvents the wheel and designs its own schema.

To reinforce author's point, classic GUI frameworks and their guidelines actually provide hotkey schemas for common actions by default, and hot paths for quick interface traversal. They're universal and work by default, so in a lot of cases you don't even need to think about it, only extend it with your own actions. Absolutely nothing prevents you from doing the same in a TUI framework, but at this point the supposed simplicity and flexibility is lost.

New GUIs have other innovations, see for example Microsoft Ribbon that adopted link navigation from Vimperator to make classic toolbars discoverable, compact, accessible from the keyboard, and customizable - all at the same time! Unthinkable for any other UI paradigm.

It's incredible that after the Electron devastation era this unification and keyboard accessibility feels like some kind of lost art, and the perceived lack of keyboard driven GUIs is used a strawman to criticize GUI as a principle. Status quo of "most apps do X" is not the principle. It's also not true, essentially all good GUI apps are keyboard driven, and surely most professional/heavy user ones.

Design good interfaces, not bad ones, regardless of the paradigm. This is harder than it seems, and TUI is not a automatic substitute for your lack of this skill. If you think it is you will design a bad app, in the same way pixel art looks hideous when used to compensate for game designer's laziness. In fact, a lot of recent TUI apps I see are pure terminal cargo cult and are simply worse by being TUIs.

Re: GUIs should be fully keyboard-driven

#84
post #70

> The takeaway is simple. Do not compromise on the user experience you provide with your application Same thing I hear from everyone. "You can't compromise on UX" - UX experts. "You can't compromise on security" - Security experts. "You can't compromise on Accessibility" - a11y experts. We gotta make trade-offs, and I gotta get my thing shipped (for me I learn toward security for my service)

> We gotta make trade-offs You could compromise on not-shipping-before-it's-ready.

Or even the original premise of agile, which was to iterate on it. But "iterate" these days means "onwards to the next feature that we'll only drive to MVP", not, "polish & fix bugs" or … do things like enhanced UI for power users.

Re: GUIs should be fully keyboard-driven

#85
post #55
post #52

The problem with keyboard navigation is that there seems to be no mature GUI keyboard-first UX concept. "Mouse things" are the way they are, because they fit the mouse-way. We need the same for the keyboard-way. Until then, there seems to be no design concept that can just be copied.

There is, whether or not developers follow it is a different story. https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface...

I don't think this really addresses GP's comment as far as I understood it.

Your resource mostly describes how to make keyboard-based workflows accessible. But just because the full functionality of an app is keyboard accessible, doesn't mean that it works as well as the pointer-based approach - especially if you have an app with multiple menus, sidebars, headers, footers etc. Maybe you could tab through everything, but a pointer will be faster. This is where a "keyboard-first UX concept" is missing (from GP).

I think an interesting idea to solve this would be a "focus navigation mode". Enter this mode with 1 shortcut and then navigate between items with a few keys; like a combination of mnemonics and screen reader navigation e.g. jump between headers with "h" etc.

Re: GUIs should be fully keyboard-driven

#86

But it is really hard to remember the shortcuts

Tool-tips, having an accelerator next to the item in the menu/context menu, accelerator underlines, god forbid documentation … UIs have long had ways of having a simple way and hinting at, documenting, or showing to the user how to accelerate if you want to get quicker.

Re: GUIs should be fully keyboard-driven

#87

Keyboard accessibility is one of those things that tends to get swept under the rug or forgotten about entirely alongside accessibility in general. The funny thing is that the former usually falls out of the latter. Part of the blame lands on the shoulders of popular UI frameworks (or in the case of those choosing to eschew use of such, the developers who made that choice). The older frameworks tend to make this fair…

>That sort of design has fallen out of favor with newer frameworks, unfortunately. The new preferred style seems to be a wireframe that the dev chooses which parts fill in, and often only the barest of essentials makes the cut.

Which ones, besides web frameworks pretending to be desktop ones? Most if not all frameworks I know support keyboard navigation.

Re: GUIs should be fully keyboard-driven

#88
What 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 are a fundamental mismatch with keyboards. A keyboard driven UI shouldn’t have buttons. The issue is that genuinely keyboard driven UIs like CLI or TUI suffer terrible discoverability that being the reason that mouse driven UI exists in the first place. So can we have a keyboard-driven UI that is as intuitive as clicking with a mouse?

Re: GUIs should be fully keyboard-driven

#89

> The takeaway is simple. Do not compromise on the user experience you provide with your application Same thing I hear from everyone. "You can't compromise on UX" - UX experts. "You can't compromise on security" - Security experts. "You can't compromise on Accessibility" - a11y experts. We gotta make trade-offs, and I gotta get my thing shipped (for me I learn toward security for my service)

You are right. Maybe the wording is a little too absolute. If you gotta ship and later try to slowly address any shortcomings in different areas, this is also a step in the right direction in my opinion. Just don't completely forget about those areas just because you have already shipped by that point.

Re: GUIs should be fully keyboard-driven

#90
post #70

> The takeaway is simple. Do not compromise on the user experience you provide with your application Same thing I hear from everyone. "You can't compromise on UX" - UX experts. "You can't compromise on security" - Security experts. "You can't compromise on Accessibility" - a11y experts. We gotta make trade-offs, and I gotta get my thing shipped (for me I learn toward security for my service)

> We gotta make trade-offs You could compromise on not-shipping-before-it's-ready.

Not if you have a deadline.
Post reply on HN