-
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 Jitsi WCAG 2.1 compliant #8921
Conversation
Hi, thanks for your contribution! |
Jenkins, test this please. |
We expected some failing tests regarding changed toolbox button labels. If I remember correctly they are used to select the DOM elements in some tests. Can we move to test-id attributes instead to avoid issues in the future or will this cause to many issues because of failing tests on other branches? |
If I remember correctly there were problems with test-id, it was not accessible on some mobiles through the apis. So we moved to not using those... |
Amazing work! Please bear with us as we review such a large amount of code. I suppose the answer is "no", but I'll try anyway: any chance this can be split into smaller units of work for easier review? |
Unfortunately no, these changes all kind of depended on each other so we squashed them all together. |
I will give it a try today, to fix the tests. |
I gave it a quick test and I see that PTT does not work, other shortcuts seems to work (at least video mute). |
It will not mute you on first press of the spacebar (previous behavior) instead it will only unmute you when you hold space while you are muted. This was kind of confusing behavior before because the expectation for push to talk was that holding SPACE will unmute you while you are muted. <- was this what happened in your case? |
Yes, exactly. That's it ... |
@skolmer Hey, the author needs to be the same for the PRs to work together, and the branch names of course. Can you open a PR in jitsi-meet-torture, please? |
I have added a better description to "Fixes" in the PR description to make this more obvious. I'm aware this is a change that can cause confusion If you are used to the old behavior and tried to better explain our interpretation how PTT should work. Let us know if you can follow our argumentation or if this needs some more discussion. |
Oh and first conflicts came in, sorry for that. So one other thing I see, so the tests are failing around the room password and setting password on pre join screen, I will take a look at the tests ... but one change in behaviour, room key/password field, when setting - |
This was already the case, or I'm missing something? |
This definitely sounds like a regression. I will take a look tomorrow. |
This was an interesting bug I noticed while testing. You can still see this on alpha.jitsi.net. There was a check like |
Thanks, yeah the passwords tests are failing because of that. https://github.com/jitsi/jitsi-meet-torture/blob/7537ee65a7d43248e9c3a42a2e353be3e8de129d/src/test/java/org/jitsi/meet/test/pageobjects/web/SecurityDialog.java#L88 |
Yep, all other tests are failng because of https://github.com/jitsi/jitsi-meet-torture/blob/7537ee65a7d43248e9c3a42a2e353be3e8de129d/src/test/java/org/jitsi/meet/test/pageobjects/web/SecurityDialog.java#L88, just checked and Lobby. |
Thanks for testing and taking the time to explain, sounds like we will be able to provide a fix tomorrow. |
There will be one for the other PR and I will schedule and rerun for this one |
I'm a little bit confused by the test that is now failing. |
Is there a change around that dialog .... ? |
Not recently. But there was a change in the ModalHeader we had to merge in. c4677be#diff-5dc31303b04eb9e5630274591a2dcbd1a4a6df33db756d64530cf7c0ec7bf893R86 I've looked in the test log and it says
This would indicate an issue locating the button that opens the dialog. In the stacktrace it also shows the InviteDialog.close though
|
@skolmer can you update torture once again, please. For some reason I cannot push directly. |
I tested it locally and it seems to work after changing that. |
Thanks, I started the tests again 🤞 |
Jenkins please test this please. |
Took it for another spin and the conference behaves properly! 🚀 On a separate note, as Saul has stated waaay above, in the future, we should probably try to avoid such PRs as they are a nightmare both to review and to maintain. Waiting on the ok from @vp8x8 as well, but in the meantime, the CI seems to be failing for some reason 🤔 |
I totally agree. I think it was the nature of this change that required to extend almost every component with keypress handler and aria tags. Next time we will try to do it component after component even if it means to have a 2-digit number of PRs... still better than maintaining THIS. 😊 Thanks for taking the time though |
Yeah, I think multiple small PRs would be much easier to treat in isolation. Regarding the failing pipeline, it might have something to do with some discrepancy between package and package-lock. Could you possibly try to run a clean |
Not today I'm afraid. But if you send me a fixed lockfile I can push it to the branch. |
Test it and looks great. So when the pipeline issue is fixed we can merge. 🎊 |
OK cool, CI seems to be running now 🎊 |
The tests were green yesterday when I left the message ... The only failing is the github action, but it is something on github side so, I'm not worried after the PR test passed. |
@skolmer after merging this, some tool for detecting accessibility problems will be good to add so we keep the UI up-to-date, maybe you can help with that :) |
My time in the next two weeks will be very limited but after that I will be happy to integrate some tooling and also make some suggestions how the rules for future feature PRs can look like. Tooling is limited so we will need a combination of tooling and a checklist of best practices a contributor/reviewer should follow. |
👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Astounding work! Thanks for taking the time and having patience with the entire review process! 🚀🎊
Congrats @skolmer and Thank you! Looking forward to implementing something automated + manual so we can fix and keep the code compliant. Thank you once again for the dedication and help. |
* Make Jitsi WCAG 2.1 compliant * Fixed password form keypress handling * Added keypress handler to name form * Removed unneccessary dom query * Fixed mouse hove style * Removed obsolete css rules * accessibilty background feature * Merge remote-tracking branch 'upstream/master' into nic/fix/merge-conflicts * fix error * add german translation * Fixed merge issue * Add id prop back to device selection * Fixed lockfile Co-authored-by: AHMAD KADRI <[email protected]>
* Make Jitsi WCAG 2.1 compliant * Fixed password form keypress handling * Added keypress handler to name form * Removed unneccessary dom query * Fixed mouse hove style * Removed obsolete css rules * accessibilty background feature * Merge remote-tracking branch 'upstream/master' into nic/fix/merge-conflicts * fix error * add german translation * Fixed merge issue * Add id prop back to device selection * Fixed lockfile Co-authored-by: AHMAD KADRI <[email protected]>
WCAG 2.1 AA Compliance / Accessibility
This PR is the followup to #8423 @saghul @damencho
We managed to make jitsi-meet (web) fully WCAG 2.1 AA compliant. This has been tested and approved by two independent entities.
One feedback I want to share with the community came from a person who relies on a screen-reader for his daily work. He was very excited that he was finally able to participate in video conferences at his workplace.
We would really appreciate if you could give this review some priority because it looks like there is currently a lot of work being done on UI elements and we already had a hard time keeping up with the master branch while doing our final code review 🙂
This is a rather large PR (sorry 😉) because we had to modify almost every element of jitsi-meet web. But don't be afraid there are a lot of similar changes like aria attributes, color contrasts or keypress handler.
I will go into more detail regarding PTT and global keyboard shortcuts below to give you more insights what we did and why we did it. This should make your life easier reviewing all these changes. If there are still things we missed to explain please let us know in the comments.
Features
Fixes
eslint-disable-next-line react/jsx-no-bind
was used to avoid unnecessary rerenderPush-To-Talk (PTT) / Keyboard Shortcuts
We decided on an approach that allowed us to keep global shortcuts (like PTT) the jitsi community is used to while adding space bar support to UI elements like buttons and menus.
This took some extra work because PTT and other shortcuts like numbers can interfere with the expected experience of screen-reader users and keyboard users in general.
Credits
Big thanks to my team who did most of the hard work @agnesboldt @ahmadkadri @MaikHannemann @nurjinjafar @phk-nord
Dataport would like to thank the Jitsi Open Source Community for a great product with this active contribution from its Phoenix Open Source Initiative – for further information please visit https://www.phoenix-werkstatt.de or https://www.dataport.de