After many delays, I think this is finally ready for another look.

On Thursday, February 1, 2024 at 4:47:45 PM UTC+11 dom...@chromium.org 
wrote:

Very exciting to see this!

On Thu, Feb 1, 2024 at 12:10 AM alice <al...@igalia.com> wrote:

Contact emails
al...@igalia.com, mere...@chromium.org

Explainer
https://github.com/WICG/aom/blob/gh-pages/aria-reflection-explainer.md#reflecting-element-references

Specification
https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes:element
https://w3c.github.io/aria/#ARIAMixin


These specs are incompatible with each other, because 
https://github.com/w3c/aria/pull/1876 has not yet been merged. Do you think 
it'll be possible to get that merged soon?


This has now been merged.
 



Summary
This feature allows for ARIA relationship attributes to be reflected in
IDL as element references rather than DOMStrings.

Note: This intent specifically concerns the ARIA attributes using
Element Reflection, i.e. the attributes in the ARIAMixin interface with
a type of Element or FrozenArray<Element>. popoverTargetElement, which
also uses Element Reflection, is already shipping in Blink and WebKit.


Can you confirm whether the scope of this intent is element reflection 
only? Or does it include ElementInternals support as well?

(Coincidentally, I saw you filed this bug 
<https://bugs.chromium.org/p/chromium/issues/detail?id=1518693> which seems 
to state that the ElementInternals support is currently not working.)


I had originally intended this to be only element reflection, but the 
AriaMixin properties on ElementInternals are now mapped through to 
accessibility APIs as well, so I think they should be in scope.
 


Blink component
Blink>DOM

TAG review
https://github.com/w3ctag/design-reviews/issues/134

TAG review status
Issues addressed


This tag review seems to be for AOM in general, as of its 2018 shape. I'm 
not sure there's been a lot of discussion as to where it ended up, with 
element reflection. Do you know of any TAG review or comments on the latest 
API?


I don’t know of any further TAG review specific to this API.
 


However, I think this qualifies for an exception 
<https://www.chromium.org/blink/guidelines/api-owners/process-exceptions/>, 
under "already specified and accepted by the relevant standardization 
body", and "has already shipped in at least one other browser"


Phew!
 

 


Risks

Interoperability and Compatibility

Gecko: Under consideration 
https://github.com/mozilla/standards-positions/issues/200
https://bugzilla.mozilla.org/show_bug.cgi?id=1769586

WebKit: Shipped/Shipping
(
https://developer.apple.com/documentation/safari-technology-preview-release-notes/stp-release-151
)
Mentioned in STP release notes:
https://developer.apple.com/documentation/safari-technology-preview-release-notes/stp-release-151
Was shipped in Safari 16.4 but wasn't mentioned in release notes there.

Web developers: Requested by Web Component authors in particular as a
means to implement ARIA relationships for elements inside of Shadow DOM.

Activation
This feature is not completely polyfillable; ID references across shadow
root boundaries are not possible to implement on top of existing APIs.

WebView application risks
None

Debuggability
Developers can use console.log to access the value for IDL attributes
set via this API, and the Accessibility pane to confirm that the
attributes are correctly reflected in the accessibility tree.

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
https://wpt.fyi/results/html/dom/aria-element-reflection.html tests that
the reflection part of the API works correctly.
WPT doesn't yet offer a way to test the relevant accessibility tree
mappings.


>From what I understand, WPT allows some testing of accessibility tree 
mappings these days, via WebDriver hooks. For example:

   - These tests appear to test the computed role 
   <https://github.com/web-platform-tests/wpt/tree/master/wai-aria/role>
   - These tests appear to test the computed accessible name 
   <https://github.com/web-platform-tests/wpt/tree/master/accname>

IIUC, the above test shows that content attributes (like <div 
role="region">) are reflected correctly in the accessibility tree. Would it 
be possible to add similar tests for the corresponding JavaScript code? 
Maybe that's not possible for most of the complex element relationships 
that this I2S is about, but I think you should be able to use element 
reflection to influence accessible name computation, at least? I don't 
think they need to be exhaustive, but just some tests to catch issues like the 
above-mentioned bug 
<https://bugs.chromium.org/p/chromium/issues/detail?id=1518693>.


Flag name on chrome://flags
None

Finch feature name
None

Non-finch justification
None


I believe the recent guidance is that all new features should be guarded by 
a base::Feature flag, which then generates a Finch feature automatically.


There is now a feature flag, “EnableAriaElementReflection”.
 

 


Requires code in //chrome?
False

Tracking bug
https://crbug.com/981423

Measurement
Per-attribute UseCounters: 
V8Element_AriaActiveDescendantElement_AttributeGetter 
V8Element_AriaActiveDescendantElement_AttributeSetter 
V8Element_AriaControlsElements_AttributeGetter 
V8Element_AriaControlsElements_AttributeSetter (etc) 

V8ElementInternals_AriaActiveDescendantElement_AttributeGetter 
V8ElementInternals_AriaActiveDescendantElement_AttributeSetter 
V8ElementInternals_AriaControlsElements_AttributeGetter 
V8ElementInternals_AriaControlsElements_AttributeSetter (etc)

Estimated milestones
123 or 124

Anticipated spec changes
None


https://github.com/whatwg/html/pull/8496 contains a consolidated list of 
spec issues related to this area. The ones that seem relevant to this 
intent are https://github.com/whatwg/html/issues/8545 and 
https://github.com/whatwg/html/issues/8544. Can you tell us whether the 
spec changes that might come out of those issues, could have back-compat 
concerns?


I think https://github.com/whatwg/html/issues/8545 has more or less been 
overtaken by events, given this API has been shipping in WebKit for some 
time. Given the only viable solution proposed was to change the API to use 
ObservableArray, this would obviously be a breaking change to a shipping 
API at this point.

I believe the WebKit implementation adopts Anne's proposal 
in https://github.com/whatwg/html/issues/8544 that elements referred to 
from ElementInternals don't need to be subject to the same Shadow DOM 
validation rules.
 


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6244885579431936

Links to previous Intent discussions
Ready for Trial:
https://groups.google.com/a/chromium.org/g/blink-dev/c/yecxBLmRVQI/m/d7YOe_nYAgAJ

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an 
email to blink-dev+...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/865bf3bd2e6a58da9fc3424ed957ceee%40igalia.com
.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bdb2a75c-5e7c-4475-b0a9-39870757ec62n%40chromium.org.

Reply via email to