This effort aims to create a JavaScript API so that developers can better notify AT users of actions/changes to a webpage not necessarily tied to UI elements.
Currently the only mechanism available today that communicates content changes in a web app down to the accessibility layer is via ARIA live regions. One major limitation to ARIA live regions is that they assume the change to a webpage is tied to a DOM element. This leads to content authors employing various inefficient or inconsistent tricks and hacks to notify of changes that are not associated with the DOM. We propose a separate notification API to address these scenarios, called Confirmation of Action.
TBD
No milestones specified
+Daniel Libby
From: Sara Tang
Sent: Friday, January 28, 2022 4:26 PM
To: blin...@chromium.org <blin...@chromium.org>
Subject: Intent to Prototype: Confirmation of Action APIContact emails
sar...@microsoft.com
Explainer
https://github.com/WICG/aom/blob/gh-pages/notification-api.md
Specification
Summary
This effort aims to create a JavaScript API so that developers can better notify AT users of actions/changes to a webpage not necessarily tied to UI elements.
Blink component
Blink>Accessibility
Motivation
Currently the only mechanism available today that communicates content changes in a web app down to the accessibility layer is via ARIA live regions. One major limitation to ARIA live regions is that they assume the change to a webpage is tied to a DOM element. This leads to content authors employing various inefficient or inconsistent tricks and hacks to notify of changes that are not associated with the DOM. We propose a separate notification API to address these scenarios, called Confirmation of Action.
Initial public proposal
https://github.com/WICG/aom/blob/gh-pages/notification-api.md
TAG review
TAG review status
Pending
Risks
Interoperability and Compatibility
Gecko: No signal
WebKit: No signal
Web developers: Positive (https://github.com/w3c/aria/issues/832)
Other signals:
Debuggability
TBD
Is this feature fully tested by web-platform-tests?
No
Flag name
--enable-blink-features=ConfirmationOfAction
Requires code in //chrome?
False
Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1291098
Estimated milestones
No milestones specified
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5745430754230272
This intent message was generated by Chrome Platform Status.
--
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/CH2PR00MB06809C5589E8FD6848CF5E09F2239%40CH2PR00MB0680.namprd00.prod.outlook.com.
Hi All,
During a discussion about this proposal a few concerns were raised:
- What pipeline of data would be used to pass the new messages to a potential screen-reader? Would screen-readers need to implement a new API or would this use pre-existing ones?
- A small nuance: screen-readers do not implement APIs, they consume ones that are exported by the Web Platform.
- - In the case of Windows systems, we use the UIA notifications API to pass information along to screen-readers.
- - In the case for other systems, we can hijack the existing ARIA live regions implemenation. In the case where the confirmation of action API is called without a DOM element/ARIA node, we can attach the announcement to an internal "root" node instead.
- Does this new API allow pages to have a more direct or a less restricted way to pass data to a screen reader?
- Less restrictive; possible restrictions we'll need to employ are listed in the next response.
- Would this API allow potential attackers to use different character sets or might this allow them to pass potentially malformed data to screen readers that was not possible to pass before?
- Here are some possible mitigations we have for this scenario:
- - Truncating strings, employing a max queue length
- - Restricting to alphanumeric input.
- - Running the announcement-text through a HTML-parser/DOM-parser/setInnerHtml or similar JS API
- If a pre-existing channel is used to communicate with the screen reader (e.g. already existing APIs) how would a user distinguish this new mechanism from content on the page?
- I don't think it's necessary for the user to distinguish between different screen-announcing APIs. Is there a particular scenario you are thinking of where a distinction would be needed?
Thanks in advance,Rob