From 146cde6c27b880042f5014a0fad01a7d016ee5dc Mon Sep 17 00:00:00 2001 From: Sarah Higley Date: Tue, 13 Apr 2021 02:43:05 -0700 Subject: [PATCH 1/3] updated required owned elements and context role to allowed child elements and required parent role --- common/terms.html | 16 ++++++++++++++++ index.html | 32 ++++++++++++++++---------------- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/common/terms.html b/common/terms.html index 33c1fa7e4..1e43eb7ba 100644 --- a/common/terms.html +++ b/common/terms.html @@ -53,10 +53,22 @@

In this specification, attribute is used as it is in markup languages. Attributes are structural features added to elements to provide information about the states and properties of the object represented by the element.

+
Child Element
+
+

An 'child element' is a direct DOM child of the element, an descendant of the element with only generic or presentation elements intervening, or a child specified via aria-owns on the element.

+
Class

A set of instance objects that share similar characteristics.

+
Controlled Element
+
+

A 'controlled element' is any element referenced by id via aria-controls.

+
+
Controlling Element
+
+

A 'controlling element' is any element with an aria-controls attribute which references the ID of the element.

+
Deprecated

A deprecated role, state, or property is one which has been outdated by newer constructs or changed circumstances, and which may be removed in future versions of the WAI-ARIA specification. User agents are encouraged to continue to support items identified as deprecated for backward compatibility. For more information, see Deprecated Requirements in the Conformance section.

@@ -144,6 +156,10 @@

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.

+
Parent Element
+
+

An 'parent element' is a direct DOM parent of the element, an ancestor of the element with only generic or presentation elements intervening, or any element specified as a child via aria-owns.

+
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]].

diff --git a/index.html b/index.html index cbbaa3519..ad14ac3a2 100644 --- a/index.html +++ b/index.html @@ -663,18 +663,17 @@

Prohibited States and Properties

A host language attribute with the appropriate implicit WAI-ARIA semantic would also prohibit a state or property in this section.

-

Required Owned Elements

-

Any element that will be owned by the element with this role. For example, an element with the role list will own at least one element with the role listitem.

-

When multiple roles are specified as required owned elements for a role, at least one instance of one required owned element is expected. This specification does not require an instance of each of the listed owned roles. For example, a menu should have at least one instance of a menuitem, menuitemcheckbox, or menuitemradio. The menu role does not require one instance of each.

-

There may be times that required owned elements are missing, for example, while editing or while loading a data set. When a widget is missing required owned elements due to script execution or loading, authors MUST mark a containing element with aria-busy equal to true. For example, until a page is fully initialized and complete, an author could mark the document element as busy.

-

A role that has 'required owned elements' does not imply the reverse relationship. While processing of a role may be incomplete without elements of given roles present as descendants, elements with roles in this list do not always have to be found within elements of the given role. See required context role for requirements about the context where elements of a given role will be contained.

-

An element with a subclass role of the 'required owned element' does not fulfill this requirement. For example, the listbox role requires ownership of an element using the option or group role. Although the group role is the superclass of row, adding an owned element with a role of row will not fulfill the requirement that listbox owns an option or a group.

+

Allowed Child Elements

+

Any element that is a direct child of the element with this role. For example, an element with the role list may own elements with the role listitem, but not elements with the role option.

+

To determine whether an element is the direct child of a role, any elements with the role generic or presentation are ignored.

+

Non-child descendents of the element are not included in allowed child elements. For example, an image is not an allowed child of a list, but it may exist within a listitem in a list.

+

A role that has 'allowed child elements' 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 allowed parent roles for requirements about the context where elements of a given role will be contained.

+

An element with a subclass role of the 'allowed child element' 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 children must be an option or a group.

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

-

Required Context Role

-

The required context role defines the owning container where this role is allowed. If a role has a required context, authors MUST ensure that an element with the role is contained inside (or owned by) an element with the required context role. For example, an element with role listitem is only meaningful when contained inside (or owned by) an element with role list.

-

A role that has 'required context role' does not imply the reverse relationship. While an element with the given role needs to appear within an element of the listed role(s) in order to be meaningful, elements of the listed roles do not always need descendant elements of the given role in order to be meaningful. See required owned elements for requirements about elements that require presence of a given descendant to be processed properly.

+

Required Parent Role

+

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

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

@@ -4853,15 +4852,16 @@
Note regarding the ARIA 1.3 image role.
- Required Context Role: + Required Parent Role:   - Required Owned Elements: + Allowed Child Elements:
    -
  • group containing option
  • +
  • group with child option
  • option
  • +
  • button if controlling option
@@ -6295,16 +6295,16 @@
Note regarding the ARIA 1.1 none role.
- Required Context Role: + Required Parent Role:
  • listbox
  • -
  • group contained by listbox
  • +
  • group with parent listbox
- Required Owned Elements: + Allowed Child Elements:   @@ -13833,7 +13833,7 @@

Presentational Roles Conflict Resolution

User agents MUST NOT expose elements having explicit or inherited presentational role in the accessibility tree, with these exceptions:

  • If an element is focusable, or otherwise interactive, user agents MUST ignore the presentation role and expose the element with its implicit role, in order to ensure that the element is operable.
  • -
  • If a required owned element has an explicit non-presentational role, user agents MUST ignore an inherited presentational role and expose the element with its explicit role. If the action of exposing the explicit role causes the accessibility tree to be malformed, the expected results are undefined.
  • +
  • If an allowed child element has an explicit non-presentational role, user agents MUST ignore an inherited presentational role and expose the element with its explicit role. If the action of exposing the explicit role causes the accessibility tree to be malformed, the expected results are undefined.
  • If an element has global WAI-ARIA states or properties, user agents MUST ignore the presentation role and expose the element with its 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.

From 3193c1b7e02a406d5a5ceab8d4efea2b212fcdfd Mon Sep 17 00:00:00 2001 From: Sarah Higley Date: Thu, 29 Apr 2021 01:46:45 -0700 Subject: [PATCH 2/3] wording updates based on PR comments --- common/terms.html | 4 ++-- index.html | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/common/terms.html b/common/terms.html index 1e43eb7ba..c90bb7224 100644 --- a/common/terms.html +++ b/common/terms.html @@ -53,9 +53,9 @@

In this specification, attribute is used as it is in markup languages. Attributes are structural features added to elements to provide information about the states and properties of the object represented by the element.

-
Child Element
+
Owned Child
-

An 'child element' is a direct DOM child of the element, an descendant of the element with only generic or presentation elements intervening, or a child specified via aria-owns on the element.

+

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

Class
diff --git a/index.html b/index.html index ad14ac3a2..3bfa0269e 100644 --- a/index.html +++ b/index.html @@ -663,17 +663,18 @@

Prohibited States and Properties

A host language attribute with the appropriate implicit WAI-ARIA semantic would also prohibit a state or property in this section.

-

Allowed Child Elements

+

Allowed Child Roles

Any element that is a direct child of the element with this role. For example, an element with the role list may own elements with the role listitem, but not elements with the role option.

-

To determine whether an element is the direct child of a role, any elements with the role generic or presentation are ignored.

-

Non-child descendents of the element are not included in allowed child elements. For example, an image is not an allowed child of a list, but it may exist within a listitem in a list.

+

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

+

Descendents which are not direct children of an element ancestor are not constrained by allowed child roles. For example, an image is not an allowed child of a list, but it is a valid descendent so long as it is also a descendant of the list's allowed child listitem.

A role that has 'allowed child elements' 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 allowed parent roles for requirements about the context where elements of a given role will be contained.

-

An element with a subclass role of the 'allowed child element' 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 children must be an option or a group.

+

An element with a subclass role of the 'allowed 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.

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

Required Parent Role

The required parent role defines the parent container where this role is allowed. If a role has a required parent, authors MUST ensure that an element with the role is a direct child of an element with the required 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 presentation.

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

@@ -4856,7 +4857,7 @@
Note regarding the ARIA 1.3 image role.
  - Allowed Child Elements: + Allowed Child Roles:
  • group with child option
  • @@ -6304,7 +6305,7 @@
    Note regarding the ARIA 1.1 none role.
    - Allowed Child Elements: + Allowed Child Roles:   From 8160130b70f788d337514502a9a067165d0f1352 Mon Sep 17 00:00:00 2001 From: Sarah Higley Date: Tue, 1 Jun 2021 16:28:20 -0700 Subject: [PATCH 3/3] update based on allowed child/required parent changes --- common/terms.html | 2 +- index.html | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/common/terms.html b/common/terms.html index c90bb7224..9661800e6 100644 --- a/common/terms.html +++ b/common/terms.html @@ -158,7 +158,7 @@
Parent Element
-

An 'parent element' is a direct DOM parent of the element, an ancestor of the element with only generic or presentation elements intervening, or any element specified as a child via aria-owns.

+

A 'parent element' is a direct DOM parent of the element, an ancestor of the element with only generic or presentation elements intervening, or any element with a child specified via aria-owns.

Perceivable
diff --git a/index.html b/index.html index 3bfa0269e..7a58e26ce 100644 --- a/index.html +++ b/index.html @@ -294,6 +294,14 @@

Important Terms

A set of instance objects that share similar characteristics.

+
Controlled Element
+
+

A 'controlled element' is any element referenced by id via aria-controls.

+
+
Controlling Element
+
+

A 'controlling element' is any element with an aria-controls attribute which references the ID of the element.

+
Deprecated

A deprecated role, state, or property is one which has been outdated by newer constructs or changed circumstances, and which may be removed in future versions of the WAI-ARIA specification. User agents are encouraged to continue to support items identified as deprecated for backward compatibility. For more information, see Deprecated Requirements in the Conformance section.

@@ -388,14 +396,18 @@

Important Terms

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.

-
Owned Element
+
Owned Child
-

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.

+

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

Owning Element

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.

+
Parent Element
+
+

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

+
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]].

@@ -667,7 +679,7 @@

Allowed Child Roles

Any element that is a direct child of the element with this role. For example, an element with the role list may own elements with the role listitem, but not elements with the role option.

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

Descendents which are not direct children of an element ancestor are not constrained by allowed child roles. For example, an image is not an allowed child of a list, but it is a valid descendent so long as it is also a descendant of the list's allowed child listitem.

-

A role that has 'allowed child elements' 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 allowed parent roles for requirements about the context where elements of a given role will be contained.

+

A role that has 'allowed 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 allowed parent roles for requirements about the context where elements of a given role will be contained.

An element with a subclass role of the 'allowed 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.

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

@@ -4862,7 +4874,7 @@
Note regarding the ARIA 1.3 image role.