Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Surface keyboard shortcuts when modifier keys are held #13688

Open
jasmussen opened this issue Feb 6, 2019 · 5 comments
Open

Surface keyboard shortcuts when modifier keys are held #13688

jasmussen opened this issue Feb 6, 2019 · 5 comments
Labels
[Feature] UI Components Impacts or related to the UI component system [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). General Interface Parts of the UI which don't fall neatly under other labels. Needs Dev Ready for, and needs developer efforts

Comments

@jasmussen
Copy link
Contributor

This is related to #13663, and attempts to tackle the same issue. It is unobvious for users how to navigate the various aspects of the interface using primarily keyboard shortcuts, and the "Keyboard Shortcuts" sheet in the More menu is insufficient to surface this. Let's discuss ways we can make keyboard shortcuts more obvious to users.

Surface keyboard shortcuts when modifier keys are held

The first idea comes courtesy of Enrique Sanchez (@enriquesanchez) who submitted an idea for improving this:

shortcuts

The idea is that the keyboard shortcut is surfaced when the accesskey is pressed. This requires some additional work around customizing and improving the accesskey interface in the editor.

But it seems like a first step to explore could be to show the keyboard shortcut as a little bubble tip on top of any button that has a shortcut, when you press and hold the modifier keys. For example the Block Navigation button has the keyboard shortcut ^⌥O — this button would show O when you press and hold ^⌥.

Is this feasible as a first step, or do we need to look further into accesskeys? Please share your thoughts.

@jasmussen jasmussen added [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. Needs Accessibility Feedback Need input from accessibility labels Feb 6, 2019
@karmatosed
Copy link
Member

I wouldn't be against seeing it explored visually, but I do worry about it being an incredibly complex visual to navigate. That said, I think this in some respects is a chosen 'mode' so cognitive load negated. I would like to see some different explorations to yellow notes, they feel a little to me like someone has gone a little overboard with post-its. I love post-its but maybe not as indicators of keys.

@afercia
Copy link
Contributor

afercia commented Feb 22, 2019

Quickly discussed during today's accessibility meeting, agreed it would a nice to have, but not crucial. We do think it would be helpful, however. Also, the general idea could be explored further e.g. pressing a key could reveal other things in the interface (block type breadcrumbs? other?)

@afercia afercia removed the Needs Accessibility Feedback Need input from accessibility label Feb 22, 2019
@enriquesanchez
Copy link
Contributor

To add a bit more context, this idea borrows from the concepts of the accesskey attribute. While it was never standardized, it provides a lot of functionality with a very simple implementation. The goal here is to try to replicate some of that functionality.

Let's say, hypothetically, that ctrl + alt is our modifier key. Pressing it would reveal little tooltips on top of the different items on the page that have a shortcut assigned to them. This tooltip will show the additional key needed to perform a particular shortcut. The outcome is that the user only needs to memorize the modifer key.

My assumption is that a feature like this will benefit new/casual users and particularly those with cognitive disabilities, since they will no longer have to memorize multiple shortcuts in order to navigate and use Gutenberg. I believe power users that want to become more efficient will also appreciate this feature.

That being said, the idea of having a single modifier key for all of our shortcuts is simply wild, as there would be countless conflicts between OS, platforms, browsers, AT, etc.

Ideally, we could simplify and standarize our modifier keys in a way that we only end with a couple that are easy to memorize and perform. While not a perfect solution, I feel it's one that gets us closer.

Also, the general idea could be explored further e.g. pressing a key could reveal other things in the interface (block type breadcrumbs? other?)

This is such an interesting concept! I love it.

@melchoyce melchoyce added Needs Dev Ready for, and needs developer efforts and removed Needs Design Feedback Needs general design feedback. labels Jun 4, 2019
@melchoyce
Copy link
Contributor

Let's get this into a PR.

@afercia
Copy link
Contributor

afercia commented Jul 19, 2019

For inspiration: just noticed the new Slack version (4.0.0) is exploring something similar.

On a mac, press and hold Cmd for more than 1 second and you will see the additional keys to press to switch workspace. In this case, the keys are the numbers 1, 2, and 3. Screenshot:

Screenshot 2019-07-19 at 14 59 43

@mtias mtias added [Feature] UI Components Impacts or related to the UI component system General Interface Parts of the UI which don't fall neatly under other labels. labels Mar 8, 2020
@mtias mtias changed the title Surface keyboard shortcuts visibly Surface keyboard shortcuts when modifier keys are held Mar 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] UI Components Impacts or related to the UI component system [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). General Interface Parts of the UI which don't fall neatly under other labels. Needs Dev Ready for, and needs developer efforts
Projects
None yet
Development

No branches or pull requests

6 participants