Skip to content

fix(a11y): make summary metric explanations persistent - #509

Open
seonghobae wants to merge 28 commits into
developfrom
palette/tooltip-accessibility-9739800597741233261
Open

fix(a11y): make summary metric explanations persistent#509
seonghobae wants to merge 28 commits into
developfrom
palette/tooltip-accessibility-9739800597741233261

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible outcome

ScopeWeave no longer relies on native title tooltips for the three summary metric explanations. Each explanation is persistent visible copy inside its metric card, so sighted keyboard, touch, pointer, and assistive-technology users receive the same decision context without adding synthetic keyboard stops to otherwise static content. The accent-card copy also has an executable WCAG 2.2 normal-text contrast floor rather than relying on visual inspection.

Current exact state

  • Contributor head: ea9027743ebafd1ca5774a5a14227585cf796052
  • Live protected base: develop@2c328875e00e86537df3e965170be80532571cad
  • GitHub synthetic PR merge for this base/head pair: 747c2411ea08856c02e4d413be23eb4e6ab8d834
  • Protected-base diff spans seven files: .jules/palette.md, docs/doctoring/metric-card-explanations-accessibility.md, index.html, styles.css, tests/e2e/metric-card-explanations.spec.js, tests/e2e/project-title-literal.spec.js, and tests/e2e/scopeweave.spec.js.
  • Ready/non-Draft and mechanically mergeable at the latest fresh refetch.
  • All currently returned inline review threads are resolved or outdated; there is no valid unresolved source finding on this exact head.
  • No qualifying independent current-head approval exists.

Accessibility contract

  • explanatory metric help is visible without hover or focus;
  • static metric cards remain non-interactive and are not added to the tab order;
  • static metric cards have no role, tabindex, or native title fallback;
  • the two accent-card descriptions retain at least 4.5:1 computed contrast across their rendered gradients under browser acceptance;
  • the legacy browser suite verifies the same visible .meta-description contract instead of removed tooltip behavior.

Current W3C/WAI primary guidance and APA 7 references are recorded in docs/doctoring/metric-card-explanations-accessibility.md.

Review repair state

Current review feedback was re-verified against the immutable contributor head. Commit 57004e4 strengthened the regression so any role or tabindex reintroduction fails, not merely the originally observed values. Commit ea90277 repaired the stale legacy Playwright assertions so they require visible metric explanations and complete title absence while preserving the existing Gantt-control ARIA checks.

The previously described Devin notes are historical only: current GitHub review-thread state returns them resolved/outdated. The literal project-title regression intentionally verifies text assignment rather than HTML parsing; the gradient acceptance test enforces the implemented normal-text contrast floor. Formal review evidence remains model/tool commentary rather than a qualifying independent approval.

Design-system / Storybook authority

Fresh repository searches on this exact lane did not find a Storybook implementation or a repository-linked Figma authority. This bounded static-HTML accessibility repair therefore preserves the existing product CSS/token vocabulary and does not create a parallel design system merely to satisfy the PR. A future shared interactive component should establish Figma and Storybook authority together before expanding this surface.

Current workflow truth and authority boundary

All six repository workflows associated with contributor head ea9027743ebafd1ca5774a5a14227585cf796052 are terminal GitHub-success:

  • Dependency Review 32479745999 — success;
  • Fuzz 32479745986 — success;
  • Server Tests 32479746075 — success;
  • OSV Scanner 32479746333 — success;
  • SAST Semgrep 32479745966 — success;
  • Security Scan 32479745962 — success.

However, the Server Tests checkout log proves that at least that PR workflow checked out refs/pull/509/merge, leaving HEAD at synthetic merge 747c2411ea08856c02e4d413be23eb4e6ab8d834 rather than the immutable contributor SHA. Under the organization evidence contract, synthetic-merge success is useful behavior evidence but is not promoted to exact-contributor-head merge authority.

ScopeWeave issue #522 / PR #523 owns the repository-native exact-head Server Tests/coverage correction. ContextualWisdomLab/.github#1222 owns the organization-required reusable SAST/Security exact-head checkout correction through the central control plane. The canonical central repair branches are currently independently owned and must not be raced from this product lane.

A fresh reviewer request for team independent-reviewers on this unchanged head is rejected by GitHub with HTTP 422 because the team is not a repository collaborator. This is a reviewer-provisioning boundary, not permission to self-approve or bypass protection.

Merge gate

Do not merge or enable auto-merge until the unchanged contributor head remains reconciled to live protected develop, the repository and organization exact-head controls are protected-shipped and regenerated on this head, every applicable functional/browser/accessibility/owned statement-branch-function-line coverage/docstring/SAST/security/dependency/supply-chain/package/provenance gate is substantively terminal-passing under corrected contracts, valid unresolved current-head defects are zero, and the live ruleset's qualifying independent approval requirement is genuinely satisfied.

Pending, queued, skipped-required, cancelled, absent, neutral-required, failed, stale, predecessor, synthetic-only, status-only, author-only, model-only, rate-limited, or infrastructure-only evidence is non-passing.

- `div`로 구성된 정적 요소(메트릭 카드)의 `title` 툴팁이 키보드 사용자에게 노출되지 않는 문제를 해결했습니다.
- `tabindex="0"`과 `role="note"`를 추가하여 키보드 포커스와 스크린 리더 인식이 가능하도록 개선했습니다.
- 시각적 인지를 위해 `:focus-visible` 스타일을 추가했습니다.
@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 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

요약 카드가 title 툴팁과 키보드 포커스를 사용하지 않고 카드 내부에 영구 설명을 표시하도록 변경되었습니다. 상태 영역에 role="status"가 추가되었습니다. 설명 색상 대비와 프로젝트 제목의 리터럴 표시를 E2E 테스트로 검증합니다.

Changes

메트릭 카드 접근성

Layer / File(s) Summary
카드 설명 표시와 상태 의미
index.html, styles.css
요약 카드에 .meta-description을 표시하고 title, tabindex="0", role="note"를 제거했습니다. 동기화 상태와 토스트 영역에 상태 의미를 추가했습니다. 카드 색상과 포커스 스타일도 변경했습니다.
접근성 기준과 회귀 검증
.jules/palette.md, docs/doctoring/metric-card-explanations-accessibility.md, tests/e2e/metric-card-explanations.spec.js
영구 설명 텍스트와 명시적 툴팁 또는 disclosure 기준을 문서화했습니다. 세 카드의 설명과 비대화형 속성, 그라디언트 전 구간의 WCAG AA 대비를 검증합니다.

프로젝트 제목 리터럴 처리

Layer / File(s) Summary
프로젝트 제목 회귀 검증
tests/e2e/project-title-literal.spec.js
특수문자가 포함된 프로젝트명 입력 후 브라우저 제목이 리터럴 문자열인지 검증합니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🔵 Low · up to b2acb

The change makes metric explanations persistently visible and removes reliance on native tooltips, but the current accessibility regression test could miss some invalid focus or role attributes. The PR is mergeable with explicit follow-up to assert that those attributes are absent entirely.

🚥 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 5 functions across 2 files. (4 skipped: 4 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 요약 메트릭 설명을 지속적으로 표시하도록 변경한 주요 내용을 정확하고 간결하게 설명합니다.
Full details: Docstring Coverage

Explanation

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 5 functions across 2 files. (4 skipped: 4 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch palette/tooltip-accessibility-9739800597741233261

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 changed the title 🎨 Palette: 키보드 사용자를 위한 메트릭 카드 툴팁 접근성 개선 fix(a11y): make summary metric explanations persistent Aug 15, 2026
coderabbitai[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

seonghobae and others added 2 commits August 16, 2026 01:45
- `div`로 구성된 정적 요소(메트릭 카드)의 `title` 툴팁이 키보드 사용자에게 노출되지 않는 문제를 해결했습니다.
- `tabindex="0"`과 `role="note"`를 추가하여 키보드 포커스와 스크린 리더 인식이 가능하도록 개선했습니다.
- 시각적 인지를 위해 `:focus-visible` 스타일을 추가했습니다.
coderabbitai[bot]

This comment was marked as resolved.

@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Please submit a formal review for exact current head c8f7c5c7995793516b28068ac59caa73351cc1fa against protected develop@44e7903cf8891c65410f7fc6ca5144de3fdb5185. Re-evaluate current source only: the prior title/legacy-assertion, dead-focus-selector, static-card focusability, and unused-variable findings are resolved/outdated. Verify the final contract provides persistent visible metric explanations without title, tabindex, or synthetic landmark semantics, and that the accent-card normal-text contrast acceptance remains at least 4.5:1. Review only; do not mutate, merge, weaken gates, or transfer predecessor-head evidence.

seonghobae and others added 2 commits August 18, 2026 04:44
Reconcile PR #509 onto current protected develop, retaining #545 NVIDIA NIM/OpenCode configuration and published-release-note regressions while preserving the bounded metric-card accessibility changes.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review

Please submit a fresh formal review for exact current head 112f9b7ccf51fb095854da14552a29dd70b40884 against exact current base develop@df0fa17bd5035af6455c889022c540b4f439e3d6. Re-evaluate current source only. Verify that the buyer-facing metric cards keep persistent visible .meta-description copy without title, tabindex, or synthetic landmark semantics; that the two accent-card description states retain the executable >= 4.5:1 normal-text contrast contract; and that the current protected-base diff remains bounded to this accessibility surface. All currently returned inline threads are resolved/outdated. Review only; do not mutate source, merge, weaken gates, or reuse predecessor-head evidence.

@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 found 3 potential issues.

Open in Devin Review

Comment thread index.html
Comment thread tests/e2e/project-title-literal.spec.js
Comment thread tests/e2e/metric-card-explanations.spec.js
coderabbitai[bot]

This comment was marked as resolved.

@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 found 1 new potential issue.

Open in Devin Review

Comment thread styles.css
@opencode-agent opencode-agent Bot added area: accessibility Accessibility and assistive-technology support priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: bug Defect or incorrect behavior labels Aug 22, 2026
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

1 similar comment
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

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

Labels

area: accessibility Accessibility and assistive-technology support priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant