-
Notifications
You must be signed in to change notification settings - Fork 7k
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
Make clickable elements reachable by keyboard users #7822
Conversation
84c906a
to
94fa752
Compare
This PR should also fix #7653 |
This PR cover some points reported in #7537 |
@muscat1 can you please review this? |
Hi, thanks for your contribution! |
I did that a few hours ago :) |
Sorry about that, it's just a robot :-) |
LGTM! Just a few observations after some manual testing: First of all, this seems to make clickable elements visible when accessing them via keyboard, however they are not necessarily functional since most of these do not have an Finally, and this is purely a technical aspect, from the way things are currently implemented, dialogs close when hitting the enter key, which might come in conflict with the point I've made above since trying to use dialog buttons via keyboard will just close the dialog. Not sure how to proceed with this one, maybe remove the enter key dialog behaviour entirely and rely on navigation to the close button and triggering that. WDYT @saghul ? |
This makes sense to me. |
94fa752
to
589c82c
Compare
@DuaelFr I was thinking that maybe we should be adding a similar behavior for the elements that are missing it. Imo, it seems a bit misleading if a user can navigate to an element via keyboard but can't actually interact with said element. Wdyt? |
@muscat1 I'm sorry but I don't understand (maybe that's because I'm not a native english speaker). I thought I added this behavior to all elements that had an onClick attribute. That was my intent. Have I missed some of them? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Hey, for some reason this PR fell through my mind's cracks and I completely lost track of it :') If this is still of interest, I remember that when I was testing it, I was indeed able to navigate to all buttons (the point of the PR) but I was unable to interact with them through the keyboard. (I couldn't "click" them through a key) If we want the interface to be accessible, I think we should be able to do that, don't you? It's entirely possible that I tested this wrong so please let me know if that's the case. @saghul tagging you as more of a reminder as well, because you might also disagree with my opinion :D |
@muscat1 would you mind trying to give me some steps to reproduce the issue, please? I'd like to understand how you proceeded so I can try to fix the problem and update the PR. |
Again, I might be in the wrong here, but they way I reproduced this was I cloned your repo and ran the project with your changes via I'll attach some screenshots below with some buttons that were reachable, but not actionable via keyboard only. (Please tell me if this was not your initial intent with the PR so I don't overcomplicate things) In the prejoin screen you could reach and trigger the video and audio mute/unmute, but several other functions were only reachable: After joining the conference, I can only reach, but not trigger the 'invite more people' button: While in the conference, I can reach and trigger the display of the overflow menu from the toolbar, but then none of the buttons are actionable, only reachable: And finally, there's the entire dialog discussion where, if you open any dialog and try to trigger a button with the Enter key, it'll just close the dialog. Feel free to correct me on any wrong assumptions and also share your thoughts regarding my 'investigation' as I might've gone overboard :) |
Thanks a lot for your explanations. |
I've mentioned it before but some time ago we merged a PR that achieves that for the toolbar buttons, maybe that can provide some inspiration. You can find it here: #6070 |
Is this still going to be worked on? Or was this fixed by #8423 by chance? Is there any instance newer than https://meet.jit.si where one could test current Master without having to install all stuff oneself? |
I wish I had more free time to work on this but for now I have to focus on paid work. This is on top of my contrib todo list. |
All debian packages while being tested are first installed on alpha.jitsi.net, so latest from unstable cal always be tested there. |
I did a really quick test run on alpha.jitsi.net and I can confirm that some actions are still unreachable by keyboard (but it looks better already, congrats!) |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
I'm so sorry I cannot spend much time on this one. As the app has evolved since my first commit, there is work to do to test keyboard navigation on the current version and only fix what needs to be fixed. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
As seen in #6090 and more specifically in #5992, #5308 and older/closed issues, a lot of elements of Jitsi are clickable but never reachable using keyboard navigation. This PR aims to improve this by adding the
role
andtabindex
elements each time an HTML element that is not reachable on its own (buttons, links) contains anonClick
attribute or converting them to a button when it's not too difficult.I can see it could be factorized somehow but I'm not as confident with React as I could be with another language so, please, if this is an issue, give me some tips to improve this PR so it can be commited soon.