Bug #100220 Accessibility features don't work in file dialogs
Submitted: 14 Jul 2020 17:24 Modified: 15 Jul 2020 6:17
Reporter: Jon Gotow Email Updates:
Status: Verified Impact on me:
Category:MySQL Workbench Severity:S2 (Serious)
Version:8.0.21 build 16448441 OS:MacOS (10.14.6)
Assigned to: CPU Architecture:x86
Tags: accessibility, usability

[14 Jul 2020 17:24] Jon Gotow
Accessibility features don't work in Open and Save dialogs within MySQL Workbench. This prevents vision impaired users relying on VoiceOver from selecting and opening files.

How to repeat:
1. In macOS, go to System Preferences > Accessibility > VoiceOver and enable VoiceOver.
2. Launch MySQL Workbench and select File > Open Model from the menu bar.
3. In the file dialog, make sure that it's in List view (as opposed to Icon view or Column view).
4. Move the mouse over any item in the list of files. 
5. VoiceOver will speak something like "Column 1, row 2". It should speak the name of the item. You can verify this by using an Open dialog in any other Mac application, such as Safari.

Suggested fix:
I've looked into this a bit, and it appears that MySQL Workbench is returning items from the entire class hierarchy when Accessibility services ask for an item, rather than just returning the significant, non-hidden items like all other Mac applications do. You can see this by using the Accessibility Inspector developer tool provided by Apple with Xcode (in Xcode, choose Xcode > Open Developer Tool > Accessibility Inspector). Use the "point to inspect" tool to select an item in the Open dialog of MySQL Workbench and look at the object hierarchy. Then do the same in the Open dialog of any other application - the hierarchy returned from MySQL Workbench contains many extra layers of objects that cause VoiceOver to speak irrelevant information to the user.

This is likely caused by MySQL Workbench either modifying the accessibility hierarchy internally in its code, or by manually handling accessibility requests and not traversing past hidden items when hit-testing for an item. Details can be found in https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Accessibility/c...
[15 Jul 2020 6:17] MySQL Verification Team
Thank you for the feedback.
Verified as described.