Skip to content

๐ŸŽจ Palette: [์ ‘๊ทผ์„ฑ] ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ์— aria-label ์ถ”๊ฐ€ - #661

Draft
seonghobae wants to merge 8 commits into
developmentalfrom
palette-a11y-date-range-picker-12429340074811950587
Draft

seonghobae wants to merge 8 commits into
developmentalfrom
palette-a11y-date-range-picker-12429340074811950587

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 18, 2026 •

Copy link
Copy Markdown

๐Ÿ’ก What: date-range-picker.tsx์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ aria-label ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐฑ์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๐ŸŽฏ Why: ์•„์ด์ฝ˜์€ ์•„๋‹ˆ์ง€๋งŒ "7d" ๊ฐ™์€ ์•ฝ์–ด ํ…์ŠคํŠธ๋งŒ ์žˆ๋Š” ๋ฒ„ํŠผ์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. "์ง€๋‚œ 7์ผ"๊ณผ ๊ฐ™์ด ๋ช…ํ™•ํ•œ ๋งฅ๋ฝ์„ ์ œ๊ณตํ•˜์—ฌ ์›น ์ ‘๊ทผ์„ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ“ธ Before/After: ์‹œ๊ฐ์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์—†์œผ๋ฉฐ, ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์—์„œ '7d' ๋Œ€์‹  '์ง€๋‚œ 7์ผ'๋กœ ์ฝ์–ด์ค๋‹ˆ๋‹ค.
โ™ฟ Accessibility: ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ aria-label์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.


PR created automatically by Jules for task 12429340074811950587 started by @seonghobae

Summary by CodeRabbit

  • ๊ฐœ์„  ์‚ฌํ•ญ
    • ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ๊ธฐ ํ”„๋ฆฌ์…‹ ๋ฒ„ํŠผ์— ํ•œ๊ตญ์–ด ์ ‘๊ทผ์„ฑ ์ด๋ฆ„์„ ์ œ๊ณตํ•ด ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ ๊ธฐ๊ฐ„์„ ๋” ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ํ”„๋ฆฌ์…‹ ๋ฒ„ํŠผ์˜ ์ ‘๊ทผ์„ฑ ๋ผ๋ฒจ์ด โ€˜์ง€๋‚œ 7์ผโ€™, โ€˜์ง€๋‚œ 30์ผโ€™, โ€˜์ง€๋‚œ 90์ผโ€™, โ€˜์ „์ฒด ๊ธฐ๊ฐ„โ€™์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
@google-labs-jules

Copy link
Copy Markdown

๐Ÿ‘‹ 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

No actionable comments were generated in the recent review. ๐ŸŽ‰

โ„น๏ธ Recent review info
โš™๏ธ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 7254b415-d7b4-4a67-a247-1eaf788f5674

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between 2fa9201 and ab1bf96.

๐Ÿ“’ Files selected for processing (2)
  • packages/web/src/components/dashboard/date-range-picker.test.tsx
  • packages/web/src/components/dashboard/date-range-picker.tsx

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


๐Ÿ“ Walkthrough

Walkthrough

DateRangePicker ํ”„๋ฆฌ์…‹ ๋ฒ„ํŠผ์— ํ•œ๊ตญ์–ด aria-label์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ํ…Œ์ŠคํŠธ์˜ ๋ฒ„ํŠผ ์กฐํšŒ ์ด๋ฆ„์„ ์ƒˆ ๋ผ๋ฒจ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

Changes

๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ๊ธฐ ์ ‘๊ทผ์„ฑ

Layer / File(s) Summary
ํ”„๋ฆฌ์…‹ ์ ‘๊ทผ์„ฑ ๋ผ๋ฒจ ๋ฐ ํ…Œ์ŠคํŠธ
packages/web/src/components/dashboard/date-range-picker.tsx, packages/web/src/components/dashboard/date-range-picker.test.tsx
ํ”„๋ฆฌ์…‹์— ํ•œ๊ตญ์–ด ariaLabel ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฒ„ํŠผ์— aria-label์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์ง€๋‚œ 7์ผ, ์ง€๋‚œ 30์ผ, ์ง€๋‚œ 90์ผ, ์ „์ฒด ๊ธฐ๊ฐ„์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

Priority: โฌ‡๏ธ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Feature

๐Ÿšฅ Pre-merge checks | โœ… 4 | โŒ 1

โŒ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage โš ๏ธ Warning 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. Write docstrings for the functions missing them to satisfy the coverage threshold.
โœ… Passed checks (4 passed)
Check name Status Explanation
Description Check โœ… Passed Check skipped - CodeRabbitโ€™s high-level summary is enabled.
Title check โœ… Passed ์ œ๋ชฉ์€ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ์— ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•œ aria-label์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.
Linked Issues check โœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check โœ… Passed Check skipped because no linked issues were found for this pull request.
โœจ Finishing Touches ๐Ÿ’ก 1
๐Ÿ“ Generate docstrings ๐Ÿ’ก
  • Commit to this branch
  • Create a new PR
๐Ÿงช Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

โค๏ธ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head review: 63f99b3a6c3da76b377fac0601975d3b75068cfa

ํ˜„์žฌ ์ˆ˜๋ฆฌ๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์„ค๋ช…์„ ๋Š˜๋ฆฌ์ง€๋งŒ, visible label๊ณผ accessible name์„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด WCAG 2.5.3 Label in Name ๊ณ„์•ฝ์„ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์—๋Š” ์—ฌ์ „ํžˆ 7d / 30d / 90d / ALL์ด ๋ณด์ด๋Š”๋ฐ aria-label์€ ๊ฐ๊ฐ ์ง€๋‚œ 7์ผ / ์ง€๋‚œ 30์ผ / ์ง€๋‚œ 90์ผ / ์ „์ฒด ๊ธฐ๊ฐ„์œผ๋กœ visible token์„ ์ „ํ˜€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Œ์„ฑ ์ž…๋ ฅ ์‚ฌ์šฉ์ž๋Š” ํ™”๋ฉด์—์„œ ๋ณด์ด๋Š” 7d๋ฅผ ๋งํ•ด๋„ ๊ทธ ์ด๋ฆ„์œผ๋กœ ์ปจํŠธ๋กค์„ ์ฐพ์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. W3C APG๋„ visible text๋ฅผ accessible name์˜ ์šฐ์„  ์†Œ์Šค๋กœ ์“ฐ๋Š” ํŽธ์„ ๊ถŒ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

RED: ์ด exact head์—์„œ ๊ฐ ๋ฒ„ํŠผ์˜ computed accessible name์ด ํ™”๋ฉด์— ๋ณด์ด๋Š” token์„ ํฌํ•จํ•˜๋Š”์ง€ ์‹ค์ œ browser accessibility tree๋กœ ๊ฒ€์ฆํ•˜๊ณ , Tab/Enter/Space ๋ฐ aria-pressed ์ „ํ™˜๊นŒ์ง€ ํ•จ๊ป˜ ๊ณ ์ •ํ•ด ์ฃผ์„ธ์š”. aria-label="์ง€๋‚œ 7์ผ"์ฒ˜๋Ÿผ visible token์„ ์ œ๊ฑฐํ•œ mutation์€ ๋ฐ˜๋“œ์‹œ ์‹คํŒจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GREEN: 7d โ€” ์ง€๋‚œ 7์ผ์ฒ˜๋Ÿผ visible token์„ accessible name์— ํฌํ•จ์‹œํ‚ค๊ฑฐ๋‚˜, ๋” ๊ฒฌ๊ณ ํ•˜๊ฒŒ๋Š” visible 7d + visually-hidden ์„ค๋ช… suffix๋กœ ์ด๋ฆ„์„ content์—์„œ ํŒŒ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ œํ’ˆ์ด ์•ฝ์–ด ๋Œ€์‹  ์ „์ฒด ๋ฌธ๊ตฌ๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด visible label ์ž์ฒด๋ฅผ ๋ช…ํ™•ํ•œ locale ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๋Š” ์ชฝ์ด ๋” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ์„ค๋ช…์„ ์ปดํฌ๋„ŒํŠธ ์ƒ์ˆ˜์— ์ƒˆ canonical truth๋กœ ๊ตณํžˆ์ง€ ๋ง๊ณ , locale owner/translation resource๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๊ฒฝ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”.

UI Delivery Gate: FAIL until current-head browser a11y/keyboard evidence is GREEN.

@seonghobae seonghobae added enhancement New feature or request priority: medium Normal-priority or P2 work labels Sep 19, 2026 — with ChatGPT Codex Connector
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exact 40eeeee1bb05a5737b720609fe8780ff0bba0c65์˜ ์ ‘๊ทผ์„ฑ ์˜๋„๋Š” ๋งž์ง€๋งŒ, ํ˜„์žฌ ์ˆ˜๋ฆฌ๋Š” accessible name์„ ํ•œ๊ตญ์–ด ๋ฌธ์ž์—ด๋กœ source์— ๊ณ ์ •ํ•ด locale contract๋ฅผ ์ƒˆ๋กœ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค. visible label์€ 7d/30d/90d/ALL์ฒ˜๋Ÿผ ์–ธ์–ด ์ค‘๋ฆฝ์ธ๋ฐ aria-label๋งŒ ์ง€๋‚œ 7์ผ/์ง€๋‚œ 30์ผ/์ง€๋‚œ 90์ผ/์ „์ฒด ๊ธฐ๊ฐ„์œผ๋กœ ๊ฐ•์ œ๋˜๋ฏ€๋กœ EN/JA/ZH/VI/ES/DE/FR ์‚ฌ์šฉ์ž์™€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋Š” UI locale๊ณผ ๋‹ค๋ฅธ ์–ธ์–ด์˜ ์ด๋ฆ„์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. protected developmental์˜ ์ด ์ปดํฌ๋„ŒํŠธ์—๋Š” locale-aware surface๊ฐ€ ์—†๊ณ , ์ด๋ฒˆ PR์€ ๊ทธ ์ƒํƒœ๋ฅผ ๋” ๊นŠ๊ฒŒ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

CWL UI/i18n ๊ฒฝ๊ณ„์ƒ file/JS bundle์— locale catalog๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋ฐฉํ–ฅ๋„ GREEN์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ ์งœ ํ”„๋ฆฌ์…‹์˜ accessible name์€ screen-key ๊ธฐ๋ฐ˜ versioned translation resource/cache์—์„œ ํ˜„์žฌ locale๋กœ resolveํ•˜๊ณ , ontology label ledger์™€๋Š” ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œํ’ˆ์ด ์•„์ง ์ด translation boundary๋ฅผ ์†Œ๋น„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์ด PR์„ Ready๋กœ ๋‘๊ธฐ๋ณด๋‹ค Draft/owner prerequisite๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ํŽธ์ด ๋งž์Šต๋‹ˆ๋‹ค.

RED: ๊ฐ™์€ current-head component๋ฅผ KO/EN/JA/ZH/VI/ES/DE/FR locale fixture์—์„œ ๋ Œ๋”ํ•ด ๊ฐ preset์˜ accessible name์ด ์„ ํƒ locale๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€, aria-pressed/click/keyboard ๋™์ž‘์ด ๊ทธ๋Œ€๋กœ์ธ์ง€ accessibility tree๋กœ ๊ฒ€์ฆํ•˜์‹ญ์‹œ์˜ค. CJK line-wrap/text expansion์€ visible UI๊ฐ€ ์•„๋‹ˆ๋ผ๋„ screen-reader name truncation/์กฐํ•ฉ์ด ์—†๋Š”์ง€ ํ•จ๊ป˜ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. 320/768/desktop๊ณผ Chromium/Firefox/WebKit์—์„œ ํ˜„์žฌ ์ž‘์€ preset control์˜ focus-visible/touch target๋„ material UI delivery evidence๋กœ ๋‚จ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GREEN: literal ariaLabel์„ PRESETS์— ๋„ฃ์ง€ ๋ง๊ณ  semantic key(date_range.last_n_days, date_range.all_time ๋“ฑ)+parameter๋ฅผ ํ˜„์žฌ product translation boundary์— ์ „๋‹ฌํ•˜์‹ญ์‹œ์˜ค. full catalog/heavy SPA i18n์„ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋œป์ด ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ์š”๊ตฌ๋œ DB-versioned screen-key cache๋ฅผ ์–‡๊ฒŒ ์†Œ๋น„ํ•˜๋Š” ํ˜•ํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น owner๊ฐ€ ์•„์ง ์—†๋‹ค๋ฉด prerequisite๋ฅผ ๋ช…์‹œํ•˜๊ณ  ์ด PR์€ Draft๋กœ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค.

ํŒ์ •: a11y intent PASS ํ›„๋ณด, accessible-name locale correctness FAIL, translation ownership FAIL/PENDING, material UI locale/E2E evidence FAIL.

`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exact-head a25c908982b710f022f56f9bbc28188296f2dea2 owner-path review์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ aria-label='์ง€๋‚œ 7์ผ'์ฒ˜๋Ÿผ visible text 7d/30d/90d/ALL์„ accessible name์—์„œ ์™„์ „ํžˆ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹์€ ์ ‘๊ทผ์„ฑ์„ ๊ฐœ์„ ํ•˜๋ฉด์„œ ๋™์‹œ์— WCAG 2.2 SC 2.5.3 Label in Name ํšŒ๊ท€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. W3C๋Š” visible label์˜ ํ…์ŠคํŠธ๊ฐ€ accessible name์— ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์š”๊ตฌํ•˜๊ณ , speech-input ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ด๋ฆ„์œผ๋กœ control์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. aria-label์€ button text๋ณด๋‹ค accessible-name ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฏ€๋กœ ์ง€๊ธˆ ๊ตฌ์กฐ์—์„œ๋Š” 7d๊ฐ€ ์ด๋ฆ„์—์„œ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ฐธ๊ณ : https://www.w3.org/TR/WCAG22/#label-in-name , https://www.w3.org/WAI/WCAG22/Techniques/failures/F96

๋˜ํ•œ accessibility-only string์ด component ์ƒ์ˆ˜์— ํ•œ๊ตญ์–ด๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์–ด EN/JA/ZH/VI/ES/DE/FR locale์—์„œ๋„ screen reader๋งŒ ํ•œ๊ตญ์–ด ์ด๋ฆ„์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ž์—ด์€ visible locale๊ณผ ๊ฐ™์€ screen-key/versioned translation resource์—์„œ ๋‚˜์™€์•ผ ํ•˜๋ฉฐ ๋ณ„๋„ ํ•œ๊ตญ์–ด-only path๊ฐ€ ๋˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

RED: KO/EN/JA/ZH/VI/ES/DE/FR ๊ฐ๊ฐ์—์„œ Chromium/Firefox/WebKit accessibility tree์˜ name/pressed state๋ฅผ ํ™•์ธํ•˜๊ณ , speech/label-in-name acceptance๋กœ visible token ์ „์ฒด(7d ๋“ฑ)๊ฐ€ accessible name์— ํฌํ•จ๋˜๋Š”์ง€ ๊ณ ์ •ํ•ด ์ฃผ์„ธ์š”. keyboard Tab/Enter/Space, focus-visible, active/inactive state๋„ current-head E2E๋กœ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GREEN ์˜ˆ์‹œ๋Š” visible token์„ ์ด๋ฆ„์˜ ์„ ๋‘์— ๋ณด์กดํ•˜๋ฉด์„œ locale ์„ค๋ช…์„ ๋ณด์ถฉํ•˜๋Š” ํ˜•ํƒœ(7d, โ€ฆ)์ด์ง€๋งŒ, ๊ตฌ์ฒด ๋ฌธ๊ตฌ๋Š” product locale owner๊ฐ€ ๊ฒฐ์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. hard-coded Korean์„ ์ œ๊ฑฐํ•˜๊ณ  locale resource + screen key๋กœ ์—ฐ๊ฒฐํ•œ ๋’ค ์‹ค์ œ browser evidence๊ฐ€ ์žˆ์–ด์•ผ UI Delivery Gate PASS์ž…๋‹ˆ๋‹ค.

Copy link
Copy Markdown
Author

Admission correction โ€” exact current head a25c908982b710f022f56f9bbc28188296f2dea2 was re-fetched immediately before this transition. The PR remains Open and its branch, commits, reviews, and valid delta are preserved, but it is not merge-admissible: terminal workflow failure: CodeQL PR:cancelled, Security Scan:cancelled. Moving it to Draft/Proposed records the live blocker without retiring or closing the work. Return it to Ready only after the same exact head (or a non-destructive reconciled successor) is mergeable, has no substantive unresolved review state, and has terminal required Checks.

@seonghobae
seonghobae marked this pull request as draft September 26, 2026 16:06
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
`date-range-picker.tsx`์˜ ๋‚ ์งœ ๋ฒ”์œ„ ์„ ํƒ ๋ฒ„ํŠผ(7d, 30d, 90d, ALL)์— ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์šฉ `aria-label` ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Normal-priority or P2 work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant