Repository navigation
๐จ Palette: ๋์๋ณด๋ ํ์ผ ์ ๋ก๋ ํ๋ก์ ๋ฒํผ ๋์ ๋ฐ ์ ๊ทผ์ฑ ๊ฐ์ - #1401
seonghobae wants to merge 3 commits into
Conversation
๋์๋ณด๋ ํค๋์ ๋ค์ดํฐ๋ธ ํ์ผ ์ ๋ ฅ(input[type="file"]) ์์๋ฅผ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์ ์์ ํ ์จ๊ธฐ๊ณ (`aria-hidden="true"`, `class="sr-only"`, `tabindex="-1"`) ์ด๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์๊ฐ์ ํ๋ก์ ๋ฒํผ์ผ๋ก ๊ต์ฒดํ์ฌ ์ผ๊ด๋ ๋ฃฉ ์ค ํ๊ณผ ์ ๊ทผ์ฑ์ ๋ณด์ฅํฉ๋๋ค. - ์์์ `class="sr-only"` ๋ฐ `aria-hidden="true"` ์์ฑ์ ์ถ๊ฐํ์ฌ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฑ์์ ์๋ชป๋/์ค๋ณต๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ง ์๋๋ก ๊ฐ์ - `primary-action` ๋์์ธ ํ ํฐ ํด๋์ค๋ฅผ ํ์ฉํ๋ ๋ฒํผ ์์ฑ ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ฆญ ํ๋ก์ ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ ์ถ๊ฐ - ๊ด๋ จ๋ ์ ๊ทผ์ฑ ๋ณด์ฅ UI ์ปจํธ๋ํธ ํ ์คํธ ์ถ๊ฐ ๋ฐ ํจ์ค ํ์ธ - `.jules/palette.md` ์ ๊ทผ์ฑ ๊ฐ์ ์ธ์ฌ์ดํธ ํ๊ตญ์ด ๊ธฐ๋ก ์๋ฃ
|
๐ 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 reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 19 minutes. View limit detailsLimit details: Youโve used the included review currently available. Review configuration: โ๏ธ Run configuration
๐ Files selected for processing (3)
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 |
๋์๋ณด๋ ํค๋์ ๋ค์ดํฐ๋ธ ํ์ผ ์ ๋ ฅ(input[type="file"]) ์์๋ฅผ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์ ์์ ํ ์จ๊ธฐ๊ณ (`aria-hidden="true"`, `class="sr-only"`, `tabindex="-1"`) ์ด๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์๊ฐ์ ํ๋ก์ ๋ฒํผ์ผ๋ก ๊ต์ฒดํ์ฌ ์ผ๊ด๋ ๋ฃฉ ์ค ํ๊ณผ ์ ๊ทผ์ฑ์ ๋ณด์ฅํฉ๋๋ค. - ์์์ `class="sr-only"` ๋ฐ `aria-hidden="true"` ์์ฑ์ ์ถ๊ฐํ์ฌ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฑ์์ ์๋ชป๋/์ค๋ณต๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ง ์๋๋ก ๊ฐ์ - `primary-action` ๋์์ธ ํ ํฐ ํด๋์ค๋ฅผ ํ์ฉํ๋ ๋ฒํผ ์์ฑ ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ฆญ ํ๋ก์ ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ ์ถ๊ฐ - ๊ด๋ จ๋ ์ ๊ทผ์ฑ ๋ณด์ฅ UI ์ปจํธ๋ํธ ํ ์คํธ ์ถ๊ฐ ๋ฐ ํจ์ค ํ์ธ - `.jules/palette.md` ์ ๊ทผ์ฑ ๊ฐ์ ์ธ์ฌ์ดํธ ํ๊ตญ์ด ๊ธฐ๋ก ์๋ฃ
๋์๋ณด๋ ํค๋์ ๋ค์ดํฐ๋ธ ํ์ผ ์ ๋ ฅ(input[type="file"]) ์์๋ฅผ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์ ์์ ํ ์จ๊ธฐ๊ณ (`aria-hidden="true"`, `class="sr-only"`, `tabindex="-1"`) ์ด๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์๊ฐ์ ํ๋ก์ ๋ฒํผ์ผ๋ก ๊ต์ฒดํ์ฌ ์ผ๊ด๋ ๋ฃฉ ์ค ํ๊ณผ ์ ๊ทผ์ฑ์ ๋ณด์ฅํฉ๋๋ค. - ์์์ `class="sr-only"` ๋ฐ `aria-hidden="true"` ์์ฑ์ ์ถ๊ฐํ์ฌ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฑ์์ ์๋ชป๋/์ค๋ณต๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ง ์๋๋ก ๊ฐ์ - `primary-action` ๋์์ธ ํ ํฐ ํด๋์ค๋ฅผ ํ์ฉํ๋ ๋ฒํผ ์์ฑ ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ฆญ ํ๋ก์ ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ ์ถ๊ฐ - ๊ด๋ จ๋ ์ ๊ทผ์ฑ ๋ณด์ฅ UI ์ปจํธ๋ํธ ํ ์คํธ ์ถ๊ฐ ๋ฐ ํจ์ค ํ์ธ - `.jules/palette.md` ์ ๊ทผ์ฑ ๊ฐ์ ์ธ์ฌ์ดํธ ํ๊ตญ์ด ๊ธฐ๋ก ์๋ฃ
Complete successor carryover into #1367Exact predecessor: Canonical successor #1367 remains open/Draft at exact #1367's regression is strictly stronger than source-text search: it parses attributes on the exact input/button elements, extracts the production IIFE, executes it under Node, and proves one native input click. Fresh exact-head verification is 20/20 passed, This retirement transfers no Checks, approval, protected integration, or release state. #1367 still has 0 qualifying current-head approvals and its six hosted workflows failed before step materialization. No branch deletion, Force Push, destructive rebase, gate suppression, merge, or release is performed. This branch's test only searches whole-document strings, and its journal entry is incorrectly dated |
๐ก What: ๋์๋ณด๋ ํค๋์ ๋ค์ดํฐ๋ธ
<input type="file">์์๋ฅผ ํ๋ฉด ๋ฐ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์ ๋ณด์ด์ง ์๊ฒ ์จ๊ธฐ๊ณ (sr-only,aria-hidden="true",tabindex="-1"), ์ด ๋์์ ๋๋ฆฌํ๋ ํ๋ก์ ๋ฒํผ ์๋ฆฌ๋จผํธ(<button class="primary-action">)๋ฅผ ์ถ๊ฐํ์ต๋๋ค.๐ฏ Why: ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ
<input type="file">์์๋ ์คํ์ผ๋ง ์ ์ฝ์ด ๋ง์ UI๊ฐ ํํธํ๋๊ธฐ ์ฌ์ฐ๋ฉฐ, ์คํฌ๋ฆฐ ๋ฆฌ๋์ ํค๋ณด๋ ๋ด๋น๊ฒ์ด์ ์์๋ ์ฌ์ฉ์ ๊ฒฝํ์ด ๊น๋ํ์ง ์์ ๋ฌธ์ ์ ์ด ์์์ต๋๋ค.๐ธ Before/After: ์๊ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ค์ดํฐ๋ธ ํ์ผ ์ ํ ๋ฒํผ์ด ์ฌ๋ผ์ง๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ธ ํ ํฐ ๊ท์น์ ๋ง๋
primary-actionํ๋์ ์ ๋ก๋ ๋ฒํผ์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.โฟ Accessibility: ๊ธฐ์กด input ์์๋ฅผ
aria-hidden="true"๋ก ์ฒ๋ฆฌํด ์คํฌ๋ฆฐ ๋ฆฌ๋์๊ฒ ๋ถํ์ํ๊ฒ ์ฝํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋์ ์์ ํ ๋ฒํผ ์ญํ ์ ์ํํ๋ ์๋ฆฌ๋จผํธ๊ฐ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์๋๋ก ํ์์ต๋๋ค. ๊ด๋ จ๋ ํ์ต ๋ด์ฉ์palette.md์ ๋ฌธ์ํํ์ต๋๋ค.PR created automatically by Jules for task 3604191506433870130 started by @seonghobae