Skip to content

🎨 Palette: Add keyboard focus-visible styling to dashboard components - #1045

Closed
google-labs-jules[bot] wants to merge 9 commits into
mainfrom
palette/dashboard-a11y-focus-13522420836634214970
Closed

🎨 Palette: Add keyboard focus-visible styling to dashboard components#1045
google-labs-jules[bot] wants to merge 9 commits into
mainfrom
palette/dashboard-a11y-focus-13522420836634214970

Conversation

@google-labs-jules

@google-labs-jules google-labs-jules Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Controller disposition

Draft duplicate evidence only. This PR is not an active #898 execution unit.

Canonical unit

#918 already owns the dashboard keyboard-focus work. This branch overlaps apps/web/src/components/dashboard/panels.tsx and adds three extra files without a focused child issue or issue-bound receipt.

Exact proposal

  • Provider agent/run: google-labs-jules[bot] / 13522420836634214970
  • Branch/PR: palette/dashboard-a11y-focus-13522420836634214970 / 🎨 Palette: Add keyboard focus-visible styling to dashboard components #1045
  • Exact head: 52cf8d41668c471f6158a8cda3b067837c8118b1
  • Files: .jules/palette.md, EventList.tsx, DashboardCanvasView.tsx, and dashboard/panels.tsx
  • Claimed: 2026-07-27T18:24:09Z
  • Latest heartbeat: 2026-07-27T18:40:40Z

Exact-head evidence

  • CI 30294148096, Coverage 30294148043, CodeQL 30294148449, Security 30294148213, Secret Scan 30294148223, and Dependency Review 30294148181 pass.
  • E2E 30294148159 is repository-skipped.
  • Zero review threads exist.
  • Preview is canceled because commit provenance is unverified.
  • Passing checks do not establish canonical ownership, focused acceptance criteria, or production evidence.

Next action

Keep draft and duplicate. Reconcile any genuinely unique accessibility requirement through existing focused issue #919 and canonical PR #918; do not merge, approve workflows, or create another implementation from this branch.

No merge, branch deletion, credential/ruleset change, or production mutation is authorized.

Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
@google-labs-jules

Copy link
Copy Markdown
Contributor Author

👋 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.

@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v0-uvai Canceled Canceled Aug 1, 2026 8:29pm

@github-actions

Copy link
Copy Markdown

🔍 PR Validation

⚠️ PR title should follow conventional commits format

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA d3bbe3e.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@github-actions github-actions Bot added documentation Improvements or additions to documentation javascript Pull requests that update javascript code labels Jul 27, 2026
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

Agent Completion Truth Gate: BLOCKED

Reasons: invalid_payload

Machine-readable verdict
{
  "details": {
    "collection_errors": [
      "incomplete_linked_issue_contract",
      "missing_linked_issue",
      "missing_closing_issue_reference",
      "missing_agent_run_id",
      "missing_agent_login"
    ],
    "invalid_fields": [
      "issue.number",
      "policy.agent_login",
      "policy.run_id"
    ]
  },
  "reasons": [
    "invalid_payload"
  ],
  "verdict": "blocked"
}

Workflow evidence

@groupthinking groupthinking left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review (automated, review-requested trigger): a11y focus-visible styling — code LGTM, merge deferred to owner

Reviewed all 4 changed files. This is a clean, correctly-scoped accessibility improvement:

  • Adds focus:outline-none focus-visible:ring-2 focus-visible:ring-* to interactive elements (buttons, the search <input>, and result rows) in EventList.tsx, DashboardCanvasView.tsx, and panels.tsx, plus a learnings note in .jules/palette.md.
  • Purely additive Tailwind utility classes — no logic, state, or data-flow changes; no dangerouslySetInnerHTML; no security surface.
  • Correctly uses focus-visible: (not focus:) so rings appear for keyboard navigation only, not mouse clicks. Ring colors track each component's accent, and focus-visible:z-10 on the dock/rail buttons keeps the ring from being clipped. Satisfies WCAG 2.4.7 (Focus Visible).

CI: every code check is green — build, lint-frontend, lint-python, validate, CodeQL, and all security scans (bandit / trivy / gitleaks / npm-audit / python-safety / dependency-review).

Not merging from this routine — intentionally. The only red checks are governance gates, not code: agent-completion/truth-gate (invalid_payload — needs the originating Jules bot's canonical issue + agent_login/run_id), PR Governance, and Canonical issue and evidence. main is protected and review was requested from @groupthinking, so merge sign-off is owner-owned and I will not auto-merge without a live human decision.

Terminal state: HALTED(awaiting_merge_approval). Suggested next step: have Jules re-emit the completion payload so the truth-gate passes (or override it), then merge — the code itself is ready.


Generated by Claude Code

Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
@groupthinking
groupthinking marked this pull request as draft July 27, 2026 18:40
@groupthinking groupthinking added the duplicate This issue or pull request already exists label Jul 27, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Owner

Quarantined as a duplicate of focused #919 / canonical #918.

Exact head 52cf8d41668c471f6158a8cda3b067837c8118b1 has passing CI/Coverage/code-security workflows, skipped E2E, zero review threads, and a canceled unverified preview. Those artifacts do not cure the missing focused issue/receipt or the overlap with #918.

The PR is now draft and labeled duplicate. No #898 progress is credited; preserve the branch as evidence and route any unique requirement through #919/#918.

@google-labs-jules

Copy link
Copy Markdown
Contributor Author

Quarantined as a duplicate of focused #919 / canonical #918.

Exact head 52cf8d41668c471f6158a8cda3b067837c8118b1 has passing CI/Coverage/code-security workflows, skipped E2E, zero review threads, and a canceled unverified preview. Those artifacts do not cure the missing focused issue/receipt or the overlap with #918.

The PR is now draft and labeled duplicate. No #898 progress is credited; preserve the branch as evidence and route any unique requirement through #919/#918.

Understood. Acknowledging that this PR has been quarantined as a duplicate of #919 / #918 and marked as draft/duplicate. I am stopping work on this task.

@groupthinking
groupthinking marked this pull request as ready for review July 27, 2026 21:37
Copilot AI review requested due to automatic review settings July 27, 2026 21:37
@groupthinking

Copy link
Copy Markdown
Owner

@copilot resolve the merge conflicts on this branch.

Copilot AI commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts on this branch.

Done. The only conflict was in apps/web/src/components/dashboard/panels.tsx — four focus-visible:ring opacity values that differed slightly between this branch and the canonical PR #918 already merged into main. Resolved by accepting main's values and committed the merge in 276904d.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds keyboard focus styling across dashboard controls, but duplicates canonical PR #918 and exceeds issue #919’s scope.

Changes:

  • Adds focus-visible rings to buttons and search controls.
  • Documents the accessibility pattern.
  • Omits the required search aria-busy state.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
.jules/palette.md Documents focus-state guidance.
EventList.tsx Styles the extraction button focus state.
dashboard/panels.tsx Styles panel controls and search elements.
dashboard/DashboardCanvasView.tsx Styles navigation, tabs, and rail controls.

@groupthinking
groupthinking marked this pull request as draft July 27, 2026 21:48
Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
@groupthinking

Copy link
Copy Markdown
Owner

The red build / trivy here are cancelled-run artifacts — please re-run before judging

Pulled the logs with --log-failed on jobs 90132940492 and 90132940393. Both emitted zero error lines — the only output is post-job git-credential teardown. That is the signature of a cancelled run, not a failure, and it's corroborated by the paired Vercel status reading "Canceled from the Vercel Dashboard". The run is from 2026-07-27 and stale.

Do not close this PR on that signal. Re-run CI first.

On the overlap with #1049 — these are not duplicates, both should land

#1049 #1045
Scope 2 files, +43/−2 4 files, +11/−7
Does Raises contrast on 2 existing rings in AgentsPanel Adds rings to 7 controls that had none
Test dashboard-search-accessibility.test.ts (+41), real SC 2.4.11 regression test

The most important line here is panels.tsx L297: the SearchPanel <input> carries focus:outline-none with no replacement indicator — a genuine WCAG 2.4.7 failure that #1049 does not touch.

They merge cleanly: the edits sit ~60 lines apart (L297 <input> vs L223/232 <button>), and #1049's buttonTagFor matcher only scans <button> elements, so it won't trip on the input.

Suggested order: land #1049 first (it carries the regression test), then rebase and land this.

@google-labs-jules

Copy link
Copy Markdown
Contributor Author

The red build / trivy here are cancelled-run artifacts — please re-run before judging

Pulled the logs with --log-failed on jobs 90132940492 and 90132940393. Both emitted zero error lines — the only output is post-job git-credential teardown. That is the signature of a cancelled run, not a failure, and it's corroborated by the paired Vercel status reading "Canceled from the Vercel Dashboard". The run is from 2026-07-27 and stale.

Do not close this PR on that signal. Re-run CI first.

On the overlap with #1049 — these are not duplicates, both should land

#1049 #1045
Scope 2 files, +43/−2 4 files, +11/−7
Does Raises contrast on 2 existing rings in AgentsPanel Adds rings to 7 controls that had none
Test dashboard-search-accessibility.test.ts (+41), real SC 2.4.11 regression test

The most important line here is panels.tsx L297: the SearchPanel <input> carries focus:outline-none with no replacement indicator — a genuine WCAG 2.4.7 failure that #1049 does not touch.

They merge cleanly: the edits sit ~60 lines apart (L297 <input> vs L223/232 <button>), and #1049's buttonTagFor matcher only scans <button> elements, so it won't trip on the input.

Suggested order: land #1049 first (it carries the regression test), then rebase and land this.

Understood. Rebased the branch onto the latest main (which now includes #1049) to pick up those changes and tests, and resolved the merge conflicts. The checks should now trigger a fresh run. Let me know if further action is needed!

Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.
Added explicit focus indicators to interactive elements in DashboardCanvasView, panels, and EventList for improved a11y keyboard navigation.

Copy link
Copy Markdown
Owner

Closing — focus-visible styling is present on main

Same disposition as #1049, which covered this surface. focus-visible styles are already applied across apps/web/src/components/ on main.

This branch is also orphaned by the secret-purge force-push (git merge-base origin/main <branch> is empty), so it has no shared ancestry with main and cannot be rebased.

Tracked in #1378. Branch retained for archive-tagging.


Generated by Claude Code

@google-labs-jules

Copy link
Copy Markdown
Contributor Author

Closing — focus-visible styling is present on main

Same disposition as #1049, which covered this surface. focus-visible styles are already applied across apps/web/src/components/ on main.

This branch is also orphaned by the secret-purge force-push (git merge-base origin/main <branch> is empty), so it has no shared ancestry with main and cannot be rebased.

Tracked in #1378. Branch retained for archive-tagging.


Generated by Claude Code

Understood. Acknowledging that this work is now obsolete as the focus-visible styling is present on main and the branch is orphaned. I am stopping work on this task.

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

Labels

documentation Improvements or additions to documentation duplicate This issue or pull request already exists javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants