fix(ui): disclose analysis-run digests from the keyboard (v0.84.3) - #135
Conversation
aria-label on the digest paragraph hid the prefixes from assistive technology. Move the label to a group, keep prefixes as visible text, and put the full digest on hover. Tell the operator that a cutoff title opens the live body so they compare it with the run clock. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Hover title tooltips were the only way to read a full digest, so keyboard and assistive-technology operators could not match the API payload. Turn each prefix into an APG disclosure button. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
The ontology branch landed audible prefixes and pending-run create. Keep those slices and disclose full digests from the keyboard as v0.85.1 so the operator can match the API payload without a hover. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
There was a problem hiding this comment.
Closed digest panels leave the document, so aria-controls points at nothing, and the prefix button can fall under the WCAG 2.2 SC 2.5.8 24px target. Those two gaps are the remaining buyer-facing issues on this slice.
Prefer #139 on feat/role-responsibility-agent-ontology. That head keeps each panel in the document with hidden, sizes the prefix to 24px, and changes the next action to “Match the revealed digest to the API payload” after activation.
Do not merge this draft in parallel with #139. #131 still owns the write-clock comparison. Independent review required; this automation will not self-approve.
Sent by Cursor Automation: Fix Issues
| {open ? ( | ||
| <code id={panelId} className="analysis-run-digest-full"> | ||
| {digest} | ||
| </code> | ||
| ) : null} |
There was a problem hiding this comment.
When open is false this panel is unmounted, so aria-controls on the button points at an id that is not in the document. WAI-ARIA APG Disclosure keeps the controlled element in the tree and toggles hidden (or equivalent). Keyboard/AT operators who follow the control relationship then have nowhere to land.
#139 keeps <code hidden={!open}> in place so the target exists while collapsed.
| .analysis-run-digest-toggle { | ||
| background: none; | ||
| border: none; | ||
| padding: 0; |
There was a problem hiding this comment.
padding: 0 plus .post-meta at 0.85rem lets the pointer target drop under 24×24 CSS pixels. WCAG 2.2 SC 2.5.8 applies here: these are standalone controls, not text in a sentence.
#139 sets --lw-target-min: 24px and a matching inline minimum on the button.


Why this exists
#127 keeps digest prefixes audible, but the only full-digest path is a native
titletooltip plus a visually-hidden “Hover a prefix” sentence. Keyboard and assistive-technology operators cannot match the API payload (WCAG 2.2 SC 1.4.13).Change (v0.84.3)
Code/Configprefix is a WAI-ARIA APG disclosure button (aria-expanded, Enter/Space/click).<code>panel only after activation.#131 still owns the live write-clock comparison. #125 still owns
POST /api/analysis-runs. #129 still owns the Storybook runner; this PR only adds the inventory and tokens.Verification
cd frontend && pnpm run lint && pnpm run test && pnpm run build— 54 tests passed, including Enter to reveal the code digest, Space to reveal the configuration digest, and a list-open that must not leak either full value.Merge gates
feat/role-responsibility-agent-ontology(Role, responsibility, and agent ontology (v2.10.0) #74), notmain.mainbefore Role, responsibility, and agent ontology (v2.10.0) #74.References
World Wide Web Consortium. (2018). Accessible name and description computation 1.1 (W3C Recommendation). https://www.w3.org/TR/accname-1.1/
World Wide Web Consortium. (2024). Web content accessibility guidelines (WCAG) 2.2 (W3C Recommendation). https://www.w3.org/TR/WCAG22/
World Wide Web Consortium. (n.d.). Disclosure (show/hide) pattern. ARIA Authoring Practices Guide. https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/