From 762a85ca9a73a1fb49763b568365d5002ba05d5b Mon Sep 17 00:00:00 2001 From: Carolyn MacLeod Date: Thu, 29 Nov 2018 19:07:42 -0500 Subject: [PATCH 1/5] ARIA: Editorial cleanup needed to "Presentational Roles Conflict Resolution" section #646 --- index.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index 265cf4372..c4c5be933 100644 --- a/index.html +++ b/index.html @@ -6104,16 +6104,19 @@
Note regarding the ARIA 1.1 none role.
Presentational Roles Conflict Resolution

There are a number of ways presentational role conflicts are resolved.

-

Host languages elements having implicit presentational roles for which no roles may be applied MUST never be exposed in the accessibility tree, with this exception: user agents MUST always expose global WAI-ARIA states and properties to accessibility APIs. In this case, the user agent ignores the explicit or inherited presentation role and exposes the element as described in the accessibility API mappings for presentational objects which remain in the accessibility tree. However, user agents MUST ignore any non-global, role-specific WAI-ARIA states and properties, unless it is on an inherited presentational role where an explicit role is applied.

-

For example, aria-haspopup 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.

+

Host language elements having explicit or inherited presentational role MUST NOT be exposed in the accessibility tree, with these exceptions:

+ +

For example, aria-label 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="presentation"] is ignored due to the global aria-haspopup property. -->
-<h1 role="presentation" aria-haspopup="true"> Sample Content </h1>
-						<!-- 2. [role="presentation"] negates the both the implicit 'heading' and the non-global level. -->
+<!-- 1. [role="presentation"] is ignored due to the global aria-label property. -->
+<h1 role="presentation" aria-label="Sample Heading Content"> Sample Content </h1>
+<!-- 2. [role="presentation"] negates both the implicit 'heading' and the non-global aria-level. -->
 <h1 role="presentation" aria-level="2"> Sample Content </h1>
 					
-

Explicit roles on a descendant or owned element override the inherited role of presentation, and cause the owned element to behave as any other element with an explicit role. If the action of exposing the implicit role causes the accessibility tree to be malformed, the expected results are undefined and the user agent MAY resort to an internal recovery mechanism to repair the accessibility tree.

-

If an element with a role of presentation is focusable, or otherwise interactive, user agents MUST ignore the normal effect of the role and expose the element with implicit native semantics, in order to ensure that the element is both understandable and operable.

From fa71c38b24966e9ea6a75da2cd403087511b5072 Mon Sep 17 00:00:00 2001 From: Carolyn MacLeod Date: Thu, 10 Oct 2019 13:27:51 -0400 Subject: [PATCH 2/5] - remove references to accessibility API mappings - remove understandable - remove "user agent MAY resort to an internal recovery mechanism" --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index c4c5be933..79a58e722 100644 --- a/index.html +++ b/index.html @@ -6106,9 +6106,9 @@
Presentational Roles Conflict Resolution

There are a number of ways presentational role conflicts are resolved.

Host language elements having explicit or inherited presentational role MUST NOT be exposed in the accessibility tree, with these exceptions:

For example, aria-label 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 14d78f8fe769d00a01b2be06775a5d9bb7b9cdce Mon Sep 17 00:00:00 2001
From: Carolyn MacLeod 
Date: Fri, 7 Feb 2020 13:12:27 -0500
Subject: [PATCH 3/5] Make "User agents" the subject of the MUST NOT.

---
 index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/index.html b/index.html
index 79a58e722..31652792b 100644
--- a/index.html
+++ b/index.html
@@ -6104,7 +6104,7 @@ 
Note regarding the ARIA 1.1 none role.
Presentational Roles Conflict Resolution

There are a number of ways presentational role conflicts are resolved.

-

Host language elements having explicit or inherited presentational role MUST NOT be exposed in the accessibility tree, with these exceptions:

+

User agents MUST NOT expose host language 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, 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.
  • From 27a083fd4bf10f9b0ed572927f3032cea207c2f8 Mon Sep 17 00:00:00 2001 From: Carolyn MacLeod Date: Thu, 20 Feb 2020 14:55:21 -0500 Subject: [PATCH 4/5] Remove "host language" and link "elements" to definition --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 31652792b..5891b5669 100644 --- a/index.html +++ b/index.html @@ -6104,7 +6104,7 @@
    Note regarding the ARIA 1.1 none role.
    Presentational Roles Conflict Resolution

    There are a number of ways presentational role conflicts are resolved.

    -

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

    +

    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, 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.
    • From 855f4dfdd93366910bac720e5298719151861e40 Mon Sep 17 00:00:00 2001 From: Carolyn MacLeod Date: Fri, 28 Feb 2020 14:16:47 -0500 Subject: [PATCH 5/5] use aria-describedby on h1 instead of aria-label add "with its implicit role" for clarity --- index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 5891b5669..c8e7f3e27 100644 --- a/index.html +++ b/index.html @@ -6106,14 +6106,14 @@
      Presentational Roles Conflict Resolution

      There are a number of ways presentational role conflicts are resolved.

      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, in order to ensure that the element is operable.
      • +
      • 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 element has global WAI-ARIA states or properties, user agents MUST ignore the presentation role and expose the element. 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.
      • +
      • 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-label 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.

      +

      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="presentation"] is ignored due to the global aria-label property. -->
      -<h1 role="presentation" aria-label="Sample Heading Content"> Sample Content </h1>
      +<!-- 1. [role="presentation"] is ignored due to the global aria-describedby property. -->
      +<h1 role="presentation" aria-describedby="comment-1"> Sample Content </h1>
       <!-- 2. [role="presentation"] negates both the implicit 'heading' and the non-global aria-level. -->
       <h1 role="presentation" aria-level="2"> Sample Content </h1>