From 235c734e3989698115f209d5f5d32df904e4fe44 Mon Sep 17 00:00:00 2001 From: Valerie Young Date: Wed, 23 Aug 2023 17:38:30 +0000 Subject: [PATCH] Editorial: Move accessibility relationship definitions to accessibility tree section (#1989) SHA: bf10d800a397b09ce977cfee5673c8a083a0a081 Reason: push, by spectranaut Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- index.html | 193 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 143 insertions(+), 50 deletions(-) diff --git a/index.html b/index.html index f3ad12326..09f861f5d 100644 --- a/index.html +++ b/index.html @@ -309,15 +309,15 @@ } }, "lint": false, - "publishISODate": "2023-08-11T00:00:00.000Z", - "generatedSubtitle": "W3C Editor's Draft 11 August 2023" + "publishISODate": "2023-08-23T00:00:00.000Z", + "generatedSubtitle": "W3C Editor's Draft 23 August 2023" }

Accessible Rich Internet Applications (WAI-ARIA) 1.3

-

W3C Editor's Draft

+

W3C Editor's Draft

More details about this document
@@ -422,7 +422,7 @@

Accessible Rich Internet Applications (WAI-ARIA) 1.

This document is governed by the 12 June 2023 W3C Process Document. -

+

1. Introduction

This section is non-normative.

The goals of this specification include:

@@ -624,10 +624,6 @@

Accessible Rich Internet Applications (WAI-ARIA) 1.

Usable by users in ways they can control. References in this document relate to WCAG 2.1 Principle 2: Content must be operable [WCAG21]. See Keyboard Accessible.

-
Accessibility child
-
-

An 'accessibility child' is a DOM child of the element, a descendant of the element with only elements of role generic or none intervening, a child specified via an aria-owns relationship to the element, or a descendant of an element with role generic or none specified via aria-owns with only elements of role generic or none intervening.

-
Owned Element

An 'owned element' is any DOM descendant of the element, any element specified as a child via aria-owns, or any DOM descendant of the owned child.

@@ -636,10 +632,6 @@

Accessible Rich Internet Applications (WAI-ARIA) 1.

An 'owning element' is any DOM ancestor of the element, or any element with an aria-owns attribute which references the ID of the element.

-
Accessibility parent
-
-

An 'accessibility parent' is a DOM parent of the element, an ancestor of the element with only elements of role generic or none intervening, any element with an owned child specified via aria-owns, or an ancestor of an owned element with only elements of role generic or none intervening.

-
Perceivable

Presentable to users in ways they can sense. References in this document relate to WCAG 2.1 Principle 1: Content must be perceivable [WCAG21].

@@ -891,8 +883,8 @@

Accessible Rich Internet Applications (WAI-ARIA) 1.

5.2.6 Allowed Accessibility Child Roles

-

A list of roles which are allowed on an accessibility child (simplified as "child") of the element with this role. Authors MUST only add child element with allowed roles. For example, an element with the role list can own child elements with the role listitem, but cannot own elements with the role option.

-

To determine whether an element is the child of an element, user agents MUST ignore any intervening elements with the role generic or none.

+

A list of roles which are allowed on an accessibility child (simplified as "child") of the element with this role. Authors MUST only add child element with allowed roles. For example, an element with the role list can own child elements with the role listitem, but cannot own elements with the role option.

+

To determine whether an element is the child of an element, user agents MUST ignore any intervening elements with the role generic or none.

Descendants which are not children of an element ancestor are not constrained by allowed accessibility child roles. For example, an image is not an allowed child of a list, but it is a valid descendant if it is also a descendant of the list's allowed child listitem.

Note

A role that has 'allowed accessibility child roles' does not imply the reverse relationship. Elements with roles in this list do not always have to be found within elements of the given role. See required accessibility parent roles for requirements about the context where elements of a given role will be contained.

Note

An element with a subclass role of the 'allowed accessibility child role' does not fulfill this requirement. For example, the listbox role allows a child element using the option or group role. Although the group role is the superclass of row, adding a child element with a role of row will not fulfill the requirement that listbox allows children with option or group roles.

@@ -933,7 +925,7 @@

Accessible Rich Internet Applications (WAI-ARIA) 1.

5.2.7 Required Accessibility Parent Role

-

The required accessibility parent (simplified as "parent") role defines the container where this role is allowed. If a role has a required accessibility parent, authors MUST ensure that an element with the role is an accessibility child of an element with the required accessibility parent role. For example, an element with role listitem is only meaningful when it is a child of an element with role list.

+

The required accessibility parent (simplified as "parent") role defines the container where this role is allowed. If a role has a required accessibility parent, authors MUST ensure that an element with the role is an accessibility child of an element with the required accessibility parent role. For example, an element with role listitem is only meaningful when it is a child of an element with role list.

To determine whether an element has a parent with the required role, user agents MUST ignore any elements with the role generic or none.

Note

An element with the appropriate implicit WAI-ARIA semantic fulfills this requirement.

@@ -14119,6 +14111,95 @@

7.3 Relationships in the Accessibility Tree

+ +

The following terms are used to describe relationships between DOM elements.

+

The accessibility children of a DOM element are all of the children of that element's corresponding accessible object in the accessibility tree. In terms of the DOM, that includes the following (with exclusions listed blow):

+
    +
  • The DOM children of the element. +
  • +
  • All DOM descendants of the element with only elements of role generic or none intervening. +
  • +
  • All DOM elements specified via an aria-owns relationship to the element. +
  • +
  • All DOM descendants of an element with role generic or none specified via aria-owns with only elements of role generic or none intervening. +
  • +
+

And excludes the following: +

+

+

In the following example, the list element has four accessibility children:

+
+
<div role="list" aria-owns="child3 child4">
+  <div role="listitem">Accessibility Child 1</div>
+  <div>
+    <div role="listitem">Accessibility Child 2</div>
+  </div>
+</div>
+<div id="child3" role="listitem">Accessibility Child 3</div>
+<div id="child4">
+  <div role="listitem">Accessibility Child 4</div>
+</div>
+
+

In the following example, the list element has no accessibility children:

+
+
<div role="list">
+  <div role="listitem" aria-hidden="true">Excluded element</div>
+  <div role="listitem" id="reparented">Reparented element</div>
+</div>
+<div aria-owns="reparented"></div>
+
+

The accessibility descendants of a DOM element are all DOM elements which correspond to descendants of the corresponding accessible object in the accessibility tree.

+

The accessibility parent of a DOM element is the parent of the corresponding accessible object in the accessibility tree. In terms of the DOM, the accessibility parent is one of the following:

+
    +
  • The DOM parent of the element. +
  • +
  • The DOM ancestor of the element with only elements of role generic or none intervening. +
  • +
  • A DOM element with aria-owns set to the DOM ID of the DOM element in question. +
  • +
  • A DOM element with aria-owns set to the DOM ID of an ancestor of the DOM element in question, with only elements of role generic or none intervening. +
  • +
+

The following four examples all contain a listitem element with an accessibility parent of role list:

+
+
<div role="list">
+  <div role="listitem">The "list" is my accessibility parent.</div>
+</div>
+
+
+
<div role="list">
+  <div>
+    <div role="listitem">The "list" is my accessibility parent.</div>
+  </div>
+</div>
+
+
+
<div role="list" aria-owns="child"></div>
+<div id="child" role="listitem">The "list" is my accessibility parent.</div>
+
+
+
<div role="list" aria-owns="child"></div>
+<div id="child">
+  <div> role="listitem">The "list" is my accessibility parent.</div>
+</div>
+
+

8. Implementation in Host Languages

@@ -14348,9 +14429,9 @@

WAI-ARIA states or properties, user agents MUST ignore the none/presentation role and instead expose the element's implicit role. However, if an element has only non-global, role-specific WAI-ARIA states or properties, the element MUST NOT be exposed unless the presentational role is inherited and an explicit non-presentational role is applied.

For example, aria-describedby is a global attribute and would always be applied; aria-level is not a global attribute and would therefore only apply if the element was not in a presentational state.

-
+
<!-- 1. [role="none"] is ignored due to the global aria-describedby property. -->
 <h1 role="none" aria-describedby="comment-1"> Sample Content </h1>
 <!-- 2. [role="none"] negates both the implicit 'heading' and the non-global aria-level. -->
@@ -14540,8 +14621,8 @@ 

10.4 Example IDL Attribute Usage

This section is non-normative.

The primary purpose of ARIA IDL attribute reflection is to ease JavaScript-based manipulation of values. The following examples demonstrate its usage.

-