deedum icon indicating copy to clipboard operation
deedum copied to clipboard

can you please add semantic labels to improve accessibility for screen readers?

Open crentava opened this issue 3 years ago • 9 comments

hello. I am a visually impaired person that uses what's called a screen reader. This means that I have things on the screen read out to me. Unfortunately, this app is hard to use because it seems that a lot of the tabs/buttons are icons only. There is a class in flutter called Semantics that allows you to add labels (along with other things) to improve accessibility. for screen reader users. If it helps, I will list out the parts that aren't labeled.

  • the tab list that allows you to do things like create an identity set the homepage, and other things like that. This needs to be labeled because as it stands, screen reader users have to memorize the order of the tabs.
  • the buttons beside things like the identities and the currently open tabs.

the only thing you have to do is to wrap the widgets for the tabs and buttons in the Semantics widget. I was going to do this myself, but I can't seem to get flutter to run the app or even build an apk. Thank you for your time

crentava avatar May 31 '22 18:05 crentava

Thanks for this, it would be really good to get this in. A PR would be really nice as my time to work on this is pretty spotty. If you make the code changes even if you don't build and open a PR we can see if the github actions CI can build it.

For building with flutter, I pin to flutter 2.8.1, where are you getting stuck?

If it's too much, no worries, I just can't say when I'll be able to look at this myself.

snoe avatar May 31 '22 19:05 snoe

I'm getting errors about gradel terminating with exit code 1. I’m on flutter 3. I have not made any modifications to the app at all. I just cloned the repo, ran flutter pub get, and ran flutter run. Weather I run or build i, I still get the same error

crentava avatar May 31 '22 19:05 crentava

ah I see. I'm not sure if it's how I've set up the project but it seems that every few months the build completely breaks as flutter and packages change and I need to futz with it until it builds on latest.

snoe avatar May 31 '22 20:05 snoe

is there a way to fix it.

crentava avatar May 31 '22 20:05 crentava

In general, my approach is to upgrade to the latest flutter, then address the warnings and issues I get from running flutter build apk. It looks like there's warnings about some sort embedding api, and packages that require a new api version. Also seeing errors about ExtendedText that I had to use to fix https://github.com/snoe/deedum/issues/61 but following the flutter issue https://github.com/flutter/flutter/issues/91464, this extra package may not be necessary anymore.

It's just slogging through all that to make it build again, no magic bullet that I've found.

snoe avatar May 31 '22 21:05 snoe

@snoe I’m just reaching out to tell you that I’m working on this issue, hopefully I will be able to send the PR soon. I must say that I don’t know what I’m doing with updating packages and all of that, but I do know enough to say that adding semantics will be easy. I just wanted to ask a noobish question. Why are you generating tabs dynamicly? is that somehow better?

crentava avatar Jun 08 '22 06:06 crentava

@crentava oh that's great, thank you.

Do you mean here? https://github.com/snoe/deedum/blob/master/lib/next/app.dart#L105 The only reasoning I can give is that I've had a number of state bugs in the past, with tabs in particular. I've gone through at least 3 iterations trying to fix them.

The tab count button in the appbar was always out of sync with the actual tabs so the last big change I made was to push everything possible into the models.

This managed to get everything in sync, and while I feel it's in a decent state now, I'll fully admit there could be better ways. This is the first thing I built in dart or flutter and following through tutorials it's pretty rare for them to go through advanced state management.

snoe avatar Jun 08 '22 16:06 snoe

sorry i didn’t explain properly haha. I ment the tabs like the bookmarks and identities tabs. You seem to generate tabs rather than hardcoding them

crentava avatar Jun 08 '22 16:06 crentava

sorry I still don't follow. but if you see something that can be improved while you're doing this, go ahead.

snoe avatar Jun 08 '22 17:06 snoe