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.
<rdar://problem/69161777>
Created attachment 409147 [details] Screen recording demonstrating how menus in a menubar are announced as "button" and submenus are announced as "interactive"
Created attachment 409148 [details] Screen recording demonstrating the desired behavior: menus is a menubar should be announced as "menu" and submenus as "submenu"
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.
Seeing same behavior as above in 13.1 Beta (22C5044e)
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"
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.
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"
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>.
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)).