jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
1k stars 224 forks source link

Accessibility: VoiceOver issues with iOS app #3315

Open ann0see opened 3 months ago

ann0see commented 3 months ago

Discussed in https://github.com/orgs/jamulussoftware/discussions/3313

Originally posted by **a-singer** July 24, 2024 Hello, I'm having a bit of difficulty using the Jamulus app with VoiceOver on iOS. There are quite a few issues, but I suspect there are actually very few underlying difficulties, or only one. Basically, in Jamulus, VoiceOver does not seem to be able to select anything, whether with touch or through the keyboard. To reproduce: 1. Launch VoiceOver with either triple click home or from the accessibility menu, it seems to make no difference how it starts and I have rebooted the phone. 2. Open Jamulus. 3. Double tap on connect/disconnect. This will bring up the connect/disconnect dialog, as expected. 4. Tap anywhere on the screen. What should happen is for the screen reader to tell you what your finger just tapped and for that item, whatever it is, to take VoiceOver focus. It doesn't. What actually happens is that VO just says "connect", which I think is the top line of the window. 5. Another method of navigation is by swiping. Swipe to your right and you will hear items supposedly take focus in the dialog. I'm not sure if they do because, when I double tap, just for example, to invoke a text box, I hear "connect". Something odd is happening where the VO focus is constantly returning to the top of the screen. Again, I'm not sure whether this is the same issue but some controls are also unusable. To find just one, 1. Open Jamulus. 2. Double tap on settings. 3. Be sure to be in the audio setup. 4. double tap the auto box for the buffers so that this is unchecked. This works. 5. Swipe to either buffer. To change a value like this one, you usually just swipe up to increase, swipe down to decrease. In this case, I can do that as much as I like, but it still says "ten". I'm not sure whether it is actually changing and not being announced, or not changing at all. I suspect the latter since when I close the app and open it again, the buffer remains at ten. I realize this isn't used very often, but any help would be very gratefully received.
ann0see commented 3 months ago

May be Qt related.

ann0see commented 3 months ago

Also considering your comment @a-singer that nobody is interested in this edge case - luckily that's false. There's even a fork focused on accessibility https://chigkim.github.io/jamulus/

https://github.com/orgs/jamulussoftware/discussions/1466

a-singer commented 3 months ago

Thanks, this really isn't my area but I might as well learn. I realize this is probably not something which is easy to write up but is

https://github.com/jamulussoftware/jamulus/blob/main/COMPILING.md#ios-

up to date? Also, would you be able to point me at where to add the argument? I'm happy to hard code the server, I won't be connecting to any other from that device. Again, if you have a minute, I'd like to modify the initial setting of the jitter buffers. Is that doable while compiling the code? Thanks again.

a-singer commented 3 months ago

Oh, and I wasn't saying that nobody was interested in accessibility, I have actually seen a great deal of work done on it and even recall that someone wrote an accessible version of the GUI which didn't need to be maintained any longer because it had gone into the main code. I was talking about the iOS app's accessibility because it can't really be distributed.

ann0see commented 3 months ago

You can see that the connect flag is set here:

https://github.com/jamulussoftware/jamulus/blob/main/src/main.cpp#L478-L485

You could - after the loop - set the respective flag manually on a GitHub fork. Then check the GitHub actions tab in your repository and download the ipa file.

ann0see commented 3 months ago

I'd like to modify the initial setting of the jitter buffers. Is that doable while compiling the code?

That's probably possible, but I don't know it from the top of my head. Probably it's in settings.cpp, utils.h or clientsettingsdlg.cpp

The change should probably happen in the config file anyway. You'd set the config file on your PC, transfer it to the phone and then load it from there. Not sure if the "loading config file" works well via iOS. It may need some fiddling with Finder/iTunes, the Files app etc. where you'd copy the config file to your iDevice