Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[html-aam PR 359] Change figure & figcaption accName computation #2224

Open
wants to merge 27 commits into
base: main
Choose a base branch
from

Conversation

pkra
Copy link
Member

@pkra pkra commented May 24, 2024

scottaohara and others added 24 commits January 20, 2022 08:30
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
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.
saying it doesn't know what accname is... so, replacing the instances of the links which may be causing the issue?
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.
@pkra pkra changed the base branch from monorepo_history--html-aam to main June 12, 2024 19:19
@pkra pkra changed the title [Monorepo] [html-aam PR 359] Change figure & figcaption accName computation [html-aam PR 359] Change figure & figcaption accName computation Jun 12, 2024
@pkra
Copy link
Member Author

pkra commented Jun 12, 2024

Now pointing to main.

html-aam/index.html Outdated Show resolved Hide resolved
@rahimabdi
Copy link
Contributor

Re-adding reviewers @cookiecrook @aleventhal @jcsteh.

@rahimabdi rahimabdi added the waiting for implementations Cannot be merged until there are two browser impls or one impl + impl commit label Aug 11, 2024
html-aam/index.html Outdated Show resolved Hide resolved
html-aam/index.html Outdated Show resolved Hide resolved
Copy link

netlify bot commented Sep 27, 2024

Deploy Preview for wai-aria ready!

Name Link
🔨 Latest commit 5bf314d
🔍 Latest deploy log https://app.netlify.com/sites/wai-aria/deploys/66f70843ea4c28000853858b
😎 Deploy Preview https://deploy-preview-2224--wai-aria.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

html-aam/index.html Outdated Show resolved Hide resolved
html-aam/index.html Outdated Show resolved Hide resolved
@scottaohara
Copy link
Member

Details relationships have been removed from this PR.

So, what this PR does now is

  1. removes the mappings for figure receiving a name from the figure and figcaption elements from their mapping tables
  2. removes figcaption from the name calculation steps in that section of the spec, and explicitly states in that section that figcaption does not contribute to name or description unless specified by the author (e.g., via aria)

With these changes, screen readers probably SHOULD, if they don't do so already, make sure that

  1. the figure element has its role exposed (announced), whether it has a name or not(?), so that people can be aware of the start/end of a figure
  2. the figcaption element SHOULD similarly have its caption role exposed (announced) so it can be made clear where the figure content vs caption content start/end.

Obviously, i'm not saying any screen reader 'must' do what i outlined, but it seemed the simplest enough way to indicate that some sort of changes to make sure people can effectively understand the figure's content vs caption can be made - since now the overly verbose/redundancy of figcaptions as names to figures is removed - and we will no longer be asking a details relationship to be exposed, since that had the unintended effect of trying to solve one verbosity issue with a different once.

@aleventhal
Copy link
Contributor

Landed the removal of the auto details relation for Chrome/Edge in https://chromium-review.googlesource.com/c/chromium/src/+/5891779

jcsteh referenced this pull request in TheEvilSkeleton/valent Nov 27, 2024
This is a quick and dirty hack to prevent screen readers from reading
the content inside the `<figure>` tag twice.

Credit to @jcsteh (Jamie) at
https://matrix.to/#/!jmuErVonajdNMbgdeY:mozilla.org/$Esj2fvpJ5e2cJPZKQrCyzPBS8lnL0ZQc25vMMvW4lAM?via=mozilla.org&via=matrix.org&via=tchncs.de
scottaohara added a commit to web-platform-tests/wpt that referenced this pull request Dec 11, 2024
a figcaption should not provide a name to a figure element per w3c/aria#2224
@scottaohara
Copy link
Member

created web platform test for this PR (also added to OP) - web-platform-tests/wpt#49647

Copy link
Contributor

@cookiecrook cookiecrook left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

flagging a section i may have missed earlier

Comment on lines -2319 to -2321
<div class="general">
Accessible name derived from `figcaption` according to the <a href="#figure-element-accessible-name-computation">`figure` Element Accessible Name Computation</a>
</div>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I missed this...

removes figcaption from the name calculation steps in that section of the spec, and explicitly states in that section that figcaption does not contribute to name or description unless specified by the author (e.g., via aria)

What's the reason for this removal? WebKit and Safari implementations agree on using figcaption as the name if none other is provided via ARIA. Seems logical to me to keep this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, that's a good example

Copy link
Contributor

@cookiecrook cookiecrook Dec 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scott and I chatted, and are working on a update that will account for this HTML text:

  1. If the image is a descendant of a figure element that has a child figcaption element, and, ignoring the figcaption element and its descendants, the figure element has no flow content descendants other than inter-element whitespace and the img element, then return the contents of the first such figcaption element.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:html-aam waiting for implementations Cannot be merged until there are two browser impls or one impl + impl commit
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stop automatically exposing details relation for figure -> figcaption
7 participants