From 3fd715c1b542a7d678f4fab150f8c92fec23a948 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 15:15:22 -0500
Subject: [PATCH 01/16] Update: change default role for custom elements
closes #2303
This updates a custom element's default role to none to allow attribute reflection from the custom element parent to its internals.
This change provides additional clarification about how a custom element can be provided a role by authors, and what caveats would change a custom element's default role of none, to another implicit minimum role.
---
html-aam/index.html | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 40 insertions(+), 5 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index cf427a131..7ff3403fa 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -259,7 +259,8 @@ HTML Element Role Mappings
specified which would require a more specific minimum role to be exposed.
- Where an element is indicated as having "No corresponding (WAI-ARIA) role", or is mapped to the `generic` role, user agents
+ Where an element is indicated as having "No corresponding (WAI-ARIA) role", or is mapped to the `generic`
+ or `none` roles, user agents
MUST NOT expose the `aria-roledescription` property value in the accessibility tree unless the element has an
explicit, conforming `role` attribute value which [[WAI-ARIA-1.2]] does not prohibit the use of `aria-roledescription`.
@@ -851,7 +852,19 @@ autonomous custom element
| [[wai-aria-1.2]] |
- If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role. |
+
+
+ If the author assigned a conforming ARIA role using the `role` attribute,
+ or by the custom element's internals, map to the specified role.
+
+
+ If the author assigned attributes that result in a minimum role, then map
+ to the minimum role (see comments.
+
+
+ Otherwise, the element maps to the `none` role.
+
+ |
| Computed Role |
@@ -886,7 +899,29 @@ autonomous custom element
| Comments |
- |
+
+
+ Along with the attributes defined in this specification that contribute to modifying an element's minimum role,
+ the following conditions will also alter a custom element's computed role, if an author has not otherwise specified an
+ explicit role for the element:
+
+
+ - if the custom element is focusable: expose as `group` role
+ - if the custom element has an `aria-live` or `aria-owns` attribute: expose as `generic` role
+ - if element internals are used to set a global ARIA property: expose as `generic` role
+ - if an author specifies an ARIA relation via an element attribute: expose `generic` role
+
+
+ The following is an exmaple of an author specifiying an ARIA relation on a custom element, with another element in the DOM.
+
+
+ <my-element aria-details=ex>...<my-element>
+ ...
+ <div id=ex> <!-- details for my-element --> </div>
+
+
+
+ |
@@ -8786,7 +8821,7 @@ `autofocus`
| Comments |
- Provides a minimum role of `group`. |
+ Provides a minimum role of `group`. |
@@ -10475,7 +10510,7 @@ `draggable`
| Comments |
- Provides a minimum role of `group`. |
+ Provides a minimum role of `group`. |
From 2e4fe8f8ee98b20ad0e02d0ed04d8337bb66c2f7 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 15:50:16 -0500
Subject: [PATCH 02/16] fix typo / missing in-page link id
---
html-aam/index.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 7ff3403fa..c4ba1e803 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -859,7 +859,7 @@ autonomous custom element
If the author assigned attributes that result in a minimum role, then map
- to the minimum role (see comments.
+ to the minimum role (see comments).
Otherwise, the element maps to the `none` role.
@@ -898,7 +898,7 @@
autonomous custom element
- | Comments |
+
Along with the attributes defined in this specification that contribute to modifying an element's minimum role,
From 0d942421b08288a675a27b0b951bb3f97c71167b Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 15:52:46 -0500
Subject: [PATCH 03/16] Update html-aam/index.html
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index c4ba1e803..4e401b1c2 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -901,7 +901,7 @@ autonomous custom element
- Along with the attributes defined in this specification that contribute to modifying an element's minimum role,
+ Along with the attributes defined in this specification that participate in modifying an element's minimum role,
the following conditions will also alter a custom element's computed role, if an author has not otherwise specified an
explicit role for the element:
From a40c5e02078e17cf0c5939c462f53bfa6c5b210d Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 15:56:30 -0500
Subject: [PATCH 04/16] Update html-aam/index.html
---
html-aam/index.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 4e401b1c2..22272dc4f 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -913,8 +913,7 @@ autonomous custom element
The following is an exmaple of an author specifiying an ARIA relation on a custom element, with another element in the DOM.
-
-
+
<my-element aria-details=ex>...<my-element>
...
<div id=ex> <!-- details for my-element --> </div>
From 34ceeb0e1fdda9d8c9cf20f1e789c3a86a09ab63 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 15:56:34 -0500
Subject: [PATCH 05/16] Update html-aam/index.html
---
html-aam/index.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 22272dc4f..53ebe033f 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -917,8 +917,7 @@ autonomous custom element
<my-element aria-details=ex>...<my-element>
...
<div id=ex> <!-- details for my-element --> </div>
-
-
+
|
|
From 6f6ebf83f5ecb803b4c70ce4f87805354994c248 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 16:12:50 -0500
Subject: [PATCH 06/16] update per feedback/discussion about referenced
elements
---
html-aam/index.html | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 53ebe033f..4fe8abd62 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -907,16 +907,26 @@ autonomous custom element
- if the custom element is focusable: expose as `group` role
- - if the custom element has an `aria-live` or `aria-owns` attribute: expose as `generic` role
+ - if the custom element has an `aria-live` attribute: expose as `generic` role
- if element internals are used to set a global ARIA property: expose as `generic` role
- - if an author specifies an ARIA relation via an element attribute: expose `generic` role
+ - if an author specifies an ARIA attribute that creates a relation with another element (via IDRef): expose `generic` role
-
The following is an exmaple of an author specifiying an ARIA relation on a custom element, with another element in the DOM.
+
The following are exmaples of an author specifiying a relationships between custom elements and other elements in the DOM.
- <my-element aria-details=ex>...<my-element>
+ <my-element aria-details=ex>...</my-element>
...
<div id=ex> <!-- details for my-element --> </div>
+ ...
+ <ex-ample aria-owns=u>...</ex-ample>
+ ...
+ <div id=u> <!-- becomes the last a11y child of ex-ample --> </div>
+
+ <id-lement> ... </id-lement>
+ <script>
+ ...
+ document.querySelector('id-lement').ariaDescribedby = anotherEl;
+ </script>
From ae672af9ccecd858894f3cd55259c52d6f83b4f9 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 16:20:08 -0500
Subject: [PATCH 07/16] Update index.html
---
html-aam/index.html | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 4fe8abd62..7a79956ce 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -909,24 +909,24 @@ autonomous custom element
if the custom element is focusable: expose as `group` role
if the custom element has an `aria-live` attribute: expose as `generic` role
if element internals are used to set a global ARIA property: expose as `generic` role
- if an author specifies an ARIA attribute that creates a relation with another element (via IDRef): expose `generic` role
+ if an author specifies an ARIA attribute that creates a relation with another element: expose `generic` role
The following are exmaples of an author specifiying a relationships between custom elements and other elements in the DOM.
- <my-element aria-details=ex>...</my-element>
- ...
- <div id=ex> <!-- details for my-element --> </div>
- ...
- <ex-ample aria-owns=u>...</ex-ample>
- ...
- <div id=u> <!-- becomes the last a11y child of ex-ample --> </div>
+ <my-element aria-details=ex>...</my-element>
+ ...
+ <div id=ex> <!-- details for my-element --> </div>
+ ...
+ <ex-ample aria-owns=u>...</ex-ample>
+ ...
+ <div id=u> <!-- becomes the last a11y child of ex-ample --> </div>
- <id-lement> ... </id-lement>
- <script>
- ...
- document.querySelector('id-lement').ariaDescribedby = anotherEl;
- </script>
+ <id-lement> ... </id-lement>
+ <script>
+ ...
+ document.querySelector('id-lement').ariaDescribedby = anotherEl;
+ </script>
From 2215edc48c506eaf10616372cd4bc24976e8e73c Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 16:32:45 -0500
Subject: [PATCH 08/16] Update html-aam/index.html
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 7a79956ce..c5e1e3a60 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -909,7 +909,7 @@ autonomous custom element
if the custom element is focusable: expose as `group` role
if the custom element has an `aria-live` attribute: expose as `generic` role
if element internals are used to set a global ARIA property: expose as `generic` role
- if an author specifies an ARIA attribute that creates a relation with another element: expose `generic` role
+ if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose `group` role
The following are exmaples of an author specifiying a relationships between custom elements and other elements in the DOM.
From 7ef3647db476fc8151e37c4ce8b52619a8f74f99 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 16:33:00 -0500
Subject: [PATCH 09/16] Update html-aam/index.html
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index c5e1e3a60..9dc5b53ba 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -925,7 +925,7 @@ autonomous custom element
<id-lement> ... </id-lement>
<script>
...
- document.querySelector('id-lement').ariaDescribedby = anotherEl;
+ document.querySelector('id-lement').ariaDescribedbyByElements = [ descElement ];
</script>
From 1c00754a92048e15d4cce8e045ccce32f0bea869 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 16:51:13 -0500
Subject: [PATCH 10/16] or else if otherwise sure?
---
html-aam/index.html | 26 ++++----------------------
1 file changed, 4 insertions(+), 22 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 9dc5b53ba..e066f0fe0 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -906,29 +906,11 @@ autonomous custom element
explicit role for the element:
- - if the custom element is focusable: expose as `group` role
- - if the custom element has an `aria-live` attribute: expose as `generic` role
- - if element internals are used to set a global ARIA property: expose as `generic` role
- - if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose `group` role
+ - if the custom element is focusable: expose the `group` role
+ - else if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose the `group` role
+ - else if the custom element has an `aria-live` attribute: expose the `generic` role
+ - else if element internals are used to set a global ARIA property: expose the `generic` role
-
-
The following are exmaples of an author specifiying a relationships between custom elements and other elements in the DOM.
-
- <my-element aria-details=ex>...</my-element>
- ...
- <div id=ex> <!-- details for my-element --> </div>
- ...
- <ex-ample aria-owns=u>...</ex-ample>
- ...
- <div id=u> <!-- becomes the last a11y child of ex-ample --> </div>
-
- <id-lement> ... </id-lement>
- <script>
- ...
- document.querySelector('id-lement').ariaDescribedbyByElements = [ descElement ];
- </script>
-
-
From 2532049df216b425941c7e6373f544ab72267469 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Fri, 22 Nov 2024 17:09:58 -0500
Subject: [PATCH 11/16] combining things
pull comments into role table cell
combine custom elements and form associated custom elements into a single mapping table
---
html-aam/index.html | 96 +++++++++------------------------------------
1 file changed, 19 insertions(+), 77 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index e066f0fe0..8a4a5c124 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -841,29 +841,33 @@ `audio`
- autonomous custom element
-
+
+ autonomous custom elements
+ and
+ form-associated custom elements
+
+
| HTML Specification |
autonomous custom element
+ and
+ form-associated custom element
|
| [[wai-aria-1.2]] |
-
- If the author assigned a conforming ARIA role using the `role` attribute,
- or by the custom element's internals, map to the specified role.
-
-
- If the author assigned attributes that result in a minimum role, then map
- to the minimum role (see comments).
-
-
- Otherwise, the element maps to the `none` role.
-
+
+ - If the author assigned a conforming ARIA role using the `role` attribute, or by the custom element's internals, map to the specified role.
+ - else if the author assigned HTML attributes that result in a minimum role, then map to the minimum role.
+ - else if the custom element is focusable: expose the `group` role
+ - else if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose the `group` role
+ - else if the custom element has an `aria-live` attribute: expose the `generic` role
+ - else if element internals are used to set a global ARIA property: expose the `generic` role.
+ - Otherwise, the element maps to the `none` role.
+
|
@@ -898,20 +902,8 @@ autonomous custom element
-
- |
-
- Along with the attributes defined in this specification that participate in modifying an element's minimum role,
- the following conditions will also alter a custom element's computed role, if an author has not otherwise specified an
- explicit role for the element:
-
-
- - if the custom element is focusable: expose the `group` role
- - else if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose the `group` role
- - else if the custom element has an `aria-live` attribute: expose the `generic` role
- - else if element internals are used to set a global ARIA property: expose the `generic` role
-
- |
+ Comments |
+ |
@@ -2622,56 +2614,6 @@
-
-
-
-
- | HTML Specification |
-
- form-associated custom element
- |
-
-
- | [[wai-aria-1.2]] |
- If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role. |
-
-
- | Computed Role |
- Use WAI-ARIA mapping |
-
-
- |
- MSAA + IAccessible2
- |
-
- Use WAI-ARIA mapping
- |
-
-
- | UIA |
-
- Use WAI-ARIA mapping
- |
-
-
- | [[ATK]] |
-
- Use WAI-ARIA mapping
- |
-
-
- | AX |
-
- Use WAI-ARIA mapping
- |
-
-
-
- | Comments |
- |
-
-
-
`h1`, `h2`, `h3`, `h4`, `h5`, and `h6`
From 9a1e54a3ca356d4e77ffd570d1c1b5093813d205 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Wed, 27 Nov 2024 11:12:00 -0500
Subject: [PATCH 12/16] add in no shadow root use cae
update wording to be consistent between steps
---
html-aam/index.html | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 8a4a5c124..9a9c51393 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -860,13 +860,14 @@
| [[wai-aria-1.2]] |
- - If the author assigned a conforming ARIA role using the `role` attribute, or by the custom element's internals, map to the specified role.
- - else if the author assigned HTML attributes that result in a minimum role, then map to the minimum role.
- - else if the custom element is focusable: expose the `group` role
- - else if an author specifies an ARIA attribute on the custom element that creates a relation with another element: expose the `group` role
- - else if the custom element has an `aria-live` attribute: expose the `generic` role
- - else if element internals are used to set a global ARIA property: expose the `generic` role.
- - Otherwise, the element maps to the `none` role.
+ - If the author assigned a conforming ARIA role using the `role` attribute, or by the custom element's internals: map to the specified role.
+ - else if the author assigned HTML attributes that result in a minimum role: map to the minimum role.
+ - else if the custom element is focusable: map to the `group` role
+ - else if an author specifies a global ARIA attribute on the custom element that creates a relation with another element: map to the `group` role
+ - else if the custom element has no attached shadow root: map to the `generic` role
+ - else if the custom element has an `aria-live` attribute: map to the `generic` role
+ - else if element internals are used to set a global ARIA property: map to the `generic` role.
+ - Otherwise, the custom element maps to the `none` role.
|
From 620e070c185258251c626490175d37672d37e299 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Tue, 17 Dec 2024 15:59:47 -0500
Subject: [PATCH 13/16] Update html-aam/index.html
Co-authored-by: James Craig
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 9a9c51393..1b296d900 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -860,7 +860,7 @@
| [[wai-aria-1.2]] |
- - If the author assigned a conforming ARIA role using the `role` attribute, or by the custom element's internals: map to the specified role.
+ - If the author assigned a conforming role using the `role` attribute, or by the custom element's internals: map to the specified role.
- else if the author assigned HTML attributes that result in a minimum role: map to the minimum role.
- else if the custom element is focusable: map to the `group` role
- else if an author specifies a global ARIA attribute on the custom element that creates a relation with another element: map to the `group` role
From e2c538d02349602ed023f1bf83131311163d1fab Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Tue, 17 Dec 2024 16:02:26 -0500
Subject: [PATCH 14/16] Update html-aam/index.html
Co-authored-by: James Craig
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 1b296d900..d47b66cf4 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -863,7 +863,7 @@
- If the author assigned a conforming role using the `role` attribute, or by the custom element's internals: map to the specified role.
- else if the author assigned HTML attributes that result in a minimum role: map to the minimum role.
- else if the custom element is focusable: map to the `group` role
- - else if an author specifies a global ARIA attribute on the custom element that creates a relation with another element: map to the `group` role
+ - else if an author specifies a global ARIA attribute on the custom element that creates a relation with another element: map to the `group` role
- else if the custom element has no attached shadow root: map to the `generic` role
- else if the custom element has an `aria-live` attribute: map to the `generic` role
- else if element internals are used to set a global ARIA property: map to the `generic` role.
From 499fe99d4d7f79fa67f32cba5043a990ab937192 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Thu, 6 Feb 2025 12:28:47 -0500
Subject: [PATCH 15/16] Update html-aam/index.html
Co-authored-by: James Craig
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index d47b66cf4..02d66ae5f 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -259,7 +259,7 @@ HTML Element Role Mappings
specified which would require a more specific minimum role to be exposed.
-
- Where an element is indicated as having "No corresponding (WAI-ARIA) role", or is mapped to the `generic`
+ Where an element is mapped to the `generic`
or `none` roles, user agents
MUST NOT expose the `aria-roledescription` property value in the accessibility tree unless the element has an
explicit, conforming `role` attribute value which [[WAI-ARIA-1.2]] does not prohibit the use of `aria-roledescription`.
From a4d84a8eb0ff1c227ef063b937bd50efa0a25fc6 Mon Sep 17 00:00:00 2001
From: Scott O'Hara
Date: Thu, 6 Feb 2025 12:29:19 -0500
Subject: [PATCH 16/16] Update html-aam/index.html
---
html-aam/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/html-aam/index.html b/html-aam/index.html
index 02d66ae5f..310a448e4 100644
--- a/html-aam/index.html
+++ b/html-aam/index.html
@@ -862,7 +862,7 @@
- If the author assigned a conforming role using the `role` attribute, or by the custom element's internals: map to the specified role.
- else if the author assigned HTML attributes that result in a minimum role: map to the minimum role.
- - else if the custom element is focusable: map to the `group` role
+ - else if the custom element is focusable: map to the `group` role
- else if an author specifies a global ARIA attribute on the custom element that creates a relation with another element: map to the `group` role
- else if the custom element has no attached shadow root: map to the `generic` role
- else if the custom element has an `aria-live` attribute: map to the `generic` role
|