Great idea. I have always since Windows 95 used shift-f10 for bringing up context menus. I think many other people may have learned this as well. It's just habit at this point. F10 for showing/bringing up the menu is also a great idea. As you pointed out it is used in many places for that already. I am just learning that now, always used alt myself.
So a big +1 from me. BR, Jeremy On Wed, Sep 6, 2023 at 3:28 AM Felix Ernst <felixer...@zohomail.eu> wrote: > Hi! > > While testing the accessibility of Dolphin for visually-impaired people I > noticed that the menu bar is not part of the normal Tab key focus chain. > The same seems to be true for all KDE applications I tested. I brought this > point up with KDE's accessibility group (#kde-accessibility:kde.org) and > was told that that is normal. Instead, users are supposed to be able to > open a menu using either the Alt key or the F10 key. > > Unfortunately, KDE software doesn't seem to follow that rule either, so > the only way to focus the menu bar using only a keyboard would be to hold > down the Alt key, notice the accelerators in the menu bar (i.e. an > underlined F in File), and then press for example Alt+F to open the File > menu. Now of course this doesn't work if there is no File menu in the menu > bar. It also doesn't work if the application uses a hamburger menu instead > of a menu bar. A blind user won't be able to identify which kind of menu an > application provides. > > We need a consistent way for visually-impaired users to open a menu or > some users won't be able to use every action our applications offer! The > way to open a menu should also be consistent with software originating from > outside of KDE, so a user can open a menu without having to know if it is a > KDE application or not. > > From what I can tell, F10 is the only sensible choice here. F10 to open a > menu is what many design guidelines seem to already follow: > - Gnome https://developer.gnome.org/hig/reference/keyboard.html > - Microsoft > https://support.microsoft.com/en-gb/windows/keyboard-shortcuts-in-apps-139014e7-177b-d1f3-eb2e-7298b2599a34 > - Chrome > - Firefox (but Alt also works here) > - (Web Accessibility Initiative mentions Shift+F10 but not F10 > https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/) > > The only other key that even made sense to consider to me was the Alt key, > but this doesn't seem like a good idea IMO, because: > - it conflicts with the accelerator ( > https://doc.qt.io/qt-5/accelerators.html) workflow (quickly pressing Alt > to see if a button has underlined text and can be directly activated) > - it might lead to accidental activation especially in the context of > using keyboard shortcuts that also use Alt, but also purely because the key > is at the bottom of the keyboard. > > [1] I propose that we reserve the F10 key in most/all applications to > either open the first menu in the menu bar or open the hamburger menu > (depending on application). > > > > A completely separate issue is the opening of context menus using only a > keyboard. This functionality is provided by the "Menu" key on some > keyboards. However, many keyboards – especially in notebooks – do not have > a menu key. So, we still need to provide a way to open a context menu for > those. For the same reasons as above, consistency with software originating > from outside KDE is important here. Shift+F10 seems to be the typical > shortcut here (Web Accessibility Initiative > https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/, Firefox, > Microsoft > https://support.microsoft.com/en-gb/windows/keyboard-shortcuts-in-apps-139014e7-177b-d1f3-eb2e-7298b2599a34 > ). > > [2] I propose that we reserve the Shift+F10 key combination to open the > context menu for the item that has keyboard focus. It should have the same > effect as the "Menu" key many keyboards have. > > > > Please let me know if you agree that these are good ideas or not. Or let > me know if you think I should start a discussion about this outside a > mailing list. I currently can't even imagine any good alternative solution > to these problems, so directly announcing that this is a change I want to > work on on this mailing list makes the most sense to me for now. Any > objections? > > > *Implementation* > This is sort of secondary to the main content of this eMail above, so feel > free to ignore this section for now if my proposals above will be > challenged. But I assume that talking about possible ways to implement this > might help making the above ideas more clear/concrete. > > I think proposal [1] (F10 opens menu) will sometimes need to be > implemented in application code. It might not be clear from outside code > what can be considered the main menu especially in applications that do not > have a standard menu bar. > I currently plan to implement this for all users of KHamburgerMenu at > once. Pressing F10 would focus/open the menu bar if it is visible or it > would open the hamburger menu if the menu bar is hidden. Since this is > bound to a normal action, both application code and users can re-bind F10. > At the worst, this would lead to a non-crashing collision of the F10 key > usage in some applications. Now, with the jump to KF6, it seems like a good > time to do this. > > About Shift+F10 I am not sure yet at which layer this should be > implemented. Ivan Tkachenko mentioned the idea in chat that it could > potentially be implemented as a Plasma-wide keyboard setting. Pressing > Shift+F10 would then always be identical to pressing the "Menu" key on a > keyboard. This idea stuck with me so I want to bring it to your attention > here. Is it too bold to decide about the Shift+F10 key combination like > this? If it is, the only other solution I see is implementing Shift+F10 to > trigger the context menu everywhere where context menus exist. Or, as some > keyboard shortcuts interpretation layer that applications can enable. If > you have an idea where this should be best implemented, please let me know! > > If you have gotten this far: Thanks for reading! I hope this eMail will > lead to great improvements to accessibility in the long term. > > Have a nice day! > Felix > https://invent.kde.org/felixernst >