a11y(frontend): keep unavailable export actions discoverable - #997
a11y(frontend): keep unavailable export actions discoverable#997seonghobae wants to merge 10 commits into
Conversation
|
Warning Review limit reachedNext included review available in 33 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Please perform a bounded independent review of exact head |
Buyer-visible outcome
Temporarily unavailable export and access-management actions remain discoverable to keyboard and screen-reader users. Each unavailable action stays in sequential focus order, exposes
aria-disabled="true", references its visible prerequisite througharia-describedby, remains visually distinguishable, and is inert for pointer, Enter, and Space activation.Clean replacement scope
This PR was reconstructed directly from protected
main@8dc746920c12988f082e914879d95e13c9693535. The current exact head is68896adafd73a9299f10e99a8c8bc512fcdfae3c.The bounded diff contains only the intended accessibility surface, focused evidence, and required changelogs:
CHANGELOG.md;docs/doctoring/discoverable-unavailable-export-actions.md;frontend/CHANGELOG.md;frontend/src/accessibility.css;frontend/src/components/modals/ExportModal.test.tsx;frontend/src/components/modals/ExportModal.tsx;frontend/src/main.tsx.It contains no dependency or lockfile change, package-manager migration, App/search-polling change, deleted existing regression evidence, or agent-memory edit.
Executable contract
aria-disabledand execute exactly once per activation;aria-disabledbuttons in the Export Modal retain the existing visual disabled tokens without disabling pointer receipt or keyboard focus;Review repair
Fresh Devin review found two valid gaps on the initial clean head: loss of the native
:disabledvisual style after adoptingaria-disabled, and omission offrontend/CHANGELOG.md. Both are fixed. A later informational review correctly noted that a global selector could style future or library-rendered buttons; the selector is now scoped to.exportModal. Another informational note confirmed the callback gate already blocks pointer, Enter, and Space, so no unnecessary handler change was made. The style is loaded through the production entry point, while focused component tests remain authoritative for focusability, descriptive association, and callback suppression. No dependency or suppression was added.Traceability
The doctoring note records WAI-ARIA 1.2 as the normative baseline, tracks WAI-ARIA 1.3 only as a working draft, and bounds the cited user study to the broader discoverability rationale rather than claiming it directly validates this implementation.
Verification and merge boundary
Only exact-head checks on
68896adafd73a9299f10e99a8c8bc512fcdfae3care authoritative. Do not merge until every live required context is terminal-success, all valid review threads are resolved, and a qualifying independent non-author approval exists. No administrative bypass or predecessor evidence transfer is permitted.Supersedes the useful intent of #698, #991, #985, and #970 without inheriting their branch pollution or duplicate history.