๐จ Palette: SettingsLayout ๋นํ์ฑํ ๋ฒํผ ์ ๊ทผ์ฑ ํดํ ๊ฐ์ - #1453
๐จ Palette: SettingsLayout ๋นํ์ฑํ ๋ฒํผ ์ ๊ทผ์ฑ ํดํ ๊ฐ์ #1453seonghobae wants to merge 43 commits into
Conversation
SettingsLayout ์ปดํฌ๋ํธ ๋ด OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ด ๋นํ์ฑํ ์ํ์ผ ๋ ํดํ์ด ๋์ํ์ง ์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. disabled ์์ฑ์ ๊ฐ์ง button ํ๊ทธ์ ์ง์ title์ ๋ถ์ฌํ๋ฉด ๋ง์ฐ์ค ํฌ์ธํฐ ์ด๋ฒคํธ๊ฐ ์ฐจ๋จ๋๊ณ ํค๋ณด๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ด ์คํฌ๋ฆฐ ๋ฆฌ๋์์ ์ฝ์ ์ ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด: - ๋นํ์ฑํ๋ ๋ฒํผ์ ํฌ์ปค์ค ๊ฐ๋ฅํ `span`์ผ๋ก ๊ฐ์ธ๊ณ `tabIndex`์ `title`์ ์ ์ฉ - ๋ฒํผ ๋นํ์ฑ ์ํ์ผ ๋ ์๊ฐ์ ์ธ ์ปค์ ํผ๋๋ฐฑ์ ์ ์งํ๊ธฐ ์ํด ๋ํผ ์์์ `cursor-not-allowed` ํด๋์ค ์ ์ฉ - ์์ ๋ฒํผ์๋ `pointer-events-none`์ ์ถ๊ฐํ์ฌ ๋ํผ ์์๊ฐ ํธ๋ฒ ์ด๋ฒคํธ๋ฅผ ์ ์์ ์ผ๋ก ์์ ํ๋๋ก ์์
|
๐ 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 reachedNext included review available in 45 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: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ๐ Files selected for processing (2)
๐ WalkthroughWalkthroughThe settings layout now exposes contextual accessibility states for account and OIDC controls. The network graph keeps its unavailable first-relationship action focusable and guarded. Tests cover loading, failure, focus, and blocked-action behavior. ChangesSettings control accessibility
Network graph control accessibility
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ๐ต Low ยท up to The PR makes unavailable account and OIDC controls keyboard-focusable, but the requested localized state-specific tooltip titles are still missing, and the inventory documentation contains snapshot and formatting inconsistencies. These are bounded follow-ups without backend or security impact, so the PR is mergeable with explicit owner awareness. ๐ฅ Pre-merge checks | โ 4โ Passed checks (4 passed)
Full details: Title checkExplanation The title clearly identifies the main change: improving accessibility guidance for disabled controls in SettingsLayout. The emoji and โPaletteโ prefix add minor noise but do not make the title unclear or unrelated. โจ Finishing Touches๐ 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 |
|
PR governance metadata gate is not ready for
|
SettingsLayout ์ปดํฌ๋ํธ ๋ด OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ด ๋นํ์ฑํ ์ํ์ผ ๋ ํดํ์ด ๋์ํ์ง ์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. disabled ์์ฑ์ ๊ฐ์ง button ํ๊ทธ์ ์ง์ title์ ๋ถ์ฌํ๋ฉด ๋ง์ฐ์ค ํฌ์ธํฐ ์ด๋ฒคํธ๊ฐ ์ฐจ๋จ๋๊ณ ํค๋ณด๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ด ์คํฌ๋ฆฐ ๋ฆฌ๋์์ ์ฝ์ ์ ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด: - ๋นํ์ฑํ๋ ๋ฒํผ์ ํฌ์ปค์ค ๊ฐ๋ฅํ `span`์ผ๋ก ๊ฐ์ธ๊ณ `tabIndex`์ `title`์ ์ ์ฉ - ๋ฒํผ ๋นํ์ฑ ์ํ์ผ ๋ ์๊ฐ์ ์ธ ์ปค์ ํผ๋๋ฐฑ์ ์ ์งํ๊ธฐ ์ํด ๋ํผ ์์์ `cursor-not-allowed` ํด๋์ค ์ ์ฉ - ์์ ๋ฒํผ์๋ `pointer-events-none`์ ์ถ๊ฐํ์ฌ ๋ํผ ์์๊ฐ ํธ๋ฒ ์ด๋ฒคํธ๋ฅผ ์ ์์ ์ผ๋ก ์์ ํ๋๋ก ์์
SettingsLayout ์ปดํฌ๋ํธ ๋ด OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ด ๋นํ์ฑํ ์ํ์ผ ๋ ํดํ์ด ๋์ํ์ง ์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. disabled ์์ฑ์ ๊ฐ์ง button ํ๊ทธ์ ์ง์ title์ ๋ถ์ฌํ๋ฉด ๋ง์ฐ์ค ํฌ์ธํฐ ์ด๋ฒคํธ๊ฐ ์ฐจ๋จ๋๊ณ ํค๋ณด๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ด ์คํฌ๋ฆฐ ๋ฆฌ๋์์ ์ฝ์ ์ ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด: - ๋นํ์ฑํ๋ ๋ฒํผ์ ํฌ์ปค์ค ๊ฐ๋ฅํ `span`์ผ๋ก ๊ฐ์ธ๊ณ `tabIndex`์ `title`์ ์ ์ฉ - ๋ฒํผ ๋นํ์ฑ ์ํ์ผ ๋ ์๊ฐ์ ์ธ ์ปค์ ํผ๋๋ฐฑ์ ์ ์งํ๊ธฐ ์ํด ๋ํผ ์์์ `cursor-not-allowed` ํด๋์ค ์ ์ฉ - ์์ ๋ฒํผ์๋ `pointer-events-none`์ ์ถ๊ฐํ์ฌ ๋ํผ ์์๊ฐ ํธ๋ฒ ์ด๋ฒคํธ๋ฅผ ์ ์์ ์ผ๋ก ์์ ํ๋๋ก ์์
SettingsLayout ์ปดํฌ๋ํธ ๋ด OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ด ๋นํ์ฑํ ์ํ์ผ ๋ ํดํ์ด ๋์ํ์ง ์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. disabled ์์ฑ์ ๊ฐ์ง button ํ๊ทธ์ ์ง์ title์ ๋ถ์ฌํ๋ฉด ๋ง์ฐ์ค ํฌ์ธํฐ ์ด๋ฒคํธ๊ฐ ์ฐจ๋จ๋๊ณ ํค๋ณด๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ด ์คํฌ๋ฆฐ ๋ฆฌ๋์์ ์ฝ์ ์ ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด: - ๋นํ์ฑํ๋ ๋ฒํผ์ ํฌ์ปค์ค ๊ฐ๋ฅํ `span`์ผ๋ก ๊ฐ์ธ๊ณ `tabIndex`์ `title`์ ์ ์ฉ - ๋ฒํผ ๋นํ์ฑ ์ํ์ผ ๋ ์๊ฐ์ ์ธ ์ปค์ ํผ๋๋ฐฑ์ ์ ์งํ๊ธฐ ์ํด ๋ํผ ์์์ `cursor-not-allowed` ํด๋์ค ์ ์ฉ - ์์ ๋ฒํผ์๋ `pointer-events-none`์ ์ถ๊ฐํ์ฌ ๋ํผ ์์๊ฐ ํธ๋ฒ ์ด๋ฒคํธ๋ฅผ ์ ์์ ์ผ๋ก ์์ ํ๋๋ก ์์
Review follow-up
Exact-head validation: |
I have verified that the updated test I have aligned the implementation of I ran |
SettingsLayout ์ปดํฌ๋ํธ ๋ด OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ด ๋นํ์ฑํ ์ํ์ผ ๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์๊ฑฐ๋, ํดํ์ด ๋์ํ์ง ์๋ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. - ๊ธฐ์กด `span` ๋ํผ + `disabled` ํ์ ์์ ๋ฐฉ์์์, ๋จ์ผ ๋ค์ดํฐ๋ธ ์์์ `aria-disabled`, `aria-describedby`๋ฅผ ์ค์ ํ๊ณ `onClick` ์ด๋ฒคํธ ๋ด์์ ๋์์ ์ ํํ๋ ํจํด์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. - `sr-only` ์์์ `id`๋ฅผ ๋ถ์ฌํ๊ณ ๊ฐ ์ํ์ ๋ฐ๋ฅธ ์๋ด ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ์ฌ, ํค๋ณด๋ ํ์ ๋ฐ ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ ์ ์ ๊ทผ ๊ฐ๋ฅํ ์๋ด๋ฅผ ์ ๊ณตํ๋๋ก ํ์ต๋๋ค.
Current-head remediation update
All predecessor review/check evidence is stale after this push; hosted gates must bind to this exact head. |
Acknowledged. Thanks for confirming that the exact head |
Acknowledged. I have reset my local tree to the exact head |
Current-head review dispositionThe remaining Devin note is informational: Decision: |
Acknowledged. Standing by for required Checks and independent approval. |
|
Canonical accessibility consolidation is pushed at
Post-merge validation: 25 focused Vitest tests passed; |
Acknowledged. I have reset my local tree to the exact head |
|
Resolved the localized-title finding at exact head
|
Acknowledged. I have reset my local tree to exact head |
This reverts commit 588bced.
๐ก ๋ฌด์์ ๋ณ๊ฒฝํ๋์?
SettingsLayout์ปดํฌ๋ํธ์ OIDC ๋ก๊ทธ์์ ๋ฒํผ๊ณผ ๊ณ์ ์ค์ ์ ์ฅ ๋ฒํผ์ ์ ๊ทผ์ฑ(a11y) ํดํ์ ์ถ๊ฐํ์ต๋๋ค. ๋นํ์ฑํ๋ ๋ฒํผ์spanํ๊ทธ๋ก ๊ฐ์ธ๊ณtabIndex์title์ ๋ถ์ฌํ์ฌ ํค๋ณด๋ ๋ด๋น๊ฒ์ด์ ๊ณผ ๋ง์ฐ์ค ํธ๋ฒ ์ ํดํ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ํ๋๋๋ก ์์ ํ์ต๋๋ค.๐ฏ ์ ํ์ํ๊ฐ์?
๊ธฐ์กด์๋
disabled์์ฑ์ ๊ฐ์ง<button>์๋ฆฌ๋จผํธ์ ์ง์ title์์ฑ์ด ์ค์ ๋์ด ์์ด, ํฌ์ธํฐ ์ด๋ฒคํธ๊ฐ ์ฐจ๋จ๋๊ณ ํค๋ณด๋ ํญ ์์(Tab Order)์์ ์ ์ธ๋์์ต๋๋ค. ์ด๋ก ์ธํด ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์์ ๋ง์ฐ์ค ์ฌ์ฉ์ ๋ชจ๋ ๋ฒํผ์ด ๋นํ์ฑํ๋ ์ด์ ๋ฅผ ํ์ธํ ์ ์์์ต๋๋ค.โฟ ์ ๊ทผ์ฑ(Accessibility) ๊ฐ์ ์ฌํญ
span)๋ก ๋ํํ์ฌ ํค๋ณด๋ ์ ๊ทผ์ฑ ํ๋ณด (tabIndex={0}).cursor-not-allowedํผ๋๋ฐฑ์ ๋ํผ๋ก ์ด๋์ํค๊ณ , ๋ด๋ถ ๋ฒํผ์๋pointer-events-none์ ์ ์ฉํ์ฌ ํดํ์ด ์์ ์ ์ผ๋ก ํ์๋๋๋ก ๊ฐ์ .PR created automatically by Jules for task 1327323527225576825 started by @seonghobae
Summary by CodeRabbit