fix: [SDK-4897] add accessible name to subscription bell launcher button#1478
Merged
Conversation
The bell launcher is an icon-only button with no discernible text, so
customer sites fail accessibility audits ("Buttons must have discernible
text"). Add a default aria-label, configurable and localizable via the
existing bell text config as 'launcher.label', and hide the decorative
bell SVG from the accessibility tree.
Contributor
Author
|
@claude review once |
fadi-george
reviewed
Jul 22, 2026
fadi-george
reviewed
Jul 22, 2026
fadi-george
reviewed
Jul 22, 2026
16 tasks
fadi-george
reviewed
Jul 22, 2026
Contributor
|
Ill guess well also need mintlify docs changes later for new label |
The key never renders visible text, unlike other BellText keys, so name it after the attribute it populates to avoid ambiguity.
fadi-george
approved these changes
Jul 22, 2026
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
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.
Description
1 Line Summary
Add a default, configurable
aria-labelto the Subscription Bell launcher button so it has an accessible name and no longer fails accessibility audits.Details
The bell launcher is an icon-only
<button>with no text content and noaria-label, so automated accessibility audits (Lighthouse/PageSpeed, axe) report "Buttons must have discernible text" on every customer site that enables the bell. Screen-reader users and agentic browsers relying on the accessibility tree cannot identify the control. Reported by an EU public-sector customer subject to the EU Web Accessibility Directive (WCAG 2.1 AA).Changes:
aria-label="Manage notifications"by default when the bell is created.notifyButton: { text: { 'launcher.label': '...' } }(new optionalBellTextkey).aria-hidden="true"so it doesn't leak into the accessibility tree.Message._getTipForStategained a?? ''fallback because the new optional key widened the text lookup type.page.es6.jssize limit was bumped 42.65 kB → 42.7 kB; the limit only had ~10 B of headroom onmainand this change adds ~50 B.Other icon-only controls were audited per the ticket: the dialog's subscribe/unsubscribe buttons already have visible text and the dialog is a light-dismiss popover with no close button, so the launcher was the only control needing a name.
Systems Affected
Validation
Tests
Info
Bell.test.tscover the default label, a custom localized label via text config, and the SVG being hidden from the accessibility tree.vp check, full test suite (526 tests), andbuild:prod(size-limit + bundle API validation) all pass.Checklist
Programming Checklist
Interfaces:
Functions:
Typescript:
Other:
elem of arraysyntax. PreferforEachor usemapcontextif possible. Instead, we can pass it to function/constructor so that we don't callOneSignal.contextScreenshots
Info
Not needed — no visual change; the only DOM difference is the
aria-labelattribute andaria-hiddenon the SVG.Checklist
Related Tickets
SDK-4897