jamulus icon indicating copy to clipboard operation
jamulus copied to clipboard

Server List Is Not Accessible With Screen Reader on Mac

Open chigkim opened this issue 3 years ago • 12 comments

Describe the bug

Server List Is Not Accessible With Screen Reader on Mac

To Reproduce

  1. Open server list to join.
  2. Turn on VoiceOver with command+f5 (or command+triple click power on newer mac with with touch bar)
  3. Try navigating the list with tab and arrows None of the QTreeWidgetItems are not announced as being selected. However, if you move the mouse cursor to one of the item and press control+option+f5, you'll hear what's under the mouse. It seems like QTreeWidgetItems are accessible, but they don't appear as children of QTreeWidget to accessibility API.

Expected behavior

QTreeWidgetItems should be announced

Screenshots

/

Operating system

macOS

Version of Jamulus

?

Additional context

Probably fixed here: https://chigkim.github.io/jamulus/

chigkim avatar Aug 03 '20 17:08 chigkim

However, if you move the mouse cursor to one of the item and press control+option+f5, you'll hear what's under the mouse.

I have tried this but it does not work on my Mac. Maybe it is an issue of my old MacOS.

It seems like QTreeWidgetItems are accessible, but they don't appear as children of QTreeWidget to accessibility API.

That sounds to me like a but in Qt since the QTreeWidgetItems are always children of QTreeWidget, right? Or is there a possibility to add QTreeWidgetItems in a QTreeWidget if they are not children?

corrados avatar Aug 09 '20 08:08 corrados

Sorry I'm not sure why control+option+f5 didn't work for you. When a sighted person manually move my mouse and puts it on one of the server, and if I press control+option+f5, VO announced the item for me. So far, my dirty hack around was to add a each item as a button to the tree. This has its own problem where you can't expand with right arrow to look at the users, but at least people can look at the servers and join one. Inside CConnectDlg::SetServerList

for (int i=0; i<lvwServers->columnCount(); i++) {
     lvwServers->setItemWidget(pNewListViewItem, i, new 
QPushButton(pNewListViewItem->text(i)));
}

Inside CConnectDlg::SetPingTimeAndNumClientsResult

dynamic_cast<QPushButton*>(lvwServers->itemWidget(pCurListViewItem, 
1))->setText(pCurListViewItem->text(1));
dynamic_cast<QPushButton*>(lvwServers->itemWidget(pCurListViewItem, 
2))->setText(pCurListViewItem->text(2));

chigkim avatar Aug 09 '20 15:08 chigkim

I just tried it out with the screen reader which is built-in the Windows 10 operating system. That screen reader can read all list items without any problem. You can even let it read the connected musicians names.

So I assume that we have an issue which is Qt and Mac related. I don't think I can fix anything in the Jamulus software to get it working.

I see that you have implemented a workaround. But unfortunately, this code I cannot use in the official Jamulus version.

corrados avatar Aug 10 '20 20:08 corrados

Thanks for the info. Yea I was pretty sure that hack would break UI. I'll look more into it. For now, I'll incorporate the server list hack to my own repository and distribute to screen reader users using Mac. FYI, we created a Jamulus group for screen reader users on whatsapp yesterday, and we already have 25 people, mostly mac users.

chigkim avatar Aug 11 '20 01:08 chigkim

@chigkim once we're moving to Qt6 (https://github.com/hoffie/jamulus/tree/Qt6-hoffie-cleanup) could you please test if anything gets better?

ann0see avatar Jan 26 '22 20:01 ann0see

Sure, please ping me when the migration completes.

chigkim avatar Jan 27 '22 15:01 chigkim

You should be able to have a look at the PR‘s by @hoffie tomorrow/at the weekend

ann0see avatar Jan 27 '22 19:01 ann0see

Sure, please ping me when the migration completes.

Hard to tell when the full switch completes, but you can already try builds from PR #2300 here: All binaries (or: Direct link for Mac). Only Windows (64bit) and Mac (non-legacy) have changed. If you are using any other platform, then these binaries are unlikely to improve things for you yet.

Note: This is completely untested. Please report back if you see any breakage or -- hopefully -- improvements with regards to screen reader compatibility.

hoffie avatar Jan 27 '22 23:01 hoffie

Unfortunately the server list is still broken. I could be wrong, but I don't think qt6 addressed QTreeWidget and QTreeWidgetItems for Mac.

chigkim avatar Feb 19 '22 15:02 chigkim

That’s not good. Is it a known Qt bug or can Jamulus work around it - in a compatible way of course?

ann0see avatar Feb 19 '22 17:02 ann0see

If it’s a Qt Bug, maybe an issue can be raised on their side

ann0see avatar Feb 19 '22 17:02 ann0see

Hi, Sorry for the maintenance noise here. I’m just into triaging issues. I've just updated the issue description to fit into the template. Hopefully some day this issue will be fixed.

ann0see avatar Apr 22 '22 18:04 ann0see