Open Enie opened 6 years ago
I just noticed that one month ago in issue #2863 @giladgray mentioned that he would like to add this feature soon. So I'll just wait patiently and you keep up the good work!
@Enie hah thanks for noticing. yeah this is basically at the top of my feature list and should be addressed soon-ish?
@giladgray Do you have any updates yet?
This would be very nice to have. Any updates? Is this feature still coming soon?
No, this is not currently in progress. Open to PRs.
FYI for anyone else who happens to stumble upon this: A Blueprint.js Select does respect keyboard events. It's (unfortunately) less flexible and harder to use than a plain Menu, but if it's enough for your needs, go for it.
If anyone's interested, my workaround has been to use Reakit to build a menu component and apply Blueprint CSS styles to match our app's look and feel, as seen in this pull request.
I think Menu navigation should work with tabbing as well as arrow keys. Pasting @cnrudd's comments from #3881 here:
A user could:
- navigate up/down the menu with ArrowUp/Down keys
- move into and open sub menus with the ArrowRight key
- move back to a parent menu and close the sub menu with the ArrowLeft key or Escape key
- close current menu with Escape key
- open menu with Windows menu key (optional, via prop)
- trigger menu button action with Enter key (and then close entire menu)
I agree with most of these features. I'm not so sure about Escape key moving back up the menu tree, but we could try it and see how the UX feels.
Environment
Feature request
Popover-menues should be tabable or keyboard-controllable in any other way other than only by hotkeys for exactly one menu-item.
Current buggy behaviour: Going to the menu demo and trying to tab will open the second last menu item in the second menu. tabbing again will open the submenu of the last menu-item. tabbing another time will focus the last menu-item of the submenu.
Setting tabIndexes on each Popover and Menu Item will enable to either tab through popovers or menu items as soon as a menu is opened.
Examples
You can see the before mentioned example here: http://blueprintjs.com/docs/#core/components/menu