You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: index.html
+13-13Lines changed: 13 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -291,7 +291,7 @@ <h3>General rules for exposing <abbr title="Accessible Rich Internet Application
291
291
<sectionid="mapping_conflicts">
292
292
<h3>Conflicts between native markup semantics and <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr></h3>
293
293
<p><abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> roles, states, and properties are intended to add <aclass="termref">semantic</a> information when native host language <aclass="termref">elements</a> with these semantics are not available, and are generally used on elements that have no native semantics of their own. They can also be used on elements that have similar but not identical semantics to the intended object (for instance, a nested list could be used to represent a tree structure). This method can be part of a fallback strategy for older browsers that have no <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> implementation, or because native presentation of the repurposed element reduces the amount of style and/or script needed. Except for the cases outlined below, [=user agents=] MUST always use the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics to define how it exposes the element to <aclass="termref">accessibility APIs</a>, rather than using the host language semantics.</p>
294
-
<p>Host languages can have features that have implicit <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics corresponding to <aclass="termref">roles</a>. When a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that has a corresponding role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>, user agents MUST use the semantic of the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role for processing, not the native semantic, unless the role requires <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties whose attributes are explicitly forbidden on the native element by the host language. Values for roles do not conflict in the same way as values for states and properties, and because authors are expected to have a valid reason to provide a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role even on elements that would not normally be repurposed. For example, spin buttons are typically constructed from text fields (<code><input type="text"></code>) in order to get most of the default keyboard support. But, the native role, "text field", is not correct because it does not properly communicate the additional features of a spin button. The author adds the <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> role of <code>spinbutton</code> (<code><input type="text" role="spinbutton" ...></code>) so that the control is properly mapped in the accessibility <abbrtitle="Application Programming Interface">API</abbr>. When a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that does not have a corresponding role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>, user agents MAY expose the native semantic in addition to the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role. If the host language element is overridden by a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role whose semantics or structure is not equivalent to the native host language semantics or to a subclass of those semantics, then treat any required [=ARIA/owned=] elements of the native role as having role <ahref="#role-map-presentation">presentation</a> or <ahref="#role-map-none">none</a>.</p>
294
+
<p>Host languages can have features that have implicit <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics corresponding to <aclass="termref">roles</a>. When a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that has a corresponding role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>, user agents MUST use the semantic of the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role for processing, not the native semantic, unless the role requires <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties whose attributes are explicitly forbidden on the native element by the host language. Values for roles do not conflict in the same way as values for states and properties, and because authors are expected to have a valid reason to provide a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role even on elements that would not normally be repurposed. For example, spin buttons are typically constructed from text fields (<code><input type="text"></code>) in order to get most of the default keyboard support. But, the native role, "text field", is not correct because it does not properly communicate the additional features of a spin button. The author adds the <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> role of <code>spinbutton</code> (<code><input type="text" role="spinbutton" ...></code>) so that the control is properly mapped in the accessibility <abbrtitle="Application Programming Interface">API</abbr>. When a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that does not have a corresponding role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>, user agents MAY expose the native semantic in addition to the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role. If the host language element is overridden by a <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role whose semantics or structure is not equivalent to the native host language semantics or to a subclass of those semantics, then treat any child elements having roles specified as Allowed Accessibility Child Roles as having <ahref="#role-map-presentation">presentation</a> or <ahref="#role-map-none">none</a>.</p>
295
295
<pclass="note">The above text differs slightly from the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> specification. The requirement for user agents to expose the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role instead of the native role was intended to only apply in cases where there is a direct mapping from the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> role to a corresponding role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>. The wording of the requirement is not clear in the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> specification, however, and has been interpreted differently by implementers. The requirement has been clarified here and an additional statement added to indicate that user agents may expose native semantics if there is not a direct mapping to a role in the accessibility <abbrtitle="Application Programming Interface">API</abbr>. Because there are differing implementations, authors will be advised against adding such <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> roles to native elements that have their own semantics in the <abbrtitle="Accessible Rich Internet Application">WAI-ARIA</abbr> Authoring Practices Guide.</p>
296
296
<p>When <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties correspond to host language features that have the same implicit <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantic, it can be problematic if the values become out of sync. For example, the <abbrtitle="Hypertext Markup Language">HTML</abbr><code>checked</code> attribute and the <code>aria-checked</code> attribute could have conflicting values. Therefore to prevent providing conflicting states and properties to assistive technologies, host languages will explicitly declare where the use of <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> attributes on a host language element conflict with native attributes for that element. When a host language declares a <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr><aclass="termref">attribute</a> to be in direct semantic conflict with a native attribute for a given element, user agents MUST ignore the <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> attribute and instead use the host language attribute with the same implicit semantic. </p>
297
297
<p>Host languages might also document features that cannot be overridden with <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> (these are called "strong native semantics"). These can be features that have implicit <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics as well as features where the processing would be uncertain if the semantics were changed with <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr>. While conformance checkers might signal an error or warning when a <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> role is used on elements with strong native semantics, user agents MUST still use the value of the semantic of the <abbrtitle="Accessible Rich Internet Applications">WAI-ARIA</abbr> role when exposing the element to accessibility <abbrtitle="Application Programming Interfaces">APIs</abbr>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>IA2_ROLE_TEXT_FRAME</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
2782
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>IA2_ROLE_TEXT_FRAME</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it using the <code>text</code> pattern. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
2788
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it using the <code>text</code> pattern. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
2789
2789
</td>
2790
2790
</tr>
2791
2791
<tr>
2792
2792
<th><abbrtitle="Accessibility Toolkit">ATK</abbr>/<abbrtitle="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th>
2793
2793
<td>
2794
-
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>ROLE_SECTION</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
2794
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>ROLE_SECTION</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>AXGroup</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
2800
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>AXGroup</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>IA2_ROLE_TEXT_FRAME</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
3003
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>IA2_ROLE_TEXT_FRAME</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it using the <code>text</code> pattern. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
3009
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it using the <code>text</code> pattern. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
3010
3010
</td>
3011
3011
</tr>
3012
3012
<tr>
3013
3013
<th><abbrtitle="Accessibility Toolkit">ATK</abbr>/<abbrtitle="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th>
3014
3014
<td>
3015
-
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>ROLE_SECTION</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
3015
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>ROLE_SECTION</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
<p>For objects that have required owned descendants (e.g., a grid owns gridcells, a list owns listitems), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>AXGroup</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
3021
+
<p>For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in the <aclass="termref">accessibility tree</a>, expose it as <code>AXGroup</code>. [=user agents=] SHOULD prune empty descendants from the <aclass="termref">accessibility tree</a>.</p>
0 commit comments