forked from molecule-ai/molecule-core
- CreateWorkspaceDialog: replace plain div modal with @radix-ui/react-dialog (focus-trap, Escape-to-close, aria-labelledby auto-wired); tier selector uses role=radiogroup/radio + aria-checked; error uses role=alert; required fields annotate with sr-only "(required)" - SidePanel: WAI-ARIA tablist pattern — role=tablist + aria-label, role=tab + aria-selected + aria-controls + id, roving tabIndex (0/−1), ArrowRight/Left/Home/End keyboard nav with wrap, role=tabpanel + id + aria-labelledby on content area, tab icons are aria-hidden - TemplatePalette: loading and empty-state divs gain role=status + aria-live=polite - Canvas: sr-only role=status live region announces workspace count to screen readers - Tests: 7 new a11y tests for CreateWorkspaceDialog (Radix role=dialog, aria-labelledby, data-state, Cancel close, role=alert validation, role=radio tier); 12 new tab tests for SidePanel (tablist, 12 tabs, aria-selected, roving tabIndex, aria-controls, tabpanel, ArrowRight/Left/Home/End) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| e2e | ||
| public | ||
| src | ||
| .env.example | ||
| Dockerfile | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.js | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
| vitest.config.ts | ||