Skip to content

🎨 Palette: ν‚€λ³΄λ“œ λ‚΄λΉ„κ²Œμ΄μ…˜ μ ‘κ·Όμ„± ν–₯상을 μœ„ν•œ 포컀슀 μŠ€νƒ€μΌ κ°œμ„  - #1086

Closed
seonghobae wants to merge 4 commits into
mainfrom
palette-focus-accessibility-11234531889831780158
Closed

seonghobae wants to merge 4 commits into
mainfrom
palette-focus-accessibility-11234531889831780158

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

πŸ’‘ What:
HTML 리포트의 main, .table-wrap, .export-block pre μš”μ†Œμ— λŒ€ν•΄ 기쑴의 마우슀 클릭 μ‹œ 아웃라인 제거 μŠ€νƒ€μΌμΈ :focus { outline: none; }을 :focus:not(:focus-visible) { outline: none; }으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

🎯 Why:
κΈ°μ‘΄μ—λŠ” 마우슀 클릭 μ‹œ λ Œλ”λ§λ˜λŠ” 큰 아웃라인을 μ œκ±°ν•˜κΈ° μœ„ν•΄ outline: none;을 μ‚¬μš©ν–ˆμ§€λ§Œ, μ΄λŠ” ν‚€λ³΄λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ νƒμƒ‰ν•˜λŠ” μ‚¬μš©μž(예: skip-linkλ₯Ό 톡해 μ΄λ™ν•œ μ‚¬μš©μž)μ—κ²Œλ„ 포컀슀 링을 숨겨 ν‚€λ³΄λ“œ 접근성을 μ™„μ „νžˆ νŒŒκ΄΄ν•˜λŠ” 문제λ₯Ό μ•ΌκΈ°ν–ˆμŠ΅λ‹ˆλ‹€. :focus-visible 가상 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ 마우슀/ν„°μΉ˜ μƒν˜Έμž‘μš©μ—μ„œλŠ” μ‹œκ°μ  λ°©ν•΄λ₯Ό μ—†μ• κ³ , ν‚€λ³΄λ“œ λ‚΄λΉ„κ²Œμ΄μ…˜ μ‹œμ—λŠ” κΈ°λ³Έ 포컀슀 인디케이터가 λͺ…ν™•νžˆ 보이도둝 μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ“Έ Before/After:
λ³€κ²½ μ „: ν‚€λ³΄λ“œλ‘œ νƒ­ 이동 μ‹œ μš”μ†Œμ— μ‹œκ°μ μΈ 포컀슀 ν‘œμ‹œκ°€ λ‚˜νƒ€λ‚˜μ§€ μ•Šμ•„ μ‚¬μš©μžκ°€ ν˜„μž¬ μœ„μΉ˜λ₯Ό νŒŒμ•…ν•˜κΈ° 어렀움.
λ³€κ²½ ν›„: ν‚€λ³΄λ“œ 이동 μ‹œμ—λ§Œ λΈŒλΌμš°μ € κΈ°λ³Έ 포컀슀 링이 ν‘œμ‹œλ˜μ–΄ λͺ…ν™•ν•œ 탐색이 κ°€λŠ₯ν•˜λ©°, 마우슀 클릭 μ‹œμ—λŠ” λΆˆν•„μš”ν•œ 아웃라인이 λ‚˜νƒ€λ‚˜μ§€ μ•ŠμŒ. (Playwright μŠ€ν¬λ¦°μƒ·μœΌλ‘œ 검증 μ™„λ£Œ)

β™Ώ Accessibility:
ν‚€λ³΄λ“œ λ‚΄λΉ„κ²Œμ΄μ…˜ 의쑴 μ‚¬μš©μžλ₯Ό μœ„ν•œ 핡심 WCAG 2.4.7 (Focus Visible) 지침을 μ€€μˆ˜ν•˜λ„λ‘ HTML 리포트의 접근성을 ν–₯μƒμ‹œμΌ°μŠ΅λ‹ˆλ‹€.


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


Open in Devin Review

Summary by CodeRabbit

  • Bug Fixes

    • Improved focus styling in diagnostic reports so mouse interactions do not unnecessarily display outlines.
    • Preserved clear focus indicators for keyboard navigation across report sections, tables, and export code blocks.
  • Tests

    • Updated accessibility checks to verify the revised focus behavior.

@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 Aug 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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

ℹ️ Recent review info
βš™οΈ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5defa5e0-d952-4cf6-a6ef-9dd902e5d049

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 04d0bc2 and ce6ac56.

πŸ“’ Files selected for processing (3)
  • python/fast_mlsirm/report.py
  • tests/test_report.py
  • tests/test_report_focus_contrast.py

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


πŸ“ Walkthrough

Walkthrough

The report now suppresses outlines for non-keyboard focus on main, table containers, and export code blocks. Tests update focus selectors and add descriptions for report diagnostics cases.

Changes

Report focus styling

Layer / File(s) Summary
Focus selector updates
python/fast_mlsirm/report.py
Focus rules for main, .table-wrap, and .export-block pre now apply to :focus:not(:focus-visible).
Focus behavior validation
tests/test_report.py, tests/test_report_focus_contrast.py
Tests expect non-visible focus selectors and add descriptions for report diagnostics cases.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: βšͺ Minimal Β· up to ce6ac

This localized accessibility improvement preserves focus indicators for keyboard navigation while suppressing unnecessary mouse-focus outlines. No actionable merge-blocking risk remains beyond normal checks and review.

πŸš₯ Pre-merge checks | βœ… 5
βœ… Passed checks (5 passed)
Check name Status Explanation
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check βœ… Passed The title clearly describes the main change: improving focus styles for keyboard navigation accessibility.
Docstring Coverage βœ… Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 14 functions across 3 files.
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
πŸ“ Generate docstrings
  • Create stacked PR
  • Commit on current branch
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch palette-focus-accessibility-11234531889831780158

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.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

βœ… Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head review (fe70b02):

  • The accessibility change is limited to suppressing mouse-click outlines with :focus:not(:focus-visible) while retaining keyboard-visible focus styles.
  • Focused tests: 15 passed. Ruff passed. Interrogate passed at 100% for changed source/tests. git diff --check passed.
  • No actionable source finding at this exact head. Please preserve the protected review/check gates.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent review @cwl-noema-review review

@seonghobae
seonghobae enabled auto-merge (squash) August 20, 2026 19:38
@google-labs-jules

Copy link
Copy Markdown

Current-head review (fe70b02):

  • The accessibility change is limited to suppressing mouse-click outlines with :focus:not(:focus-visible) while retaining keyboard-visible focus styles.
  • Focused tests: 15 passed. Ruff passed. Interrogate passed at 100% for changed source/tests. git diff --check passed.
  • No actionable source finding at this exact head. Please preserve the protected review/check gates.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head review (ce6ac56):

  • A concurrent Palette update replaced the earlier branch head, so the report test docstrings were reapplied to this exact current HEAD rather than reusing stale evidence.
  • Focused tests: 15 passed. Ruff passed. Interrogate passed at 100% for changed source/tests. git diff --check passed.
  • No actionable source finding at this exact head. Preserve the protected review/check gates and merge only through normal auto-merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent review @cwl-noema-review review

@google-labs-jules

Copy link
Copy Markdown

Current-head review (ce6ac56):

  • A concurrent Palette update replaced the earlier branch head, so the report test docstrings were reapplied to this exact current HEAD rather than reusing stale evidence.
  • Focused tests: 15 passed. Ruff passed. Interrogate passed at 100% for changed source/tests. git diff --check passed.
  • No actionable source finding at this exact head. Preserve the protected review/check gates and merge only through normal auto-merge.

Acknowledged.

Copy link
Copy Markdown
Contributor Author

The substantive accessibility delta has been adopted into the existing report-surface owner, PR #1002, instead of keeping two branches mutating the same python/fast_mlsirm/report.py focus contract. On #1002 I first added a regression that rejects blanket .table-wrap:focus / .export-block pre:focus outline suppression, then changed those two selectors to :focus:not(:focus-visible) while retaining the explicit :focus-visible keyboard indicators. #1002 already owned the main focus correction and the generic report-title trust-boundary fix, so consolidating there preserves single-writer scope and avoids duplicate/conflicting report CSS landing units. The unrelated test-docstring churn from this branch was not adopted.

@seonghobae seonghobae closed this Aug 20, 2026
auto-merge was automatically disabled August 20, 2026 20:07

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant