From 17be61d10bdb4eb9af737da51d9967176c66337e Mon Sep 17 00:00:00 2001 From: Molecule AI Frontend Engineer Date: Fri, 17 Apr 2026 23:06:21 +0000 Subject: [PATCH] =?UTF-8?q?fix(canvas):=20align=20SkillsTab=20aria-label?= =?UTF-8?q?=20with=20spec=20=E2=80=94=20"Install=20from=20source=20URL"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrects the source-input aria-label wording to match the UIUX Cycle 4 spec exactly. Previous commit used "Install plugin from source URL"; spec says "Install from source URL" (matches the visible "Install from source" section heading). Updates the corresponding test assertions. No functional change. All 736 tests pass. Co-Authored-By: Claude Sonnet 4.6 --- canvas/src/components/__tests__/tabs.a11y.test.tsx | 8 ++++---- canvas/src/components/tabs/SkillsTab.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/canvas/src/components/__tests__/tabs.a11y.test.tsx b/canvas/src/components/__tests__/tabs.a11y.test.tsx index 471924ba..712555e0 100644 --- a/canvas/src/components/__tests__/tabs.a11y.test.tsx +++ b/canvas/src/components/__tests__/tabs.a11y.test.tsx @@ -115,7 +115,7 @@ describe("SkillsTab — aria-label on bare source input (WCAG 1.3.1)", () => { mockApiGet.mockResolvedValue([]); }); - it('install source input has aria-label="Install plugin from source URL"', async () => { + it('install source input has aria-label="Install from source URL"', async () => { render(); // The source input is inside the registry section (showRegistry=false initially). @@ -124,10 +124,10 @@ describe("SkillsTab — aria-label on bare source input (WCAG 1.3.1)", () => { fireEvent.click(installBtn); const input = screen.getByRole("textbox", { - name: /install plugin from source url/i, + name: /install from source url/i, }); expect(input).toBeDefined(); - expect(input.getAttribute("aria-label")).toBe("Install plugin from source URL"); + expect(input.getAttribute("aria-label")).toBe("Install from source URL"); }); it("install source input is a text input (not hidden)", async () => { @@ -137,7 +137,7 @@ describe("SkillsTab — aria-label on bare source input (WCAG 1.3.1)", () => { fireEvent.click(installBtn); const input = screen.getByRole("textbox", { - name: /install plugin from source url/i, + name: /install from source url/i, }); expect(input.tagName.toLowerCase()).toBe("input"); expect((input as HTMLInputElement).type).toBe("text"); diff --git a/canvas/src/components/tabs/SkillsTab.tsx b/canvas/src/components/tabs/SkillsTab.tsx index 77ef1f2f..132989df 100644 --- a/canvas/src/components/tabs/SkillsTab.tsx +++ b/canvas/src/components/tabs/SkillsTab.tsx @@ -232,7 +232,7 @@ export function SkillsTab({ data }: Props) {
setCustomSource(e.target.value)} onKeyDown={(e) => {