In the following example: http://test.cita.illinois.edu/aria/menubar/menubar1.php Theres some WAI-ARIA compliant HTML exposing a menu bar with 4 menu items, where each of them pop out a menu when activated, showing some more menu items in those menus. That is, the typical menubar -> menuitems -> menu (for each menu item) -> menu item (for each menu) layout :-) Problem is that WebKitGTK should be exposing something like this (as for roles): Menubar |---> menu item | `---> menu | |---> menu item | |---> menu item | `---> menu item |---> menu item | `---> menu | |---> menu item | |---> menu item | `---> menu item |---> menu item | `---> menu | |---> menu item | |---> menu item | `---> menu item `---> menu item `---> menu |---> menu item |---> menu item `---> menu item However, what is currently exposing is the following: Menubar |---> panel |---> panel |---> panel `---> panel ...which is obviously wrong, preventing ATs from checking the contents of those menus
Created attachment 89015 [details] Patch proposal + Layout test Attaching simple patch to fix this along with a cross platform test (needs adding new results for other platforms, say, Mac and Win)
Comment on attachment 89015 [details] Patch proposal + Layout test View in context: https://bugs.webkit.org/attachment.cgi?id=89015&action=review otherwise looks good. r=me > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2968 > return MenuItemRole; It looks like we're calling parentObjectUnignored()->ariaRoleAttribute() potentially three times. I think that value should be stored local. parentObjectUnignored() can be little expensive.
(In reply to comment #2) > (From update of attachment 89015 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=89015&action=review > > otherwise looks good. r=me > > > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2968 > > return MenuItemRole; > > It looks like we're calling parentObjectUnignored()->ariaRoleAttribute() potentially three times. I think that value should be stored local. parentObjectUnignored() can be little expensive. I'll fix that right before committing. Thanks!
Committed r83606: <http://trac.webkit.org/changeset/83606>