.
<rdar://problem/126318573>
Created attachment 470879 [details] Patch
Created attachment 470897 [details] Patch
Comment on attachment 470897 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=470897&action=review > Source/WebCore/accessibility/AXCoreObject.cpp:361 > + if (isList() || isListBox()) { While less common, the ARIA spec allows the popup element associated with the combobox to be a listbox, tree, grid, or dialog. I'm not sure how dialog applies here, but I feel like you should support tree and grid here because they're pretty analogous to listbox. I'm assuming also tree grid. > Source/WebCore/accessibility/AXObjectCache.cpp:2363 > + } else if (object->isList() || object->isListBox()) Again, support grid, tree, tree grid here. Or maybe you can more generally just call supportsActiveDescendant? Do we want to do this case for any container that supports active descendant? > Source/WebCore/accessibility/AXObjectCache.cpp:2398 > + // Table cell active descendant changes should trigger selected cell changes. I think tables should be handled like grids and list boxes > Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1035 > + [tempArray addObject:NSAccessibilityActiveElementAttribute]; Let's make sure we add this to all roles that support active descendant, which is quite large in the spec. It even includes things like application, group, tablist, and spin button. Maybe it'd be easier to add this in _additionalAccessibilityAttributeNames by calling supportsActiveDescendant?
Created attachment 470933 [details] Patch
(In reply to Dominic Mazzoni from comment #4) > Comment on attachment 470897 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=470897&action=review > > > Source/WebCore/accessibility/AXCoreObject.cpp:361 > > + if (isList() || isListBox()) { > > While less common, the ARIA spec allows the popup element associated with > the combobox to be a listbox, tree, grid, or dialog. I'm not sure how dialog > applies here, but I feel like you should support tree and grid here because > they're pretty analogous to listbox. I'm assuming also tree grid. AG: added the canBeControlledBy(AccessibilityRole) method to accomplished this. > > > Source/WebCore/accessibility/AXObjectCache.cpp:2363 > > + } else if (object->isList() || object->isListBox()) > > Again, support grid, tree, tree grid here. > > Or maybe you can more generally just call supportsActiveDescendant? Do we > want to do this case for any container that supports active descendant? AG: added the method supportsActiveDescendant but want to keep the scope of this change limited to combobox-related elements. Will add other relevant roles in a separate patch. > > > Source/WebCore/accessibility/AXObjectCache.cpp:2398 > > + // Table cell active descendant changes should trigger selected cell changes. > > I think tables should be handled like grids and list boxes AG: I want to limit the scope of this patch to combobox-related elements. Will address tables in a separate patch. > > > Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1035 > > + [tempArray addObject:NSAccessibilityActiveElementAttribute]; > > Let's make sure we add this to all roles that support active descendant, > which is quite large in the spec. It even includes things like application, > group, tablist, and spin button. > > Maybe it'd be easier to add this in _additionalAccessibilityAttributeNames > by calling supportsActiveDescendant? AG: done. Thanks for the review.
Created attachment 470936 [details] Patch
Created attachment 470960 [details] Patch
Created attachment 470973 [details] Patch
Committed 277649@main (cedc4e8d1b60): <https://commits.webkit.org/277649@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 470973 [details].
*** Bug 257273 has been marked as a duplicate of this bug. ***
*** Bug 264891 has been marked as a duplicate of this bug. ***
*** Bug 267038 has been marked as a duplicate of this bug. ***
*** Bug 244093 has been marked as a duplicate of this bug. ***