RESOLVED FIXED 216707
AX: ARIA submenus announced as "interactive" not "submenu" by VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=216707
Summary AX: ARIA submenus announced as "interactive" not "submenu" by VoiceOver
Todd Kloots
Reported 2020-09-18 10:53:30 PDT
Steps to reproduce the problem: 1. Start VoiceOver 2. Go to the ARIA 1.1 menubar example https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html 3. Press tab to move focus to the "About" menu in the ARIA menubar 4. Notice VoiceOver announces the "About" menu as a "button" 5. Open the "About" menu 6. Press the down arrow to navigate to the "Facts" submenu 7. Notice VoiceOver announces the submenu as a "button" What is the expected behavior? Top-level menus in a menubar should be announced as "menu" - just as they are by VoiceOver when navigating the MacOS menubar. Submenus in a menu should be announced as "submenu" as they are by VoiceOver when navigating any MacOs menu with submenus. What went wrong? 1. Top-level menus in a menubar are announced as "button" 2. Submenus in a menu are announced as "button" This is a pretty important bug to fix as announcing a submenu as a "button" sets people up for failure since the interaction pattern for buttons is different than submenus.
Attachments
Screen recording demonstrating how menus in a menubar are announced as "button" and submenus are announced as "interactive" (2.93 MB, video/quicktime)
2020-09-18 10:58 PDT, Todd Kloots
no flags
Screen recording demonstrating the desired behavior: menus is a menubar should be announced as "menu" and submenus as "submenu" (2.88 MB, video/quicktime)
2020-09-18 11:00 PDT, Todd Kloots
no flags
XCode project illustrating the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA (35.60 KB, application/zip)
2022-11-17 08:53 PST, Todd Kloots
no flags
Screen recording demonstrating the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA. (2.64 MB, video/mp4)
2022-11-17 08:55 PST, Todd Kloots
no flags
Radar WebKit Bug Importer
Comment 1 2020-09-18 10:53:44 PDT
Todd Kloots
Comment 2 2020-09-18 10:58:52 PDT
Created attachment 409147 [details] Screen recording demonstrating how menus in a menubar are announced as "button" and submenus are announced as "interactive"
Todd Kloots
Comment 3 2020-09-18 11:00:04 PDT
Created attachment 409148 [details] Screen recording demonstrating the desired behavior: menus is a menubar should be announced as "menu" and submenus as "submenu"
Todd Kloots
Comment 4 2020-11-18 13:42:03 PST
As of Mac OS Big Sur VoiceOver is no longer announcing submenus as "button" but as "menuitem." A step in the right direction, but submenus should still be announced as submenu as they are for native menus.
Sommer Panage
Comment 5 2022-11-14 17:04:48 PST
Seeing same behavior as above in 13.1 Beta (22C5044e)
Todd Kloots
Comment 6 2022-11-17 08:53:34 PST
Created attachment 463584 [details] XCode project illustrating the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA The attached XCode project demonstrates the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA. VoiceOver does not treat them equally. Steps: 1. Download and unzip the attached XCode project (VO Web Menu.zip) 2. Run webbug.xcodeproj 3. Turn on VO 4. Navigate to the "About" button in the WKWebView 5. Use VO + spacebar to open the menu 6. Use the down arrow key to move focus to one of the menuitems 7. Observe how VO announces menuitems as "interactive" 8. Move focus to the "About" button in the other pane 9. Use VO + spacebar to open the menu 10. Press the down arrow key to move focus to one of the menuitems 11. Observe how VO announces simply announces the label of the menuitem, it does not announce "interactive"
Todd Kloots
Comment 7 2022-11-17 08:55:14 PST
Created attachment 463585 [details] Screen recording demonstrating the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA. The attached screen recording illustrates the differences between using VoiceOver to operate an NSMenu and a menu built using ARIA.
Todd Kloots
Comment 8 2022-11-17 08:57:44 PST
The steps I put in Comment 6 were not complete. These are the steps required to verify the bug. Steps: 1. Download and unzip the attached XCode project (VO Web Menu.zip) 2. Run webbug.xcodeproj 3. Turn on VO 4. Navigate to the "About" button in the WKWebView 5. Use VO + spacebar to open the menu 6. Use the down arrow key to move focus to the "Facts" menuitem 7. Observe how VO announces "Facts, interactive" 8. Move focus to the "About" button in the other pane 9. Use VO + spacebar to open the menu 10. Use the down arrow key to move focus to the "Facts" menuitem 11. Observe how VO announces "Facts, submenu"
Brent Fulgham
Comment 9 2023-04-11 17:25:38 PDT
The cause of this bug is outside of WebKit, so resolving as MOVED. The relevant team is working on this issue under <rdar://problem/69161777>.
Todd Kloots
Comment 10 2023-11-30 16:25:11 PST
Verified fixed. Submenus now correctly announced as "submenu" by VO. Tested using Mac OS 14.1.1 in both Chrome (Version 119.0.6045.199) and Safari (Version 17.1 (19616.2.9.11.7)).
Note You need to log in before you can comment on or make changes to this bug.