🎨 Palette: disclosure summaries 마우스 클릭 시 어색한 focus 외곽선 제거 - #1067
seonghobae wants to merge 8 commits into
Conversation
HTML 보고서의 `<summary>` 요소에서 마우스 클릭 시 발생하는 기본 브라우저 포커스 아웃라인을 제거하여 UX를 개선했습니다. `outline: none`을 `:focus`에 적용하고, 키보드 탐색을 위한 `:focus-visible`은 유지하여 접근성에 영향을 주지 않도록 하였습니다. 관련 내용을 .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 reached
Next review available in: 48 minutes Limit 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. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 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 |
|
@opencode-agent review Please evaluate the current exact head |
Acknowledged. I have evaluated the PR on |
HTML 보고서의 `<summary>` 요소에서 마우스 클릭 시 발생하는 기본 브라우저 포커스 아웃라인을 제거하여 UX를 개선했습니다. `outline: none`을 `:focus`에 적용하고, 키보드 탐색을 위한 `:focus-visible`은 유지하여 접근성에 영향을 주지 않도록 하였습니다. 관련 내용을 .Jules/palette.md에 기록했습니다.
|
Current-head review request for 0f0c6b7. Please review this exact head: The change keeps keyboard-visible focus styling while suppressing only pointer-triggered disclosure outlines. |
Acknowledged. |
seonghobae
left a comment
There was a problem hiding this comment.
Accessibility blocker on exact head a68bb58ca79f6cb02a515a6bf3097491f741340f: the new rule removes the outline for every .exact-values/.export-block > summary:focus and relies on the later :focus-visible rule to restore keyboard focus. In a user agent that does not understand :focus-visible, that restoring selector is ignored while the unconditional :focus { outline: none; } still applies, so keyboard focus can become invisible. Please suppress the pointer-only outline with summary:focus:not(:focus-visible) instead. That preserves the native focus fallback when :focus-visible is unsupported, while the existing explicit :focus-visible rule keeps the enhanced keyboard indicator where supported. Update the regression to require the :focus:not(:focus-visible) selector and to reject unconditional summary:focus { outline: none; }. I test-drove this assertion locally on the branch and then reverted the test-only commit because this connector cannot safely patch the large generated CSS source without replacing the whole file; the two test commits are tree-neutral (0f0c6b7... -> current head has no file delta).
Pull request was converted to draft
|
Current-head review request: the remote agent advanced this PR to exact HEAD a68bb58. Please review this head only and publish an approval or actionable finding. @opencode-agent review @cwl-noema-review review |
Acknowledged. |
|
@opencode-agent review Please review the current exact head |
Acknowledged. |
|
Exact-head local validation for
The selector keeps pointer-focus suppression scoped to |
Acknowledged. |
Pull request was converted to draft
|
Adopted the substantive disclosure-focus fix into the existing report-surface owner, PR #1002, to avoid two active writers mutating the same |
Understood. Acknowledging that this work is now obsolete and stopping work on this task. |
|
Closing this Draft lane as superseded by canonical report-surface PR #1002 at current head 36e0bdd. #1002 now owns the main, scroll-container, and disclosure-summary modality-safe focus selectors with the corresponding regressions; retaining this duplicate would create competing writers for python/fast_mlsirm/report.py. This closure does not alter the Draft gate or bypass protected checks on #1002. |
Understood. Acknowledging that this work is now obsolete as it has been superseded by PR #1002, and stopping work on this task. |
What changed
<summary>elements only when focus is not:focus-visible.:focus-visibleoutline for keyboard navigation.summary:focus { outline: none; }rule and prove the pointer-specific rule precedes the keyboard-visible rule.Accessibility correction
The original draft used a blanket
:focus { outline: none; }selector and relied on a later:focus-visiblerule to restore keyboard focus. That is unnecessarily fragile: in user agents where:focus-visiblerestoration is unavailable or degraded, the blanket rule can leave keyboard users with no visible focus indicator.The revised contract uses
:focus:not(:focus-visible)for pointer-like focus suppression and leaves generic keyboard focus behavior intact, while still providing the package's explicit high-contrast:focus-visibletreatment.RED → GREEN
af32c8f79124607eef938c5249f004d5de3b79d5: regressions require:focus:not(:focus-visible)and reject the broad:focusselector while the implementation still had the broad rule.dc3a86346a870d5cbd441e677ede162ee20bdecb: replace the broad disclosure selector with the modality-safe selector.181af0d0404cc7800ec06cbf18e3a453adb33efb: align the Palette learning with the corrected accessibility contract.Scope
This remains a report-CSS/accessibility slice only. No psychometric/statistical arithmetic, Rust numerical ownership, data schema, dependencies, or release behavior changes.
Gate state
The PR remains Draft while exact-head CI/security/SAST/CodeQL and the repository's required independent-review evidence regenerate on the current implementation. Predecessor-head results do not transfer.
PR created automatically by Jules for task 18414941932575116679 started by @seonghobae