RESOLVED FIXED 272565
AX: Support AXActiveElement and AXSelectedChildren Mac APIs for comboboxes, lists and listboxes.
https://bugs.webkit.org/show_bug.cgi?id=272565
Summary AX: Support AXActiveElement and AXSelectedChildren Mac APIs for comboboxes, l...
Andres Gonzalez
Reported 2024-04-11 18:34:10 PDT
.
Attachments
Patch (52.28 KB, patch)
2024-04-11 18:48 PDT, Andres Gonzalez
no flags
Patch (56.63 KB, patch)
2024-04-12 08:32 PDT, Andres Gonzalez
no flags
Patch (59.55 KB, patch)
2024-04-15 19:15 PDT, Andres Gonzalez
no flags
Patch (59.55 KB, patch)
2024-04-16 06:32 PDT, Andres Gonzalez
no flags
Patch (60.30 KB, patch)
2024-04-17 08:36 PDT, Andres Gonzalez
no flags
Patch (60.40 KB, patch)
2024-04-17 18:49 PDT, Andres Gonzalez
no flags
Radar WebKit Bug Importer
Comment 1 2024-04-11 18:34:19 PDT
Andres Gonzalez
Comment 2 2024-04-11 18:48:23 PDT
Andres Gonzalez
Comment 3 2024-04-12 08:32:44 PDT
Dominic Mazzoni
Comment 4 2024-04-12 10:20:32 PDT
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?
Andres Gonzalez
Comment 5 2024-04-15 19:15:55 PDT
Andres Gonzalez
Comment 6 2024-04-15 19:26:33 PDT
(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.
Andres Gonzalez
Comment 7 2024-04-16 06:32:51 PDT
Andres Gonzalez
Comment 8 2024-04-17 08:36:18 PDT
Andres Gonzalez
Comment 9 2024-04-17 18:49:28 PDT
EWS
Comment 10 2024-04-17 20:23:22 PDT
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].
Andres Gonzalez
Comment 11 2024-04-30 13:21:36 PDT
*** Bug 257273 has been marked as a duplicate of this bug. ***
Andres Gonzalez
Comment 12 2024-04-30 13:26:20 PDT
*** Bug 264891 has been marked as a duplicate of this bug. ***
Andres Gonzalez
Comment 13 2024-04-30 13:28:41 PDT
*** Bug 267038 has been marked as a duplicate of this bug. ***
Andres Gonzalez
Comment 14 2024-06-10 08:07:19 PDT
*** Bug 244093 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.