From a490f935e3711c86c2db9e74b9e34ca01562fc8d Mon Sep 17 00:00:00 2001
From: Molecule AI Core-UIUX
Date: Sun, 17 May 2026 05:43:59 +0000
Subject: [PATCH 1/2] fix(canvas/app): WCAG 2.4.7 focus-visible on error-state
recovery buttons
Add focus-visible ring to three buttons in app/page.tsx (hydration
error retry x2, 503 recovery reload) and three in app/orgs/page.tsx
(error retry, sign-out, create-org). All are keyboard-accessible
interactive targets with no prior focus indicator.
Co-Authored-By: Claude Opus 4.7
---
canvas/src/app/orgs/page.tsx | 6 +++---
canvas/src/app/page.tsx | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/canvas/src/app/orgs/page.tsx b/canvas/src/app/orgs/page.tsx
index 81af4fb8f..298ff3aaf 100644
--- a/canvas/src/app/orgs/page.tsx
+++ b/canvas/src/app/orgs/page.tsx
@@ -118,7 +118,7 @@ export default function OrgsPage() {
Error: {error}
@@ -212,7 +212,7 @@ function AccountBar({ session }: { session: Session }) {
// edge cases (jsdom, blocked navigation) where it doesn't.
setSigningOut(false);
}}
- className="rounded border border-line bg-surface-card px-3 py-1 text-xs text-ink hover:bg-surface-card disabled:opacity-50"
+ className="rounded border border-line bg-surface-card px-3 py-1 text-xs text-ink hover:bg-surface-card disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-1"
aria-label="Sign out"
>
{signingOut ? "Signing out…" : "Sign out"}
@@ -439,7 +439,7 @@ function CreateOrgForm({ onCreated }: { onCreated: (slug: string) => void }) {
diff --git a/canvas/src/app/page.tsx b/canvas/src/app/page.tsx
index 28cb37d96..f854ed770 100644
--- a/canvas/src/app/page.tsx
+++ b/canvas/src/app/page.tsx
@@ -103,7 +103,7 @@ export default function Home() {
setHydrationError(null);
window.location.reload();
}}
- className="px-4 py-2 bg-accent-strong hover:bg-accent text-white rounded-md text-sm"
+ className="px-4 py-2 bg-accent-strong hover:bg-accent text-white rounded-md text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
>
Retry
@@ -134,7 +134,7 @@ export default function Home() {
setHydrationError(null);
window.location.reload();
}}
- className="px-4 py-2 bg-accent-strong hover:bg-accent text-white rounded-md text-sm"
+ className="px-4 py-2 bg-accent-strong hover:bg-accent text-white rounded-md text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
>
Retry
@@ -176,7 +176,7 @@ brew services start redis`}
--
2.52.0
From 312bba02d48b59e8a09b4972457d0856a7f5f946 Mon Sep 17 00:00:00 2001
From: Molecule AI Core-UIUX
Date: Sun, 17 May 2026 06:06:51 +0000
Subject: [PATCH 2/2] chore: re-trigger SOP after PR creation
--
2.52.0