a11y(export): evaluate focusable disabled-state discovery - #1090
a11y(export): evaluate focusable disabled-state discovery#1090seonghobae wants to merge 5 commits into
Conversation
비활성화된 "접근 관리" 버튼에 aria-describedby로 안내 텍스트가 연결되어 있었으나, native disabled 속성으로 인해 키보드 포커스를 받지 못해 스크린 리더 사용자가 해당 안내를 인지할 수 없는 문제가 있었습니다.
native disabled를 aria-disabled={true}로 변경하고, onClick에서 이벤트를 차단하여 키보드 포커스가 가능하도록 개선했습니다. CSS 및 테스트 코드도 이에 맞게 수정했습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueNo actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughExportModal의 접근 관리 버튼이 네이티브 Changes접근성 비활성 버튼 처리
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The access-management button remains keyboard-focusable so its guidance can be discovered while retaining disabled appearance and preventing activation. No actionable current-head merge risk remains. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
비활성화된 "접근 관리" 버튼에 aria-describedby로 안내 텍스트가 연결되어 있었으나, native disabled 속성으로 인해 키보드 포커스를 받지 못해 스크린 리더 사용자가 해당 안내를 인지할 수 없는 문제가 있었습니다.
native disabled를 aria-disabled={true}로 변경하고, onClick에서 이벤트를 차단하여 키보드 포커스가 가능하도록 개선했습니다. CSS 및 테스트 코드도 이에 맞게 수정했습니다.
비활성화된 "접근 관리" 버튼에 aria-describedby로 안내 텍스트가 연결되어 있었으나, native disabled 속성으로 인해 키보드 포커스를 받지 못해 스크린 리더 사용자가 해당 안내를 인지할 수 없는 문제가 있었습니다.
native disabled를 aria-disabled={true}로 변경하고, onClick에서 이벤트를 차단하여 키보드 포커스가 가능하도록 개선했습니다. CSS 및 테스트 코드도 이에 맞게 수정했습니다.
비활성화된 "접근 관리" 버튼에 aria-describedby로 안내 텍스트가 연결되어 있었으나, native disabled 속성으로 인해 키보드 포커스를 받지 못해 스크린 리더 사용자가 해당 안내를 인지할 수 없는 문제가 있었습니다.
native disabled를 aria-disabled={true}로 변경하고, onClick에서 이벤트를 차단하여 키보드 포커스가 가능하도록 개선했습니다. CSS 및 테스트 코드도 이에 맞게 수정했습니다.
Current exact authority
main@8dc746920c12988f082e914879d95e13c96935355833cb42d1201dac01380e42ed901c7cff2b985dValid delta
ExportModalreplaces nativedisabledon the explanatory “접근 관리” control witharia-disabled={true}, keepsaria-describedby="share-export-access-hint", and preserves a disabled visual treatment. Because the button hastype="button"and no enabled action, its local click boundary currently prevents default activation while leaving the control focusable for discoverability.The generated
.jules/palette.mdrule that generalized this choice to every disabled control was removed in normal descendant5833cb42...; that file is byte-identical to protected authority. Focusability of disabled controls is context-dependent, not a repository-wide default.Current RED
The test calls
.focus()directly. That proves the DOM node can receive programmatic focus, but it does not prove normal Tab navigation reaches the button in modal order, thataria-describedbyresolves to the intended helper text in the browser accessibility tree, or that Enter/Space activation remains inert.WAI-ARIA/APG permits a focusable
aria-disabled="true"control when disabled-state discoverability is important, but it does not require every disabled control to remain in the tab sequence. This component therefore needs product-context evidence rather than a blanket rule.Required GREEN on one unchanged head:
.focus();Delivery Gate
의도성 PASS / 기능 완전성 PARTIAL / 콘텐츠 적합성 PASS / 복원력 FAIL/PENDING / 증거성 FAIL/PENDING / 고유성 N/A.
Fresh exact-head CI, Security/SAST/CodeQL, browser E2E/accessibility-tree evidence, review threads, and qualifying current-head independent review are required before Ready/normal merge. No accessibility-completion claim, self-approval, gate weakening, source-neutral retrigger, generated doctrine, force push, or destructive rebase.