-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
a11y - A cumulative merge request #5984
Conversation
f4b06de
to
0962bc5
Compare
e82b9ad
to
29dffd7
Compare
Hello, wonderful you're giving all this a shot! 🥇 I don't have much time right now for looking into things here, but just a couple of points:
As far as I know this is intended behavior of Orca, and at least is not specific to Mumble (or Qt). One thing you need to consider is that screen reader users really don't like too much verbosity, as it kills productivity and creates noise. In many places, only things that actually changed should be re-announced.
Indeed the raw value isn't very useful; however visually you have a slider, so a concept of percentage might be interesting to report. If the value was in the 0-100 range that would mostly do it I guess (?) PS: I'm not actually a real screen reader user, but most of my job is a11y under Linux. Yet, actual user feedback would be more valuable -- and somebody posted a link pointing here on the Orca mailing list so you might hope for some feedback indeed :) |
Yeah, that is what I kinda figured. That confused me at first, but I think it is actually beneficial for the reasons you stated.
Sadly the range of these sliders are mostly 0-32767, which is absolutely useless. But giving a percent readout by dividing by 32767 would work. For the volume at least. The whole voice-activity-detection configuration is pretty much unusable as a blind person right now, as there is no other than a visual indicator when the voice is inside the threshold. I just hope Qt lets me somehow overwrite the slider value in any way dynamically at all.
That is pretty cool. I hope I can live up to any expectation there might be. For the time being I am working on this in my limited free time. |
Qt offers a feature called buddy labels. With that certain UI elements can have a label, which represents the UI element in a textual way. This is very important for screen readers as they otherwise might not read the correct for any given UI element. Adding buddies is as simple as using the "Edit buddy" dialog in the Qt editor. This commit sweeps through (almost) all UI elements and applies the correct buddies where applicable.
…able In c73f967 accessibility names and descriptions were added to Mumble but they were placed in code. This commit moves all those texts into the respective .ui file where applicable. If the accessible name is changed or calculated at runtime, it obviously needs to still be defined in the source code.
A lot of accessible names or descriptions were either missing, wrong or misleading. This commit tries to unify and improve all accessible names and descriptions Fixes mumble-voip#1337
Previously, the accessibility of the inline slider was very limited due to the cumbersome and lacking system Qt provides. This commit gently tricks Qt into behaving like a nice framework in regards to accessibility. Fixes mumble-voip#6109
This commit switches the plugin config tree to a new MultiColumnTreeWidget and makes it keyboard navigatable. It also makes screen readers read actual column values.
This commit switches the message notification type tree to a new MultiColumnTreeWidget and makes it keyboard navigatable. It also makes screen readers read actual column values. Fixes mumble-voip#2972
This commit switches the search result tree to a new MultiColumnTreeWidget and makes it keyboard navigatable. It also makes screen readers read actual column values.
This commit switches the global shortcut tree to a new MultiColumnTreeWidget and makes it keyboard navigatable. It also makes screen readers read actual column values. Fixes mumble-voip#2293
This commit changes the menu items and some buttons to conform to universal [1] standards. This means that: * Labels are using title case (e.g. "Listen to channel" -> "Listen To Channel") * Menu items are generally not including the menu title in the action label (e.g. "Join Channel" -> "Join") * ALL menu items have non-overlapping access keys (ALT + <access key>, denoted by underline) * Ellipses ("...") are only used for actions that require further user input, simply opening another window is not a reason for using an ellipsis. [1] State of the art as documented by major vendors in the consumer software industry. For example: https://learn.microsoft.com/en-us/windows/win32/uxguide/cmd-menus https://developer.apple.com/design/human-interface-guidelines/menus https://develop.kde.org/hig/components/navigation/menubar/
Previously, there was no way to move users from channel to channel using only the keyboard. For accessibility reasons, that was not ideal. This commit adds a new action to the user context menu allowing to move the selected user to your own channel (given enough permissions). While this is a decent workaround, the end goal will be to remove this action and replace it with a dedicated dialog to choose the channel a user will be moved to. See mumble-voip#4642
💚 All backports created successfully
Questions ?Please refer to the Backport tool documentation and see the Github Action logs for details |
Backport "Merge pull request #5984 from Hartmnt/feat_a11y" to 1.5.x
So I just tried out 1.5.634 and I can now freely tab around, but the chat log is still not very nice to read. I can only use Orca's flat review bindings, and it also reads out other screen elements alongside the chat log. Ideally, the chat log should have a cursor you can move around with the arrow keys. Pressing tab does change focus to links in the chat, but Orca doesn't read out the links at all. The settings are now accessible, which is great. The sidebar works great with Orca now. Sliders read out their percentages when changing them, however, when I press KP_Begin to read the current selected item, every slider reads out "Slider 0%", even though they're not 0%. |
Thanks for the feedback! The chat log was not touched by the accessibility overhaul as it needs to be completely written from scratch to make it work with keyboard navigation and screen readers (which is planned). To try to explain why: Visually there are distinct messages in the chat log, however programmatically it is more like one giant wall of text with no clear separation. To fix this we need to create new/other UI elements for each message, which is possible but would have exceeded the scope of the first iteration of accessibility fixes. Also, I will look into the slider situation, thanks. |
Well, TeamTalk also uses a big multi-line textbox for the chat log, but it allows the user to use a text cursor inside this textbox (like carret browsing), so users can read each message like a line of text. It wouldn't be that hard to make that work for Mumble in the meantime, would it? Although clickable links might be a bit of problem in the way.
I just noticed that when using the arrow keys in the channel and user list makes Mumble send useful details to the screen reader. But unfortunately pressing KP_Begin only reads out "server" to the screen reader. |
In all my testing I have never tried to use KP_Begin and KP_End, so I guess I have to go through all UI elements again and test the behavior. I would not be surprised, if you manage to find other quirks with KP_Begin and KP_End |
There are some obvious improvements here, thanks for that, we're getting there! In the meantime, for the chat logs issue, you can do what transmission did, where they basically made the label have the role of textbox. Good for navigating line by line, less so about character by character for whatever reason, but at least it works now. Maybe that's a good stopgap solution? for links, you could make a menu item, button, keyboard shortcut, whatever, which pops up a dialog with a list of all the links in the focused message, then when we activate one of the items, the link should open as usual. In the meantime, here's the issue for transmission: transmission/transmission#6512 and here is an initial pr which fixes that particular issue, for some definition of fixes. It's also mentioned in the issue, but putting the link here makes it easier to find: transmission/transmission#6520 Hope that's of some help! |
This post contains a very long ToDo list. To jump directly to my post containing links to binaries, follow this link.
The current version is from February 2024.
Greetings everybody,
As stated before, I am going to try to improve the accessibility of Mumble. This is rather hard for me, because I am limited to the accessibility options provided for Linux - specifically Ubuntu 22.04 LTS with Gnome Desktop Environment. Furthermore, I am not using any accessibility tools myself, so I might miss or misinterpret a thing or two. Nonetheless, I am going to try to improve what I can and Qt lets me.
This merge request is supposed to contain all the changes I make as separate commits. It also contains a ToDo List further down, which I will also try to keep accessible for screen readers. Please feel free to add comments for additions to the ToDo list, or other general feedback. Please note that parts of the ToDo list might be impossible to solve due to how the Qt Framework works, or might be specific to my screen reader configuration.
Note: These commits are currently not part of any official Mumble release. They probably will not make it into Mumble before the 1.5 series is released. If you want to try out the changes in this branch, you will have to either compile the branch yourself, or go through the cumbersome GitHub user interface to navigate to the build pipeline artifacts of this merge request.
For the following ToDo list I went through Mumble with a screen reader using only the keys TAB, Shift-TAB, Arrow Keys, Space, and Enter. It is clear that Mumble is very inaccessible in certain places.
I have since updated and adapted the ToDo list with respect to feedback I have gotten here on GitHub.
Start of the ToDo list.
In the "Audio Tuning Wizard":
General:
First page of the "Audio Tuning Wizard":
Device Selection page:
Volume Tuning page:
Voice Activity Detection page:
Quality & Notifications page:
Edit Shortcut Dialog:
In the Main Mumble Window:
<a>
) to channels and users using TAB, which are not read as well as very unhelpful anyway. These should not be selectable.In the Mumble Server Connect Dialog:
Certificate Alert:
In the Server Information Dialog:
In the Client Information Dialog:
In the Access Token Dialog:
In the Recorder:
In the Certificate Wizard:
General:
Certificate Authentication page:
New Certificate page:
Replace Certificate page:
Export Certificate page:
In the Mumble Settings:
General:
Audio Input page:
Shortcuts page:
Messages page:
Plugins page:
Overall
...
End of the ToDo list.