Components › Records & data › Item list › Audit detail

Audit detail

canon

Expanded content of an Item list row that records what changed: field grid before → after, batch items, sent e-mail, note. Fills the row block slot; actions come from the caller.

Owner decision 19 Oct 2026: sub-component of the Item list family (candidate README had asked detail-block vs own family). Source acrm !5275 (K3-2, merged), approved prototype proto/asistent-audit@60ff4f48f (18 Oct 2026). The arrow is not drawn for e-mail recipient and subject (the prototype drew a stray "— →"); the narrow-row title wrapping rule lives in the audit page stylesheet, not here. Not yet AD-approved: no approvedAt, shown as beta/candidate until stamped. AD review 21 Oct 2026: returned for 3 fixes before canon. (1) ds/audit-detail.css still carries page-only rules (.acrm-audit-page .il-row .il-t, .il-col .acrm-audit-actor); move them to the audit page stylesheet. (2) .acrm-audit-empty duplicates the DS EmptyState (RULES §27) and is reused as the load-more wrapper; use EmptyState and drop the class. (3) AuditItems draws before→after as a text glyph while AuditChanges uses Icon arrow-right; unify on the Icon. Minor: the 2px mail rule should use a line token. All four fixed in acrm !5378 (merged 21 Oct 2026; page rules in pages/asistent-audit.css, DS EmptyState, load-more in .tlx-more, batch arrow = Icon arrow-right, var(--line-thick)); checked on dev 21 Oct at 1440/390 (rows expand, actor column, 0 JS errors; no batch row or empty filter in dev data, so those two were checked by tests only). AD-approved as canon 21 Oct 2026.

Used in 1 file · 1 area · 1× — pages/AsistentAuditPage

Keyboard

  • The detail has no focusable element of its own. Expanding is done by the chevron IconButton of the row, a real <button>: Tab reaches it, Enter or Space toggles.
  • Actions passed in actions (undo, "Open record") are real buttons in the tab order, after the row's chevron.

ARIA

  • The chevron carries aria-expanded and a label that names the action ("Show details" / "Hide details"); the detail is rendered only while open, so there is no hidden content to skip.
  • AuditChanges is a description list (dl / dt / dd): a screen reader announces the pairs field → value.
  • AuditItems is a ul of items; the "and N more" line is a plain li.
  • The arrow icon between before and after is decorative. The order (before, then after) carries the meaning.
  • The container sets aria-busy="true" while the batch items load, so the placeholder text "Loading…" is not announced as content.

Focus

  • Opening the detail does not move focus; focus stays on the chevron. Closing it leaves focus on the same chevron.
  • The foundation focus ring from ds.css applies to the buttons in actions.

Contrast

Computed from packages/ui/src/tokens/tokens.css:

  • .now, the batch name .n and the e-mail body use --fg — well above AA in both themes.
  • dt, .was, .c and the e-mail label use --fg-muted, which is 2.85:1 in the light theme — below AA for text. The same deliberate cost as the Item list: hierarchy is carried by colour alone.
  • The note uses --fg-secondary.

Known limits

  • .was is distinguished from .now by strike-through and colour only (text-decoration, not <s> / <del>), so a screen reader does not say "removed". The word order and the arrow still read "before → after", but the roles are not announced.
  • Long batch lines are clipped with an ellipsis; the full text is not in a title.
  • Nothing announces that the batch items have arrived after the row was opened beyond the end of aria-busy.

Source: docs/item-list/audit-detail.a11y.md · GitLab