-
Notifications
You must be signed in to change notification settings - Fork 861
[EuiToolTip] Support conditional screen reader output #8508
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
Merged
mgadewoll
merged 5 commits into
elastic:main
from
mgadewoll:tooltip/support-visual-tooltip-only
Mar 28, 2025
Merged
[EuiToolTip] Support conditional screen reader output #8508
mgadewoll
merged 5 commits into
elastic:main
from
mgadewoll:tooltip/support-visual-tooltip-only
Mar 28, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- adds support to manually disable screen readers reading the tooltip content; this is useful when the tooltip is used as visual text alternative only and trigger and tooltip have the same text content
mgadewoll
commented
Mar 26, 2025
15 tasks
acstll
approved these changes
Mar 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left one comment regarding the prop name, but I tested manually (only in dev tools) and it works as expected — great work (as always)
|
Preview staging links for this PR:
|
💚 Build Succeeded
History
cc @mgadewoll |
This was referenced Apr 2, 2025
weronikaolejniczak
added a commit
to elastic/kibana
that referenced
this pull request
Apr 10, 2025
> [!Note] > This PR is a manual backport of the already merged #217491 `101.0.1` ⏩ `101.3.0-classic.0` [Questions? Please see our Kibana upgrade FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams) ## Package updates ### `@elastic/eui` #### [`v101.3.0`](https://github.com/elastic/eui/releases/v101.3.0) - Updated 78 existing and added two new glyphs (`code` and `checkCircle`) for `EuiIcon` ([#8530](elastic/eui#8530)) - Changed `gutterSize` to `m` between right side items on `EuiPageHeader` ([#8529](elastic/eui#8529)) **Bug fixes** - Fixed a visual bug on disabled `EuiButton` in high contrast mode where wrong text colors were applied ([#8550](elastic/eui#8550)) #### [`v101.2.0`](https://github.com/elastic/eui/releases/v101.2.0) - Added `showToolTip` prop on `EuiColorPickerSwatch` ([#8512](elastic/eui#8512)) **Bug fixes** - Fixed a visual issue of overlapping borders for layered `EuiPanel`s ([#8519](elastic/eui#8519)) - Fixes wrong `colorMode` styling for the search in `EuiHeader` with `theme="dark"` ([#8496](elastic/eui#8496)) **Accessibility** - Improved the accessibility of `EuiColorPicker` by adding color label tooltips on hover and focus for color swatches ([#8512](elastic/eui#8512)) - Added `disableScreenReaderOutput` prop on `EuiToolTip` to manually control if the tooltip content should be read when focusing the trigger. This prevents duplicate screen reader output when the tooltip content and `aria-label` on the trigger element have the same text content. ([#8508](elastic/eui#8508)) - Improves text color contrast for `EuiButton` with `color="warning"` in high contrast mode ([#8496](elastic/eui#8496)) - Improves contrast and visible distinction of the following components in high contrast mode: ([#8496](elastic/eui#8496)) - `EuiCode` - `EuiBadge` - `EuiBetaBadge` - `EuiNotificationBadge` **Dependency updates** - Updated `prismjs` to v1.30.0 ([#8506](elastic/eui#8506)) #### [`v101.1.0`](https://github.com/elastic/eui/releases/v101.1.0) - Updates `EuiTableRow` styles to check support for `:has(+)` selector ([#8498](elastic/eui#8498)) <!--ONMERGE {"backportTargets":["9.0"]} ONMERGE--> --------- Co-authored-by: Weronika Olejniczak <weronika.olejniczak@elastic.co>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Relates to elastic/kibana#214104 (comment)
Relates to #8429
This PR enables
EuiToolTipto optionally disable the automatic linking of trigger and tooltip element viaaria-describedby. In most cases this should not be used, as we want the tooltip content to be available for screen reader users when focusing the trigger element.There are use cases though were this automatic screen reader output for the tooltip content is an issue because it creates duplication. In those cases the tooltip is used solely as visual text alternative, not as accessible one.
Example use cases:
the trigger element already has a descriptive
aria-labelwhich is identical to the tooltip content (e.g. when used with an icon button where the tooltip is only a visual text alternative to the icon graphic)aria-labelcopy instead to make it more actionable and the tooltip content more into "additional information"the trigger element already has a descriptive
aria-labelwhich includes the content of the tooltip (e.g. color labels onEuiColorPickerSwatch:Select {color} as the color&{color})hasScreenReaderContent=true(default)hasScreenReaderContent=falseChanges
disableScreenReaderOutputonEuiTooltip(default value:true)Important
I purposefully did not add any further description about the prop in our docs, as on average we don't want consumers to use this pattern but instead ensure an
aria-labelon the trigger and the tooltip content are standalone information.QA
EuiTooltipfunctionality does not have any regressiondisableScreenReaderOutputen/disables if the tooltip content is output by screen readers.General checklist
Checked in both light and dark modesChecked in both MacOS and Windows high contrast modes(emulate forced colors if you do not have access to a Windows machine.)Added documentation@defaultif default values are missing) and playground togglesChecked Code Sandbox works for any docs examplesIf applicable, added the breaking change issue label (and filled out the breaking change checklist)If applicable, file an issue to update EUI's Figma library with any corresponding UI changes. (This is an internal repo, if you are external to Elastic, ask a maintainer to submit this request)