diff --git a/cmd/pkgserver/ui/static/test.ts b/cmd/pkgserver/ui/static/test.ts index 7d3b91d0..d1d39197 100644 --- a/cmd/pkgserver/ui/static/test.ts +++ b/cmd/pkgserver/ui/static/test.ts @@ -303,6 +303,7 @@ export class DOMReporter implements Reporter { if (!parent) throwNotInDOMError("root"); for (const node of path) { let child: HTMLDetailsElement | null = null; + let summary: HTMLElement | null = null; let d: Element; outer: for (d of parent.children) { if (!(d instanceof HTMLDetailsElement)) continue; @@ -310,6 +311,7 @@ export class DOMReporter implements Reporter { if (!(s instanceof HTMLElement)) continue; if (!(s.tagName === "SUMMARY" && s.innerText === node)) continue; child = d; + summary = s; break outer; } } @@ -317,12 +319,13 @@ export class DOMReporter implements Reporter { child = document.createElement("details"); child.className = "test-node"; child.ariaRoleDescription = "test"; - const summary = document.createElement("summary"); + summary = document.createElement("summary"); summary.appendChild(document.createTextNode(node)); summary.ariaRoleDescription = "test name"; child.appendChild(summary); parent.appendChild(child); } + if (!summary) throw new Error("unreachable as assigned above"); switch (result.state) { case "failure": @@ -330,17 +333,18 @@ export class DOMReporter implements Reporter { child.classList.add("failure"); child.classList.remove("skip"); child.classList.remove("success"); + summary.setAttribute("aria-labelledby", "failure-description"); break; case "skip": if (child.classList.contains("failure")) break; child.classList.add("skip"); child.classList.remove("success"); + summary.setAttribute("aria-labelledby", "skip-description"); break; case "success": - if (!(child.classList.contains("failure") || - child.classList.contains("skip"))) { - child.classList.add("success"); - } + if (child.classList.contains("failure") || child.classList.contains("skip")) break; + child.classList.add("success"); + summary.setAttribute("aria-labelledby", "success-description"); break; } diff --git a/cmd/pkgserver/ui/test.html b/cmd/pkgserver/ui/test.html index ade2c20b..4e0f5399 100644 --- a/cmd/pkgserver/ui/test.html +++ b/cmd/pkgserver/ui/test.html @@ -15,6 +15,10 @@ failed.

+ + + +