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

Add arrow key navigation to the inserter window. #515

Closed
BE-Webdesign opened this issue Apr 26, 2017 · 5 comments · Fixed by #578
Closed

Add arrow key navigation to the inserter window. #515

BE-Webdesign opened this issue Apr 26, 2017 · 5 comments · Fixed by #578
Assignees
Labels
[Feature] Inserter The main way to insert blocks using the + button in the editing interface [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes).
Milestone

Comments

@BE-Webdesign
Copy link
Contributor

In #462, having keyboard navigation for the inserter window is needed.

@BE-Webdesign BE-Webdesign added [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Framework Issues related to broader framework topics, especially as it relates to javascript labels Apr 26, 2017
@BE-Webdesign BE-Webdesign added this to the Prototype Parity milestone Apr 26, 2017
@aduth
Copy link
Member

aduth commented Apr 26, 2017

Related: #323

@BE-Webdesign BE-Webdesign self-assigned this Apr 26, 2017
@BE-Webdesign
Copy link
Contributor Author

BE-Webdesign commented Apr 26, 2017

In #462, arrow key navigation is called for. Any reason why tab navigation would be bad?

@jasmussen
Copy link
Contributor

I don't know for sure, and I would imagine that @afercia might have thoughts. However, a couple of things to keep in mind:

  1. down the road we could be looking at 50 maybe 100 blocks in the inserter, especially once the customization focus goes into full swing.

  2. in one scenario, when you invoke the inserter on a newline ("the newline is the commandline"), you are actually still typing on the newline as opposed to inside the inserter itself. Sort of like Slack slash commands:

inserter

☝️ those two points don't necessarily have to affect whether or not tab can work for navigating through items, just figured I'd give them as context for some of the behaviors we've been thinking of. The inserter as a whole is also one of the interface elements that will likely undergo more iteration as we test it.

@afercia
Copy link
Contributor

afercia commented Apr 27, 2017

Yep this kind of menus should work with both the Tab/Shift+Tab and Up/Down Arrow keys. Also, both tabbing and arrowing should be constrained within the inserter. Some good examples are on Twitter. Ideally, the inserter should reproduce their behavior:

screen shot 2017-04-27 at 14 28 38

The inserter case is a bit different, given the presence of the search field. I'd say both tabbing and arrowing should include the search field, but the actual interaction should be carefully tested so maybe better double check this point later.

Also, pressing Escape should close the inserter and move focus back in a proper place. Also clicking anywhere outside of the inserter should close it.

Worth noting when using screen readers, keyboard events need some special ARIA roles to actually work. Going to open a separate issue for this.

This was referenced Apr 27, 2017
@afercia
Copy link
Contributor

afercia commented Apr 27, 2017

Please notice that arrows navigation should work also with the Left and Right arrow keys. That's the interaction some screen readers expect. For example, by default VoiceOver gives hints about which commands to use:

arrows navigation also left and right

Seems to me that it would make sense to couple "Down" and "Right" to move to the next item and "Up" and "Left" to move to the previous one.

BE-Webdesign added a commit that referenced this issue May 1, 2017
RxJS as a library, which could be very useful for other
aspects of this project. Accessibility review would be awesome.
@mtias mtias modified the milestones: May Week 1, Prototype Parity May 1, 2017
BE-Webdesign added a commit that referenced this issue May 2, 2017
RxJS as a library, which could be very useful for other
aspects of this project. Accessibility review would be awesome.
@mtias mtias added [Feature] Inserter The main way to insert blocks using the + button in the editing interface and removed Framework Issues related to broader framework topics, especially as it relates to javascript labels May 3, 2017
BE-Webdesign added a commit that referenced this issue May 4, 2017
RxJS as a library, which could be very useful for other
aspects of this project. Accessibility review would be awesome.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Inserter The main way to insert blocks using the + button in the editing interface [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes).
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants