a11y: search button accessible name does not contain its visible label (WCAG 2.5.3)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
- #1631 by @hivecommons-hive — closed without merging
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 39/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript
- Domain
- accessibility, frontend
Research direction
Read the navbar search rendering in docusaurus-plugin-search-local and the site's existing Footer swizzle under src/theme/. Compare the button's visible text and aria-label, then choose an upstream plugin fix or a local SearchBar swizzle. When the label includes the visible text, remove the NAVBAR_VIOLATIONS baseline entry from tests/e2e/accessibility.spec.js and confirm its retirement checks pass.
Written by the indexing model from the issue text.
Description
Finding
docusaurus-plugin-search-local (2.1.2) renders the navbar search button as:
<button class="DocSearch DocSearch-Button" aria-label="Search (Control+k)" aria-keyshortcuts="Control+k">
<span class="DocSearch-Button-Placeholder">Search</span>
<span class="DocSearch-Button-Keys"><span><svg .../></span><span>K</span></span>
</button>
Visible text is "Search K" (the Control key is an icon); the accessible name is "Search (Control+k)". The accessible name does not contain the visible label, which fails WCAG 2.5.3 Label in Name. axe-core reports it as label-content-name-mismatch (serious).
Why it surfaced now
axe-core 4.14.0 removed the experimental tag from label-content-name-mismatch, so it runs under wcag21a for the first time. Dependabot's bump in #1606 therefore failed tests/e2e/accessibility.spec.js on all 20 routes and both profile-dialog states. The button was non-conformant before; the scanner just could not see it.
Current state
#1606 carries the bump plus a NAVBAR_VIOLATIONS baseline entry in KNOWN_VIOLATIONS / KNOWN_STATE_VIOLATIONS. The spec's retirement tests fail as soon as the rule stops firing, so the baseline cannot outlive the fix.
Fix options
The plugin's SearchBar renders SearchButton without passing translations, so neither buttonText nor buttonAriaLabel can be changed from docusaurus.config.js. Realistic paths:
- Upstream fix in docusaurus-plugin-search-local (make the aria-label contain the visible text, e.g.
Searchwith the shortcut carried only byaria-keyshortcuts), then bump. - Swizzle the plugin's
SearchBartheme component intosrc/theme/(the site already wrapsFooter) and render the button with a conforming label. - Rendering the Control key as text rather than an icon does not help: "Search Ctrl K" is still not a substring of "Search (Control+k)".
When the fix lands, delete the NAVBAR_VIOLATIONS entry in tests/e2e/accessibility.spec.js; the retirement tests will insist on it.
Scope note for the hive
The baseline is the designed mechanism in the spec and is already in place. The remaining work is a production change (option 1 or 2), not a test change.
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 3
- Avg merge
- 7h 15m
- Merged PRs (30d)
- 623
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cncf/endusers
-
[sec-check] collect-metrics.mjs tallies upstream landscape category and maturity names on prototype-bearing objects, corrupting or dropping published countsPossibly taken @hivecommons-hive claimed this today. Openagent/sec-check security stage/040-covered-by-pr
Difficulty 1/5 Under an hour Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
[sec-check] ip-address 10.7.2 carries ReDoS advisory GHSA-rxp7-6hxx-x8q5; patched 10.7.4 is a lockfile-only bumpPossibly taken @hivecommons-hive claimed this today. Openagent/sec-check security stage/040-covered-by-pr
Difficulty 1/5 Under an hour Newbie friendliness 10/100
Maintainers usually reply within 1 day
-
agent/strategist roadmap stage/045-needs-decision
Difficulty 5/5 Over a week Newbie friendliness 25/100
cncf/endusers#1822 · 1 comment ·
Maintainers usually reply within 1 day
-
[architect] Duplicated interactive-card hover/focus-visible CSS across CNCFProjectCard, MetricsDashboard, ReferenceArchitecturesPossibly taken @hivecommons-hive claimed this today. Openagent/architect architecture stage/040-covered-by-pr tech-debt
Difficulty 3/5 1-2 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
[quality] Mutation testing discards the coverage of every script tests/helpers.mjs spawnsPossibly taken @hivecommons-hive claimed this today. Openagent/quality stage/040-covered-by-pr testing
Difficulty 4/5 3-5 days Newbie friendliness 25/100
cncf/endusers#1817 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
lyswhut/lx-music-desktop#3026 ·
-
good first issue server
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
openstreetmap/iD#13054 ·
Maintainers usually reply within 1 day
-
community marketing priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Maintainers usually reply within 1 day
-
Read a vector index's quantization back on Neo4j 2026.10, which reports vector.quantization.typeOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
liberation-data/drivine#231 ·
Maintainers usually reply within 1 day