Fix code-language-switch a11y lighthouse audit #1247
Merged
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.
Context
The code language switch was triggering the following audit issue: https://dequeuniversity.com/rules/axe/4.7/label-content-name-mismatch
Basically it wanted the
aria-label
to containJS TS
within it. This didn't make much sense to me, so I looked up the switch accessibility pattern https://www.w3.org/WAI/ARIA/apg/patterns/switch/Fix
Use the same accessibility pattern as https://www.w3.org/WAI/ARIA/apg/patterns/switch/examples/switch-button/ and hide the inner text content. This prevents redundant announcement of state by screen readers.
We can hide the
JS
andTS
text from the accessibility tree as our switch already provides full information viaaria-label
, andaria-checked
. This then passes the audit because we no longer need to include the stringJS TS
in the aria label.Testing
Tested by looking at the accessibility tree developer console. The switch has the label
Toggle TypeScript
, and checked state oftrue
orfalse
.Lighthouse audit is now passing for this component.