-
-
Notifications
You must be signed in to change notification settings - Fork 62
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
[Request]: When describing status item for screen reader users include the text content #1164
Comments
Thanks for the suggestion and code! There's a few things to consider:
|
Sorry for the wall of text. There's just so much to consider, so much info to announce and so many edge cases to take care of that it has to be done as perfectly as possible. |
Hello, Thanks for listening. Greetings Peter |
I'd love to be less verbose but at the same time be extremely clear on the post's details to avoid any misunderstandings. For example, the date. If we announce just '2 hours ago', couldn't this lead to a post with the content "15 hours ago" that was posted 2 hours ago be announced as "2 hours ago 15 hours ago"? Also, there are actually two dates that can exist at the same time, one for when a post was published and one for when a post was edited. Announcing it as 'Edited 2 hours ago', the screen reader users also understands that the post has been edited. Similarly for spoilers. If we don't separate when the spoiler ends and when the content starts it can be messy. Same thing for post stats. If the post ends with "15 boosts" and the screen reader announces the posts stats without a prefix, it can end up as "15 boosts. 15 boosts. 2 favourites.". My point is that fedi has all sorts of things, from long blog posts to trolls who might interfere with our aria labels and unless we account for everything the screen reader users will be the ones most affected from it. You are both familiar with fedi and linux' accessibility quirks but for someone new to both or either of these, this could lead to confusion.
Currently all posts are displayed in full, so I wouldn't worry about this.
I agree and this separation of label and description somewhat worked towards that. Post metadata are currently in the aria LABEL, while the post content is in the aria DESCRIPTION. My thought process was that you can decide if you want to skip the LABEL and read the DESCRIPTION or if you want to skip the whole post altogether. I don't think skipping just the LABEL is possible however... Okay, how about we remove metadata that can be focused / announced by tabbing? Attachments and their alt text, post stats, quote, poll. But then again, a screen reader user might not want to continue if they knew that the post had 100 attachments etc.
This is being done when possible (e.g. the label with custom emojis, custom emojis are marked as presentation). But I'm a bit hesitant to do this on everything that cannot be focused because they still have tooltip texts that may influence the alt text. E.g. the date tooltip text shows the full date time string in YYYY-MM-DD HH-MM-SS and the visibility icon tooltip text shows the visibility name.
In most cases, clicking the avatar in a post will open a 'mini-profile' popup (which is basically the user's profile for quick-view). While the display name will open the full profile every time. |
Hello, Seperating to aria label and aria description may not really work well in our case I am afraid as orca presents the descendants if their content is not already a part of the parent's name or accessible text. So we will either become more aggressive with role=presentation or we'll move everything to the accessible label I think. And of course using role=presentation on focusable elements is not suitable as these need to be reported when focused. |
I would almost think that if the item has its own a11y label, Orca should not use the descendant speech or maybe braille generator logic, but I did not ask Joanie yet whether it is a bug or not. Anyway, personally, I'd put the post content before the stats in the a11y label. |
@tyrylu The thing is that post content is not yet part of the accessible label at all and @GeopJr is not leaning towards adding it as it may be a long form post such as a blog article in extreme cases. We screen reader users would definatelly like to hear the post content while navigating in the list. So I'm not sure what the consensus might become here. |
My opinion doesn't have much value in this matter, but I still want to point out extreme cases on the fediverse. From troll posts to blog posts, from memes to code blocks; the post content has to be audibly separated from the post metadata. Repeating myself from a previous comment:
Either way, I'm close to a feature freeze so I can start focusing on strings, including aria labels, soon. |
Yes, the character limits are wild in the Fediverse, and I am aware of that, however, in the a11y case, I'd either be okay with it, or I'd include the text if it is not longer than, say, 280 or so characters, and include a truncated version if it is longer than that. |
Okay so, going back to the original request of adding the content on the LABEL; removing the aria relation of 'the post is described by the widget that shows the post content', causes GTK to try and figure out the description from the children no matter what I do. So the screen reader ends up announcing posts like this:
So it ends up appending useless unrelated tooltips and then the post content again 🤷 I tried a lot but nothing seems to prevent GTK from doing this. This requires more research from my side. A similar situation is the post stat buttons that get announced as "5 toggle button not pressed Favorite". The suggestion was to announce them as "Favorite (5)" instead, but no matter what I do I cannot prevent them from being labelled by the button content which is a label with the text '5' in this example. With that said, I will proceed with merging the rest of the accessibility fixes in the #1226 PR which includes anything from incorrect aria roles to a post aria verbosity setting. That setting will allow you to set how verbose you want the post aria labels to be from 0-3. It's not meant to be a permanent solution but rather as a way to see what's the optimal situation. 0 = no custom aria label 3 being what's the default You'll be able to set it either with dconf-editor or with the following command outside of flatpak:
in flatpak:
(replace 3 with the desired verbosity level. Anything outside the 0-3 range will get normalized) |
I suspect that the Orca behavior is a bug, e. g. I'd expect the a11y label to take precedence over the heuristic. Maybe report it upstream? Reproducing this should not be so hard in a test case. |
I'm pretty sure it's on GTK's side and not Orca's because the GTK inspector's 'Accessibility' tab reports "5" as the final name - despite also listing the aria label as "Favorite (5)" |
Well, yes, GTK can do a descendant deep dive for some roles as well, and excluding some controls from it is not possible, you'd have to set a11y labels, maybe labeled by relations, but for labeled by relations, they're not supposed to be recursive, so a control having a labeled by relation would ignore a labeled by relation on the intermediate widget for its own computation. |
Hi. Orca maintainer here. @GeopJr: A number of significant changes were made in Orca related to presentation of GTK list items. Some of these are in Orca v47; others are only in the main branch. I just built Tuba from source and tried it with Orca from its main branch. It would be extremely helpful if you could build Orca and tell me what isn't right. Then we can work together to find the best solution. Thanks in advance! |
Hello 👋 I really don't think Orca is responsible for the button aria label, here's what GTK inspector shows: While the LABEL is set to "Favorite (7)" and the DESCRIPTION to an empty string (done mostly in the hopes of stopping GTK from going further down the tree), the final Name is still "7". Not even "Favorite (7) 7", the LABEL is being completely ignored. I'll test them both with the main orca branch in a bit because we've been dealing with Orca freezing our machines lately and I can't get it to read the widgets due to that. bgtlover on Matrix has also been dealing with it and recently got a journalctl and has a reproduce, hopefully they'll open an issue on Orca's repo soon! |
That's interesting. I use the Accerciser accessibility inspector -- without Orca running -- and can sometimes crash Tuba just by looking at Tuba's accessibility tree. Something bad is clearly happening somewhere. Knowing what it is would be helpful. |
Describe the request
Hello @GeopJr
Huge thanks for taking screen reader accessibility seriously. It's working fine for me.
When using up and down arrow keys to navigate in the list of toots the item's accessibility text is reported.
However in order to reach and read the actual post content I need to use tab to navigate to the label with the post text.
I think it would be easier if that accessible text also contained the text content of the toots.
I am not a real coder, but my quick attempt at doing it is here
Implementation Details
The text was updated successfully, but these errors were encountered: