Skip to content

[Fix] Session cards trigger an accessibility audit violation on actor avatars - #3095

Merged
daniel-lxs merged 1 commit into
developfrom
fix/session-actor-avatar-a11y-20260922
Sep 22, 2026
Merged

daniel-lxs merged 1 commit into
developfrom
fix/session-actor-avatar-a11y-20260922

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. Follow up by mentioning @roomote-roomote, in the web UI, or in Telegram.

Related issue

Not applicable: this is an internally authorized accessibility fix.

Why this PR exists

  • A maintainer explicitly invited this PR in the linked issue or discussion
  • I am a maintainer / this is internal Roomote work

What changed

Session cards now keep actor avatars decorative when the adjacent actor text already names the session owner. User avatars use the existing empty-alt convention, and automation avatars are hidden from the accessibility tree instead of exposing an invalid label on a generic element. The visible avatar layout and actor text are unchanged, while screen readers receive one actor announcement from the existing card metadata.

How it was tested

  • Added focused SessionCard coverage for user and automation avatar semantics; the focused suite passes 14/14.
  • The full @roomote/web client suite passes 329 files and 3007 tests.
  • @roomote/web typecheck, lint, and format checks pass; pnpm lint:pre-push passes oxlint, residual lint, 27-package fast typechecks, and Knip.
  • Authenticated local /sessions reproduction dropped the serious aria-prohibited-attr violation on 7 avatar nodes; targeted card axe checks show no instance of that rule, and the accessibility tree keeps the actor text without an avatar announcement.
  • The original visual-proof handoff timed out. The follow-up validation below resolves that gap; this PR is non-draft.

Checklist

  • The PR title follows the repo convention: [Fix], [Feat], [Improve], [Refactor], [Docs], or [Chore] followed by a user-facing description
  • This PR is small and scoped to one change
  • pnpm lint and pnpm check-types pass locally
  • I added tests or included a clear manual validation note above
  • I removed secrets, tokens, private keys, and customer data from code, logs, and screenshots
  • If this change should appear in the changelog, I ran pnpm changeset

Follow-up validation

Fresh authenticated product checks on unchanged head 9553899f compared current develop with this PR using loaded-image, missing-image fallback, automation-owned, and current-viewer avatar cards. The avatar labels disappear from the accessibility tree while the adjacent actor text, unread indicator, card links, and action controls remain available. Desktop and 390×844 mobile layouts were inspected; all four card dimensions matched the baseline and keyboard activation still opened the correct session.

All 23 focused SessionCard and Avatar tests, web fast typechecking, scoped lint, and formatting passed. This follow-up inspected rendered DOM and browser accessibility semantics; it does not claim a new full-page axe audit or screen-reader audio test.

Screenshots

Original author captures, recovered and visually inspected as references alongside the fresh local validation above. These are not captures of the additional follow-up fixtures.

Sessions desktop layout

Sessions mobile layout

@roomote-community

roomote-community Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

Reviewed 9553899

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 22, 2026 06:11

@daniel-lxs daniel-lxs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Verified the exact head against current develop using loaded-image, missing-image fallback, automation-owned, and current-viewer avatar states. Redundant avatar labels disappear from the browser accessibility tree while adjacent actor text, unread indicators, and card controls remain available. Desktop/mobile card geometry is unchanged and keyboard navigation still works. All 23 focused SessionCard/Avatar tests, web typecheck, scoped lint, and formatting passed.

@daniel-lxs
daniel-lxs merged commit 7b2450c into develop Sep 22, 2026
17 checks passed
@daniel-lxs
daniel-lxs deleted the fix/session-actor-avatar-a11y-20260922 branch September 22, 2026 21:34
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.

1 participant