diff --git a/canvas/src/components/tabs/ConfigTab.tsx b/canvas/src/components/tabs/ConfigTab.tsx index 494cec00..20338cd8 100644 --- a/canvas/src/components/tabs/ConfigTab.tsx +++ b/canvas/src/components/tabs/ConfigTab.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState, useEffect, useCallback, useRef } from "react"; +import { useState, useEffect, useCallback, useRef, useId } from "react"; import { api } from "@/lib/api"; import { useCanvasStore } from "@/store/canvas"; import { type ConfigData, DEFAULT_CONFIG, TextInput, NumberInput, Toggle, TagList, Section } from "./config/form-inputs"; @@ -170,6 +170,14 @@ export function ConfigTab({ workspaceId }: Props) { } }; + // Stable IDs for bare label↔control pairs (WCAG 1.3.1) + const descriptionId = useId(); + const tierId = useId(); + const runtimeId = useId(); + const effortId = useId(); + const taskBudgetId = useId(); + const sandboxBackendId = useId(); + const isDirty = rawMode ? rawDraft !== originalYaml : toYaml(config) !== originalYaml; if (loading) { @@ -214,8 +222,9 @@ export function ConfigTab({ workspaceId }: Props) {
update("name", v)} />
- +