fix(ui): complete P5-00 shell readiness gates

This commit is contained in:
cesnimda
2026-09-21 21:38:11 +02:00
parent c325eb68c6
commit 926f2e5164
52 changed files with 6630 additions and 64 deletions
@@ -52,12 +52,10 @@ async function scan(page: Page, info: TestInfo, name: string, dialog = false) {
if (dialog) axe = axe.include('[role="dialog"]');
const result = await axe.analyze();
await info.attach(`${name}-axe`, { body: JSON.stringify({ violations: result.violations, incomplete: result.incomplete }, null, 2), contentType: "application/json" });
// P4-02-D01: unchanged command List renders button divs directly under a ul.
// Record the full result; only this precise existing structural defect is deferred.
const unexpected = result.violations.filter(v => !(name === "command" && v.id === "list" && v.nodes.every(n => n.html.startsWith("<ul ") && n.html.includes("MuiList-root"))));
// Dialogs gate all other rules; loaded pages gate naming and inherited contrast.
// P5-00 repairs the command-list boundary; dialogs now gate every rule.
// Loaded pages still gate naming and inherited contrast.
// Preview scrolling and wider workspace structure remain separately recorded debt.
expect(dialog ? unexpected : result.violations.filter(v => ["label", "select-name", "aria-input-field-name", "aria-dialog-name", "color-contrast"].includes(v.id))).toEqual([]);
expect(dialog ? result.violations : result.violations.filter(v => ["label", "select-name", "aria-input-field-name", "aria-dialog-name", "color-contrast"].includes(v.id))).toEqual([]);
}
for (const [mode, language, width] of [["light", "en", 1440], ["dark", "nb", 1440], ["light", "nb", 390], ["dark", "en", 390]] as const) {