From 941668ec05acc1fecddcb07e1456c4c183f75bd2 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Thu, 20 Jan 2022 08:30:22 -0500 Subject: [PATCH 1/9] Change figure & figcaption accName computation resolves #325 This PR revises the mappings for `figure` and `figcaption` to remove the "labelled by" relations, changing them to "details for". The accessible name computation for `figure` removes `figcaption`, a note is added to further reference this change. TODO: - [ ] need to check on updates to UIA mapping, if any. - [ ] do we want `figcaption` to map to `caption`? - [ ] regardless of above, [`caption`](https://w3c.github.io/aria/#caption) will need to be updated in regards to its referencing `figure` and `figcaption` relationships - [ ] [`aria-details`](https://w3c.github.io/aria/#aria-details) definition should be updated to reference this change --- index.html | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/index.html b/index.html index 7a3c9dfd..ece7000f 100644 --- a/index.html +++ b/index.html @@ -1076,7 +1076,8 @@

HTML Element Role Mappings

Roles: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_CAPTION`
- Relations: `IA2_RELATION_LABEL_FOR` with parent `figure` element + Relations: + `IA2_RELATION_DETAILS_FOR` with parent `figure` element
Interfaces: `IAccessibleText2`; `IAccessibleHypertext2`; @@ -1093,7 +1094,7 @@

HTML Element Role Mappings

Relations: - `ATK_RELATION_LABEL_FOR` with parent `figure` element + `RELATION_DETAILS_FOR` with parent `figure` element
Interfaces: `AtkText`; `AtkHypertext` @@ -1123,34 +1124,25 @@

HTML Element Role Mappings

Role: Use WAI-ARIA mapping
-
- Relations: `IA2_RELATION_LABELLED_BY` with child `figcaption` element -
Role: Use WAI-ARIA mapping
-
- Accessible name derived from `figcaption` according to the `figure` Element Accessible Name Computation -
Role: Use WAI-ARIA mapping
-
- Name: related `figcaption` content -
-
- Relations: `ATK_RELATION_LABELLED_BY` with child `figcaption` element -
AXRole: Use WAI-ARIA mapping
- + + The first child instance of a `figcaption` provides details + for its parent `figure`. + @@ -6326,6 +6318,13 @@

`summary` Element Accessible Description Computation

`figure` and `figcaption` Elements

+
+

+ A `figcaption` provides additional detailed information related to its parent + `figure` element. A `figcaption` does not take part in the + accessible name or accessible description computation. +

+

`figure` Element Accessible Name Computation

    @@ -6333,12 +6332,11 @@

    `figure` Element Accessible Name Computation

    If the `figure` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  1. - If the accessible name is still empty, then: if the `figure` element has a child that is a `figcaption` element, then use the subtree of the first such element. + Otherwise, use the `title` attribute.
  2. - If the accessible name is still empty, then: if the `figure` element has a `title` attribute, then use that attribute. + If none of the above yield a usable text string there is no accessible name.
  3. -
  4. Otherwise, there is no accessible name.
From 0a0f361192530973e6affb195dd792fd9a95b665 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Mon, 7 Feb 2022 08:48:27 -0500 Subject: [PATCH 2/9] resolve review comments --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index d91c746b..63444333 100644 --- a/index.html +++ b/index.html @@ -1080,10 +1080,8 @@

HTML Element Role Mappings

Relations: - `IA2_RELATION_DETAILS_FOR` with parent `figure` element -
-
- Interfaces: `IAccessibleText2`; `IAccessibleHypertext2`; + `IA2_RELATION_DETAILS_FOR` with parent `figure` element. + The `figure` element's `IA2_RELATION_DETAILS` points to the `figcaption`.
@@ -1097,10 +1095,8 @@

HTML Element Role Mappings

Relations: - `RELATION_DETAILS_FOR` with parent `figure` element -
-
- Interfaces: `AtkText`; `AtkHypertext` + `RELATION_DETAILS_FOR` with parent `figure` element. + The `figure` element's `RELATION_DETAILS` points to the `figcaption`.
@@ -1132,6 +1128,10 @@

HTML Element Role Mappings

Role: Use WAI-ARIA mapping
+
+ Property: + `DescribedBy`: points to the first child `figcaption`, if any +
From 8e3e59838a585dcaf82fdf159f6ebc74426c34eb Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Fri, 29 Apr 2022 08:19:11 -0400 Subject: [PATCH 3/9] indicate figcaption maps to caption --- index.html | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index a7980901..6e148e2b 100644 --- a/index.html +++ b/index.html @@ -1041,10 +1041,12 @@

HTML Element Role Mappings

`figcaption` - No corresponding role + + `caption` role +
- Roles: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_CAPTION` + Role: Use WAI-ARIA mapping
Relations: @@ -1053,13 +1055,14 @@

HTML Element Role Mappings

-
- Control Type: `Text` +
+ Role: Use WAI-ARIA mapping
+
- Role: `ATK_ROLE_CAPTION` + Role: Use WAI-ARIA mapping
Relations: @@ -1069,14 +1072,9 @@

HTML Element Role Mappings

- AXRole: `AXGroup` -
-
- AXSubrole: `(nil)` -
-
- AXRoleDescription: `"group"` + Role: Use WAI-ARIA mapping
+ From 884150235b275b0a422a207fcbad6251117f6dc5 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Fri, 29 Apr 2022 08:40:40 -0400 Subject: [PATCH 4/9] add in AX details for figure's relationship to figcaption cc @cookiecrook to make sure i got this right. thank you --- index.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 6e148e2b..8006a2b4 100644 --- a/index.html +++ b/index.html @@ -1074,7 +1074,6 @@

HTML Element Role Mappings

Role: Use WAI-ARIA mapping
- @@ -1107,10 +1106,14 @@

HTML Element Role Mappings

AXRole: Use WAI-ARIA mapping
+
+ Property: + `AXDetailsElements` points to the first child instance of a `figcaption` element. +
The first child instance of a `figcaption` provides details - for its parent `figure`. + for its parent `figure`. From a8a4c0134d2e6a0697c41a2275c06bfe46efcdf0 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Wed, 3 May 2023 10:07:35 -0400 Subject: [PATCH 5/9] finish up mapping detials verified the UIA mappings with help from @benbeaudry made some of the wording consistent between mappings added in a SHOULD to indicate that if a figure is explicitly provided an accessible name from its figcaption, then do not expose the details relationship, as that'd add redundancy. --- index.html | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index 56a9f845..2dba7c57 100644 --- a/index.html +++ b/index.html @@ -1017,14 +1017,13 @@

HTML Element Role Mappings

Relations: `IA2_RELATION_DETAILS_FOR` with parent `figure` element. - The `figure` element's `IA2_RELATION_DETAILS` points to the `figcaption`. + The `figure` element's `IA2_RELATION_DETAILS` points to the first instance of a child `figcaption`.
Role: Use WAI-ARIA mapping
-
@@ -1033,7 +1032,7 @@

HTML Element Role Mappings

Relations: `RELATION_DETAILS_FOR` with parent `figure` element. - The `figure` element's `RELATION_DETAILS` points to the `figcaption`. + The `figure` element's `RELATION_DETAILS` points to the first instance of a child `figcaption`.
@@ -1042,7 +1041,11 @@

HTML Element Role Mappings

- + +

If an author specifies a `figure` element to acquire its accessible name from the first instance + of a `figcaption` with an `aria-labelledby` association, then user agents SHOULD NOT expose a + details relationship between the `figure` and `figcaption` elements.

+ @@ -1062,7 +1065,7 @@

HTML Element Role Mappings

Property: - `DescribedBy`: points to the first child `figcaption`, if any + `DescribedBy`: points to the first child instance of a `figcaption` element.
@@ -1080,8 +1083,11 @@

HTML Element Role Mappings

- The first child instance of a `figcaption` provides details - for its parent `figure`. +

Only the first child instance of a `figcaption` provides details + for its parent `figure`.

+

If an author specifies a `figure` element to acquire its accessible name from the first instance + of a `figcaption` with an `aria-labelledby` association, then user agents SHOULD NOT expose a + details relationship between the `figure` and `figcaption` elements.

From 1108f165bed33a2f9ba62c953a3c0c8e8e982401 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Wed, 3 May 2023 10:48:14 -0400 Subject: [PATCH 6/9] attempt to fix build error saying it doesn't know what accname is... so, replacing the instances of the links which may be causing the issue? --- index.html | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/index.html b/index.html index 1d7d530a..4731ad05 100644 --- a/index.html +++ b/index.html @@ -5984,7 +5984,7 @@

Accessible Name Computations By HTML Element

`input type="text"`, `input type="password"`, `input type="number"`, `input type="search"`,` input type="tel"`, `input type="email"`, `input type="url"` and `textarea` Element Accessible Name Computation

  1. - If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
  2. Otherwise use the associated `label` element or elements accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces. @@ -6000,7 +6000,7 @@

    `input type="text"`, `input type="password"`, `input type="number"`, `input

    `input type="button"`, `input type="submit"` and `input type="reset"` Accessible Name Computation

    1. - If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
    2. Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces. @@ -6022,7 +6022,7 @@

      `input type="button"`, `input type="submit"` and `input type="reset"` Access

      `input type="image"` Accessible Name Computation

      1. - If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
      2. Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces. @@ -6043,7 +6043,7 @@

        `input type="image"` Accessible Name Computation

        `button` Element Accessible Name Computation

        1. - If the `button` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `button` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
        2. Otherwise use the associated `label` element(s) accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces. @@ -6059,7 +6059,7 @@

          `button` Element Accessible Name Computation

          `fieldset` Element Accessible Name Computation

          1. - If the `fieldset` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `fieldset` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
          2. If the accessible name is still empty, then: if the `fieldset` element has a child that is a legend element, then use the subtree of the first such element. @@ -6074,7 +6074,7 @@

            `fieldset` Element Accessible Name Computation

            `output` Element Accessible Name Computation

            1. - If the `output` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `output` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
            2. Otherwise use the associated `label` element or elements accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces.
            3. Otherwise use `title` attribute.
            4. @@ -6087,7 +6087,7 @@

              `output` Element Accessible Name Computation

              Other Form Elements Accessible Name Computation

              1. - If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the control has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
              2. Otherwise use `label` element.
              3. Otherwise use `title` attribute.
              4. @@ -6100,7 +6100,7 @@

                Other Form Elements Accessible Name Computation

                `summary` Element Accessible Name Computation

                1. - If the first `summary` element, which is a direct child of the `details` element, has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the first `summary` element, which is a direct child of the `details` element, has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                2. Otherwise use `summary` element subtree.
                3. Otherwise use `title` attribute.
                4. @@ -6124,8 +6124,7 @@

                  `figure` Element Accessible Name Computation

                  1. If the `figure` element has an `aria-label` or an `aria-labelledby` attribute - the accessible name is to be calculated using the algorithm defined in - Accessible Name and Description: Computation and API Mappings. + the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                  2. Otherwise, use the `title` attribute. @@ -6139,7 +6138,7 @@

                    `figure` Element Accessible Name Computation

                    `img` Element Accessible Name Computation

                    1. - If the `img` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `img` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                    2. Otherwise use `alt` attribute, even if its value is the empty string. @@ -6156,7 +6155,7 @@

                      `img` Element Accessible Name Computation

                      `table` Element Accessible Name Computation

                      1. - If the `table` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `table` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                      2. If the accessible name is still empty, then: if the `table` element has a child that is a caption element, then use the subtree of the first such element. @@ -6171,7 +6170,7 @@

                        `table` Element Accessible Name Computation

                        `tr`, `td`, `th` Elements Accessible Name Computation

                        1. - If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                        2. Otherwise use the `title` attribute.
                        3. @@ -6183,7 +6182,7 @@

                          `tr`, `td`, `th` Elements Accessible Name Computation

                          `a` Element Accessible Name Computation

                          1. - If the `a` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `a` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                          2. Otherwise use `a` element subtree.
                          3. Otherwise use the `title` attribute.
                          4. @@ -6196,7 +6195,7 @@

                            `a` Element Accessible Name Computation

                            `area` Element Accessible Name Computation

                            1. - If the `area` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the `area` element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                            2. Otherwise use `area` element's `alt` attribute.
                            3. Otherwise use the `title` attribute.
                            4. @@ -6208,7 +6207,7 @@

                              `area` Element Accessible Name Computation

                              `iframe` Element Accessible Name Computation

                                -
                              1. If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. +
                              2. If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                              3. Otherwise use the `title` attribute.
                              4. If none of the above yield a usable text string there is no accessible name.
                              5. @@ -6219,7 +6218,7 @@

                                `iframe` Element Accessible Name Computation

                                Section and Grouping Element Accessible Name Computation

                                1. - If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                                2. Otherwise use the `title` attribute.
                                3. @@ -6234,7 +6233,7 @@

                                  Text-level Element Accessible Name Computation

                                  1. - If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings. + If the element has an `aria-label` or an `aria-labelledby` attribute the accessible name is to be calculated using the algorithm defined in [[[accname-1.2]]].
                                  2. Otherwise use the `title` attribute.
                                  3. From db3e5b7c3dc79576e795e2ec26b2d261da6820f5 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Wed, 3 May 2023 11:01:20 -0400 Subject: [PATCH 7/9] fix the broken accname/desc references --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index c5ac26bd..01a1239f 100644 --- a/index.html +++ b/index.html @@ -6084,8 +6084,8 @@

                                    `figure` Element Accessible Name Computation

                                    A `figcaption` provides additional details related to its parent `figure` element. A `figcaption` does not take part in the - accessible name or accessible description computation, - unless explicitly referenced by an author. In such an instance, user agents SHOULD NOT expose the details relationship between the + accessible name or accessible description + computation, unless explicitly referenced by an author. In such an instance, user agents SHOULD NOT expose the details relationship between the `figure` `figcaption` elements, and instead expose the `figcaption` as the element's accessible name or description.

                                      From 2339df0df1db7072a50fdb9a62f5802a39d5c0c7 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Sun, 4 Jun 2023 19:07:31 -0400 Subject: [PATCH 8/9] add comment regarding aria-details see https://bugs.chromium.org/p/chromium/issues/detail?id=1426613#c4 aria-details with an empty string could be useful to authors if there was a specific need to _not_ expose a child figcaption - e.g., if the elements need to have remapped roles for whatever reason. --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index 80c5a33e..b07b8a8b 100644 --- a/index.html +++ b/index.html @@ -1040,6 +1040,9 @@

                                      HTML Element Role Mappings

                                      If an author specifies a `figure` element to acquire its accessible name or description from the first instance of a `figcaption` with an `aria-labelledby` or `aria-describedby` association, then user agents SHOULD NOT expose a details relationship between the `figure` and `figcaption` elements.

                                      +

                                      An explicit declaration of the `aria-details` attribute on the `figure` element will override the implicit `aria-details` + association with the element's child `figcaption` element, if one exists. If the `aria-details` attribute has an empty value, + then the `figure` element has no details relation to expose.

                                      From 7839c0358ea2bdddf9dc2b2e00209665112ccac6 Mon Sep 17 00:00:00 2001 From: Scott O'Hara Date: Wed, 22 Nov 2023 11:22:34 -0500 Subject: [PATCH 9/9] update based on review suggestions cc @cookiecrook --- index.html | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index 73b997a4..51558242 100644 --- a/index.html +++ b/index.html @@ -2206,7 +2206,8 @@

                                      `figcaption`

Relations: - If the first instance of a child `figcaption` to its parent `figure`, then `RELATION_DETAILS_FOR` with parent `figure` element. + If this is the first instance of a child `figcaption` to its parent `figure` element, + then expose `RELATION_DETAILS_FOR` referencing the parent `figure` element.
@@ -2223,8 +2224,8 @@

`figcaption`

Comments

- Only the first child instance of a `figcaption` this is present in the accessibility tree - provides details for its parent `figure`.

+ Only the first child instance of a `figcaption` element that is present in the accessibility tree (e.g., not 'hidden') + provides details for its parent `figure` element.

@@ -2252,7 +2253,8 @@

`figure`

Relations: - `IA2_RELATION_DETAILS` points to the first instance of a child `figcaption` if the element is present in the accessibility tree. + `IA2_RELATION_DETAILS` points to the first instance of a child `figcaption` if the element is present in the accessibility tree of the + parent `figure` element.
@@ -2264,7 +2266,8 @@

`figure`

Property: - `DescribedBy` points to the first instance of a child `figcaption` if the element is present in the accessibility tree. + `DescribedBy` references the first instance of a child `figcaption` element if the element is present in the accessibility tree + of the parent `figure` element.
@@ -2279,7 +2282,8 @@

`figure`

Relations: - `RELATION_DETAILS` points to the first instance of a child `figcaption` if the element is present in the accessibility tree. + `RELATION_DETAILS` references the first instance of a child `figcaption` element if the element is present in the accessibility tree + of the parent `figure` element.
@@ -2291,7 +2295,8 @@

`figure`

Property: - `AXDetailsElements` points to the first child instance of a `figcaption` if the element is present in the accessibility tree. + `AXDetailsElements` references the first instance of a child `figcaption` element if the element is present in the accessibility tree + of the parent `figure` element.
@@ -2301,8 +2306,8 @@

`figure`

If an author specifies a `figure` element to acquire its accessible name or description from the first instance - of a `figcaption` with an `aria-labelledby` or `aria-describedby` association, then user agents SHOULD NOT expose a - details relationship between the `figure` and `figcaption` elements.

+ of a child `figcaption` element via an `aria-labelledby` or `aria-describedby` association, then user agents SHOULD NOT expose a + details relationship between the parent `figure` and child `figcaption` elements.

An explicit declaration of the `aria-details` attribute on the `figure` element will override the implicit `aria-details` association with the element's child `figcaption` element, if one exists. If the `aria-details` attribute has an empty value, @@ -16465,8 +16470,12 @@

`figure` Element Accessible Name Computation

A `figcaption` provides additional details related to its parent `figure` element. A `figcaption` does not take part in the accessible name or accessible description - computation, unless explicitly referenced by an author. In such an instance, user agents SHOULD NOT expose the details relationship between the - `figure` `figcaption` elements, and instead expose the `figcaption` as the element's accessible name or description, as specified by the author. + computation, unless explicitly referenced by an author. +

+

+ When an author uses `aria-labelledby` or `aria-describedby` to reference the first child `figcaption` element from the parent `figure` element, + user agents SHOULD NOT expose the details relationship between the `figure` and `figcaption` elements, and instead expose the `figcaption` as the element's accessible name or description, + according to the following steps.