a11y(frontend): complete color radio-group keyboard contract - #730
a11y(frontend): complete color radio-group keyboard contract#730seonghobae wants to merge 12 commits into
Conversation
|
👋 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. |
|
Warning Review limit reached
Next review available in: 3 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthrough색상 선택 컨트롤이 Changes색상 선택 접근성
프론트엔드 버전 조정
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
frontend/src/components/modals/GroupModal.tsx (1)
78-84: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win라디오 그룹의 키보드 동작을 구현하세요.
현재 각
button이 기본 Tab 순서에 포함되지만, 화살표 키 처리와tabIndex관리가 없습니다. 선택된 항목에만tabIndex={0}을 설정하고 화살표 키로 선택과 포커스를 함께 이동하세요. 또는 네이티브<input type="radio">를 사용하세요. 관련 키보드 동작을 테스트로 추가하세요.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/src/components/modals/GroupModal.tsx` around lines 78 - 84, Update the color swatch radio controls in GroupModal so only the selected color has tabIndex={0} and all others have tabIndex={-1}; add keyboard handling for ArrowUp/ArrowDown/ArrowLeft/ArrowRight to select and focus the corresponding swatch, with appropriate wrapping, while preserving existing click behavior. Add tests covering roving tabIndex and arrow-key selection/focus behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@frontend/src/components/modals/GroupModal.tsx`:
- Around line 78-84: Update the color swatch radio controls in GroupModal so
only the selected color has tabIndex={0} and all others have tabIndex={-1}; add
keyboard handling for ArrowUp/ArrowDown/ArrowLeft/ArrowRight to select and focus
the corresponding swatch, with appropriate wrapping, while preserving existing
click behavior. Add tests covering roving tabIndex and arrow-key selection/focus
behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 441e0e0e-4ced-417c-a2c0-3e4d7656efca
⛔ Files ignored due to path filters (2)
frontend/package-lock.jsonis excluded by!**/package-lock.jsonfrontend/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (5)
.Jules/palette.mdfrontend/package.jsonfrontend/src/components/modals/GroupModal.tsxfrontend/src/components/modals/ModalCoverage.test.tsxfrontend/src/styles.css
|
@opencode-agent Please review exact current head |
|
@cwl-noema-review Please independently review exact current head |
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
|
@opencode-agent Please review exact current head |
|
@cwl-noema-review Please independently review exact current head |
Ignored as this is addressed to other review bots. |
Ignored as this is addressed to other review bots. |
Ignored as this is addressed to other review bots. |
What
Aligns the Business Group color selector with the WAI-ARIA radio-group interaction contract.
role="radiogroup"container;role="radio"witharia-checked;tabIndex;Regression coverage
Focused tests verify checked state, a single tab stop, forward and backward arrow navigation, wrapping at both ends, unrelated-key handling, and a safe first-radio fallback when an unknown color is supplied.
Evidence
docs/doctoring/accessibility-radio-group.mdrecords the W3C WAI-ARIA Authoring Practices evidence and APA 7th edition references used for the interaction design.Scope
The branch contains only the color-selector component and styles, focused component regression coverage, and the accessibility evidence record. It makes no dependency, package-manager, database, API, or runtime-service contract change.
Verification contract
Current-head frontend typecheck, complete 100%-coverage suite, production build, Security Scan, Semgrep, and independent current-head approval must pass before merge.