fix(a11y): name-role-value compliance, partial (WCAG 4.1.2)#3434
Open
bilal-karim wants to merge 1 commit into
Open
fix(a11y): name-role-value compliance, partial (WCAG 4.1.2)#3434bilal-karim wants to merge 1 commit into
bilal-karim wants to merge 1 commit into
Conversation
Five fixes under SC 4.1.2 Name, Role, Value: - Accordion content panel: remove role="textbox". The disclosure panel is static content, not an editable text input; AT announced "edit text" on every Accordion consumer. - Accordion + AccordionLight: move slot="action" out of the disclosure <button> into a sibling element. Previously consumers placing focusable content in the action slot produced <button><button>... nested-interactive HTML. - CopyButton: ship translated default labels via i18n. Empty string defaults in CodeBlock previously propagated to an Icon that hid itself, producing unlabeled icon-only buttons across ~11 CodeBlock instances. - nav-section: filter out hidden nav items. The NavLinkItem.hidden flag was declared on the type and set at source but never consulted at render time, so Standalone Activities / Nexus links rendered as focusable for AT users on servers that cannot serve them. - Workflow family tree: add aria-label to the two SVG <g role="button"> widgets so screen readers announce node identity instead of "button". Deferred to follow-up PRs (audit blockers): - 4.1.2-button-anchor-empty: audit recommends a two-PR sequenced rollout (primitive change + consumer migration). - 4.1.2-codemirror-no-name: ~5 CodeBlock consumer surfaces need design input on label content. - relationships nested-interactive restructure: site B (button wraps Link) and site A's nested <a> extraction are substantial SVG/HTML restructures separate from the labeling fix above. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
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.
Summary
Five 4.1.2 fixes batched per SC. Three audit issues deferred for reasons explained below.
Applied
role=\"textbox\". Static disclosure panel was being announced as an editable text input on every Accordion consumer (NVDA "edit text", JAWS forms-mode switch). One-line deletion. (audit-output/issues/4.1.2-accordion-content-role-textbox.md)slot=\"action\"out of the disclosure<button>into a sibling element. Previously a<button><button>...nested-interactive output if a consumer placed focusable content there. The audit's recommended Part 2 runtime check is deferred. (audit-output/issues/4.1.2-accordion-action-slot-nested-interactive.md)copyIconTitle/copySuccessIconTitlenow default to i18n strings instead of empty. Fixes ~11 CodeBlock-via-default instances that rendered unlabeled icon-only buttons (because empty title → Icon self-hides → button name = ""). (audit-output/issues/4.1.2-copy-button-no-name.md)hiddenfilter:nav-section.sveltenow filters items wherehidden=true. Standalone Activities (server <1.30.0) and Nexus (nosystemInfo.capabilities.nexus) no longer render as focusable links for AT users on incapable servers. (audit-output/issues/4.1.2-nav-hidden-flag-ignored.md)aria-label=\"Workflow {id}: {status}\"to both<g role=\"button\">widgets so AT announces node identity. (Partial fix foraudit-output/issues/4.1.2-relationships-nested-interactive.md— Defect 1 only.)Deferred (need separate PRs)
4.1.2-button-anchor-empty— audit recommends a two-PR sequenced rollout (primitive change + consumer migration). Out of scope for this batch.4.1.2-codemirror-no-name— ~5 CodeBlock consumer surfaces need design input on label content (Pending Nexus Operation panels, Standalone Activity Details, Update Confirmation Modal, Archival code blocks, JSON Navigator).<a>elements out of the root<g role=\"button\">and extracting the nested<Link>fromworkflow-family-node-description.svelte's outer<button>are substantial SVG/HTML restructures that should ship in their own PR with careful visual review.Test plan
<Accordion slot=\"action\">, it is reachable by Tab as a sibling of the disclosure trigger, not as a nested control.pnpm exec playwright test tests/accessibility/— axe rulesbutton-name,aria-allowed-attr,nested-interactive,svg-img-altshould not flag the touched surfaces.🤖 Generated with Claude Code