Skip to content

fix(ui): disclose analysis-run digests from the keyboard (v0.84.3) - #135

Closed
cursor[bot] wants to merge 4 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-63c91e55-ff1e-43ff-b3e2-347510c30a5c-916b
Closed

fix(ui): disclose analysis-run digests from the keyboard (v0.84.3)#135
cursor[bot] wants to merge 4 commits into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-63c91e55-ff1e-43ff-b3e2-347510c30a5c-916b

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Why this exists

#127 keeps digest prefixes audible, but the only full-digest path is a native title tooltip 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)

  • Each Code / Config prefix is a WAI-ARIA APG disclosure button (aria-expanded, Enter/Space/click).
  • The button name stays the audible prefix. The full digest appears in a <code> panel only after activation.
  • Visible next action: “Activate a prefix to read the full digest and match the API payload.”
  • Design tokens cover meta opacity/size, digest gap, mono stack, and the focus ring.
  • The home list still hides digests even when the list JSON includes them.

#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

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/

Open in Web View Automation 

cursoragent and others added 3 commits August 16, 2026 15:52
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>
@cursor
cursor Bot requested a review from seonghobae August 16, 2026 15:58
@seonghobae
seonghobae changed the base branch from main to feat/role-responsibility-agent-ontology August 16, 2026 15:58
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>

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment on lines +34 to +38
{open ? (
<code id={panelId} className="analysis-run-digest-full">
{digest}
</code>
) : null}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread frontend/src/App.css
Comment on lines +116 to 119
.analysis-run-digest-toggle {
background: none;
border: none;
padding: 0;

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants