fix(picker): added helptext component under same shadow root for screen reader
Description
This PR addresses an accessibility issue where help text associated with sp-picker is not properly announced by screen readers. The problem occurs because help text elements (sp-help-text) outside the shadow DOM aren't correctly associated with the picker in the accessibility tree.
The changes add proper ARIA relationships and support for slotting help text directly into the picker component.
Changes
Added a dedicated help-text slot to sp-picker
Related issue(s)
- https://github.com/adobe/spectrum-web-components/issues/5361
Motivation and context
Before
Previously, help text needed to be explicitly referenced by ID and wasn't being properly announced by screen readers:
<sp-picker id="text" label="Select contact method" aria-describedby="help-text">
<sp-menu-item>Phone</sp-menu-item>
<sp-menu-item>Text</sp-menu-item>
<sp-menu-item>Email</sp-menu-item>
</sp-picker>
<sp-help-text id="help-text">
Choose the best way to contact you in case there's an issue with your account.
</sp-help-text>
After
Now developers can slot help text directly into the picker, and it will be properly announced by screen readers:
<sp-picker label="Select contact method">
<sp-menu-item>Phone</sp-menu-item>
<sp-menu-item>Text</sp-menu-item>
<sp-menu-item>Email</sp-menu-item>
<sp-help-text slot="help-text">
Choose the best way to contact you in case there's an issue with your account.
</sp-help-text>
</sp-picker>
How has this been tested?
-
[ ] Test case 1
- Go here
- Open your Screen Reader
- The helptext is read out
-
[ ] Did it pass in Desktop?
-
[ ] Did it pass in Mobile?
-
[ ] Did it pass in iPad?
Screenshots (if appropriate)
Types of changes
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Chore (minor updates related to the tooling or maintenance of the repository, does not impact compiled assets)
Checklist
- [ ] I have signed the Adobe Open Source CLA.
- [ ] My code follows the code style of this project.
- [ ] If my change required a change to the documentation, I have updated the documentation in this pull request.
- [ ] I have read the CONTRIBUTING document.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
- [ ] I have reviewed at the Accessibility Practices for this feature, see: Aria Practices
Best practices
This repository uses conventional commit syntax for each commit message; note that the GitHub UI does not use this by default so be cautious when accepting suggested changes. Avoid the "Update branch" button on the pull request and opt instead for rebasing your branch against main.
⚠️ No Changeset found
Latest commit: 7d1c8b750df31d67077b118d48cf7b1cbb5e4e1e
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Branch preview
Review the following VRT differences
When a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
- Spectrum | Light | Medium | LTR
- Spectrum | Dark | Large | RTL
- Express | Light | Medium | LTR
- Express | Dark | Large | RTL
- Spectrum-two | Light | Medium | LTR
- Spectrum-two | Dark | Large | RTL
- High Contrast Mode | Medium | LTR
If the changes are expected, update the current_golden_images_cache hash in the circleci config to accept the new images. Instructions are included in that file.
If the changes are unexpected, you can investigate the cause of the differences and update the code accordingly.
Tachometer results
Currently, no packages are changed by this PR...
Tracked in https://github.com/adobe/spectrum-web-components/pull/5799