Bug 223798

Summary: AX: Re-implement aria-owns to reorder the accessibility tree (spec was changed to match Gecko and the more recent implementation of Chromium)
Product: WebKit Reporter: Ben Cronin <bcronin>
Component: AccessibilityAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: aleventhal, brennan.young, jcraig, scottaohara, spanage, thierry.koblentz, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 14   
Hardware: All   
OS: All   
Attachments:
Description Flags
Repro case for readout for DOM-structured list vs. aria-owned list none

Description Ben Cronin 2021-03-26 07:48:35 PDT
Created attachment 424352 [details]
Repro case for readout for DOM-structured list vs. aria-owned list

NOTE: This is a possible duplicate of https://bugs.webkit.org/show_bug.cgi?id=151498, but I wanted to emphasize the fact that there seems to be a broader problem with `aria-owns`.

For example, I would expect these two structures to be treated the same (also see attached html file for a slightly more detailed example).

(1) List with item as DOM child:

<ul>
  <li>List item</li>
</ul>

(2) List with aria-owned item:

<li id="list-item">List item</li>
<ul aria-owns="list-item"/>

In case (1), when navigating to the list item, I initially hear "list one item" to indicate that the item belongs to a list (and from there I can navigate into the actual list item).

In case (2), I just hear "bullet List item," with no mention that the item should semantically be treated as part of a list.

I believe the two cases should behave the same, which is how it works in Chrome (I tested Safari 14 vs. Chrome 89, but the discrepancy has been present in past versions as well). It also seems this is not confined to lists/list items (i.e., I have not heard any other aria-owns relationships communicated by VoiceOver in Safari, either).

Reference: https://www.w3.org/TR/2017/REC-wai-aria-1.1-20171214/#aria-owns
Comment 1 Radar WebKit Bug Importer 2021-03-26 07:48:44 PDT
<rdar://problem/75885927>
Comment 2 Scott 2021-09-01 18:32:30 PDT
+1 requesting the aria-owns attribute be implemented by Webkit.  

This feature would be quite important in the construction of tab widgets that change to accordion patterns at different viewports.  Without aria-owns, which would allow for a single markup pattern to be used, the DOM would have to be updated to meet the expectations for each pattern.  For instance, https://tabpanelwidget.com uses aria-owns correctly to associate the tabs with the tablist.  

There are many other examples I've come across recently where support for aria-owns would improve the accessibility for users of Webkit+VoiceOver, but presently the best advice to give them is to use another browser.
Comment 3 Thierry 2021-09-14 21:23:59 PDT
Waiting for this issue to be fixed so we can put https://tabpanelwidget.com/ back online.
Comment 4 Brennan Young 2022-03-07 05:41:48 PST
+1 request for a fix.

I bring a new use case, so far unmentioned.
There is currently no support for PDF/UA tags in webkit browsers.

PDF.js (which renders PDF files in a canvas) relies on aria-owns to construct an accessibility tree based on PDF/UA tags. https://github.com/mozilla/pdf.js

This issue with aria-owns prevents PDF.js from being a viable workaround.

Those who intend to present tagged PDF via VoiceOver, must currently do so via a non-webkit browser.
Comment 5 James Craig 2022-06-16 19:03:38 PDT
possibly forward dupe to bug 241694
Comment 6 Sommer Panage 2022-11-16 13:03:34 PST
Dupe seems accurate - we're encountering this in our Quip (now part of Slack) lists; prevents Quip from being able to communicate list structure in view-only mode.
Comment 7 chris fleizach 2023-03-27 13:28:42 PDT
*** Bug 241694 has been marked as a duplicate of this bug. ***
Comment 8 James Craig 2023-04-03 23:25:13 PDT
Since WebKit bug 241694 was duped to this one, I want to make sure the useful bits of that thread aren't lost in the duping... In particular:

Aaron wrote up a doc describing how Blink implements aria-owns:
https://docs.google.com/document/d/1jhztcbvUWS4_QGtKmWMxVBLnMkl5ZAAqRCVTcLfdl4o/edit#

James Teh from Mozilla mentioned that he thinks Blink handles more of the obscure problematic cases. Blink engineers spent a fair amount of time on them, so hopefully the above document will save you some of the pain we experienced.

Above doc covers a lot of the edge case questions discussed in WebKit bug 241694 and <rdar://95314618>
Comment 9 James Craig 2023-07-31 15:09:39 PDT
ARIA Chairs are asking for a status update or estimate on this one, if you have it.