-
Notifications
You must be signed in to change notification settings - Fork 137
Add ariaNotify #2577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
janewman
wants to merge
31
commits into
w3c:main
Choose a base branch
from
janewman:aria-notify-draft-additions
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+177
−3
Open
Add ariaNotify #2577
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
31c988a
add arianotify draft
keithamus f7cf965
add arianotify draft
keithamus 582c912
chore: prettier
pkra 8b5987e
rework to newest iteration of v1 proposla
keithamus 20c0da4
chore: prettier
keithamus 83c2d1b
avoid "should"
keithamus 394b946
s/iua/uia/
keithamus f7e58ed
Update aria notify section with permissions policy section.
janewman c13cd7d
Update disabled wording in the note.
janewman 01504b0
Add xref for permissions-policy
janewman 42ab8b2
Update how permissions policy will impact the method steps.
janewman 586864a
Fill in missing details and fix references.
janewman e8d4f58
Merge branch 'main' into aria-notify-draft-additions
janewman b80fa36
replace should with 'will'
janewman a61fd59
Update core-aam/index.html
janewman e154e3b
Editorial fixes. Update note for fallback mechanism.
janewman f3e8781
Add non-normative reccomendation for assitive technologies to impleme…
janewman e08170f
Add context and strengthen suggestion for assistive technologies.
janewman 2f1aff0
Update core-aam/index.html
janewman 1bb17ff
Update core-aam/index.html
janewman d318c00
Add clarity on node/this.
janewman 02a2644
Add requirement for the node to be exposed to the accessibility tree.
janewman 0085ba4
Reference existing spec for excluding nodes.
janewman 90e4ccb
Remove reccomendation for ATs to allow history, this will be tracked …
janewman 665b82c
Add note for bubbling the UIA notification out of a element not in th…
janewman 446f27c
remove body-specific note on UIA implementation.
janewman a011a02
Link priority to the priority IDL.
janewman f4a2232
Add language section.
janewman a056c26
Update AX API section to use the node, rather than the associated win…
janewman 3d181f9
Merge branch 'main' into aria-notify-draft-additions
keithamus 3972a86
Update core-aam/index.html
janewman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11199,6 +11199,132 @@ <h3>Special Events for Menus</h3> | |
| </section> | ||
| </section> | ||
|
|
||
| <section id="mapping_algorithms"> | ||
| <h2>Algorithms</h2> | ||
| <p> | ||
| Some <abbr title="Application Programming Interfaces">APIs</abbr> provide | ||
| methods which require specific algorithms to be followed. The following | ||
| sections provide the algorithm mapping tables for these methods. | ||
| </p> | ||
| <h3>ARIANotifyMixin Algorithm Mapping Tables</h3> | ||
| <p> | ||
| The <code>ARIANotifyMixin</code> provides a method for announcing content | ||
| to assistive technologies. The following algorithm mappings specify how | ||
| these announcements will be implemented across different accessibility | ||
| APIs to ensure consistent behavior for users of assistive technologies. | ||
| </p> | ||
| <h4 id="arianotifymixin-map-arianotify">ariaNotify</h4> | ||
| <p>To <code>aria notify</code> given <var>node</var>, <var>announcement</var>, and <var>priority</var>:</p> | ||
| <table aria-labelledby="arianotifymixin-map-arianotify" class="data"> | ||
| <tbody> | ||
| <tr> | ||
| <th>ARIA Specification</th> | ||
| <td> | ||
| <a class="method-reference" href="#arianotify"><code>aria notify</code></a> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th>Preconditions</th> | ||
| <td> | ||
| <p>If <var>node</var> is <a class="specref" href="#tree_exclusion">excluded from the accessibility tree</a>, then abort these steps.</p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th>Language</th> | ||
| <td> | ||
| <p> | ||
| User agents and assistive technologies MUST determine the language of the announcement by taking the first valid BCP 47 language tag from the following sources: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Non-blocking: Would it be useful to link to a definition of “BCP 47 language tag”? I looked for something we could xref with respec, but https://respec.org/xref/?term=BCP+47 returns no results. |
||
| </p> | ||
| <ol> | ||
| <li>The <var>node</var>'s nearest ancestor element's <code>lang</code> attribute.</li> (including <var>node</var> itself) | ||
| <li>The document element's <code>lang</code> attribute.</li> (including when called on the document). | ||
| <li>A user agent or platform default.</li> | ||
| </ol> | ||
| <p> | ||
| Assistive technologies MUST present the announcement using that language (for example, voice, pronunciation rules, braille table). | ||
| </p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th>MSAA + IAccessible2</th> | ||
| <td> | ||
| <p>No implementation specified (<a href="#arianotify-fallback-note">see fallback note</a>).</p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th><abbr title="User Interface Automation">UIA</abbr></th> | ||
| <td> | ||
| <ol> | ||
| <li> | ||
| <p>Let <var>mapped_priority</var> be <code>NotificationProcessing_ImportantAll</code> if <var>priority</var> is "high", otherwise <code>NotificationProcessing_All</code>.</p> | ||
| </li> | ||
| <li> | ||
| <p> | ||
| Call <code>UiaRaiseNotificationEvent</code> with <var>node</var>, <code>NotificationKind_ActionCompleted</code>, <var>mapped_priority</var>, <var>announcement</var>, and the empty | ||
| string. | ||
| </p> | ||
| </li> | ||
| </ol> | ||
| <p class="note"> | ||
jcsteh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| If the platform accessibility implementation determines that <var>node</var> is not represented in the UIA | ||
| <a href="https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-treeoverview#control-view">Control view</a> or | ||
| <a href="https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-treeoverview#content-view">Content view</a>, user agents SHOULD instead raise the notification event | ||
| on the nearest ancestor that is represented as a UIA Control. If no such ancestor exists, user agents SHOULD raise it on the document root (which is expected to be | ||
| in one of these views) to ensure assistive technologies that ignore events on elements not in the Control or Content view receive the notification. | ||
| </p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th><abbr title="Accessibility Toolkit">ATK</abbr></th> | ||
| <td> | ||
| <ol> | ||
| <li> | ||
| <p>Let <var>mapped_priority</var> be <code>Atk.Live.ATK_LIVE_ASSERTIVE</code> if <var>priority</var> is "high", otherwise <code>Atk.Live.ATK_LIVE_POLITE</code>.</p> | ||
| </li> | ||
| <li> | ||
| <p>Call <code>g_signal_emit_by_name</code> with <var>node</var>, <code>"notification"</code>, <var>announcement</var>, and <var>mapped_priority</var>.</p> | ||
| </li> | ||
| </ol> | ||
| <p>On older Linux accessibility stacks prior to ATK 2.50.0, user agents MAY use the fallback; <a href="#arianotify-fallback-note">see fallback note</a>.</p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th><abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th> | ||
| <td> | ||
| <ol> | ||
| <li> | ||
| <p>Let <var>mapped_priority</var> be <code>ATSPI_LIVE_ASSERTIVE</code> if <var>priority</var> is "high", otherwise <code>ATSPI_LIVE_POLITE</code>.</p> | ||
| </li> | ||
| <li> | ||
| <p>Send a DBUS signal <code>ATSPI_DBUS_INTERFACE_EVENT_OBJECT</code> with <var>node</var>, <code>"announcement"</code>, <var>announcement</var>, and <var>mapped_priority</var>.</p> | ||
| </li> | ||
| </ol> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th><abbr title="macOS Accessibility Protocol">AX API</abbr></th> | ||
| <td> | ||
| <ol> | ||
| <li> | ||
| <p>Let <var>mapped_priority</var> be <code>NSAccessibilityPriorityHigh</code> if <var>priority</var> is "high", otherwise <code>NSAccessibilityPriorityMedium</code>.</p> | ||
| </li> | ||
| <li> | ||
| <p>Let <var>userInfo</var> be a <code>NSDictionary</code> with the following keys:</p> | ||
| <ol> | ||
| <li><code>NSAccessibilityAnnouncementKey</code> as <var>announcement</var></li> | ||
| <li><code>NSAccessibilityPriorityKey</code> as <var>mapped_priority</var></li> | ||
| </ol> | ||
| </li> | ||
| <li> | ||
| <p>Call <code>NSAccessibilityPostNotificationWithUserInfo</code> with <var>node</var>, <var>NSAccessibilityAnnouncementRequestedNotification</var>, and <var>userInfo</var>.</p> | ||
| </li> | ||
| </ol> | ||
| </td> | ||
| </tr> | ||
| </tbody> | ||
| </table> | ||
| <p id="arianotify-fallback-note" class="note">When no suitable platform notification API is available (for example, older Linux accessibility stacks prior to ATK 2.50.0 that lack the newer notification signal, or on Windows when the user agent is not able to use UIA), a user agent MAY synthesize a temporary, assistive-technology-only live region in its accessibility tree to convey an <code>aria notify</code> announcement. Such fallback nodes are not exposed to or detectable by web content and this behavior is not required.</p> | ||
| </section> | ||
| <section> | ||
| <h2>Privacy considerations</h2> | ||
| <p> | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.