Skip to content

a11y | A10 persistent conversation heading - #78

Merged
BrianGenisio merged 2 commits into
mainfrom
fix/a11y-a10-persistent-h1
Aug 12, 2026
Merged

a11y | A10 persistent conversation heading#78
BrianGenisio merged 2 commits into
mainfrom
fix/a11y-a10-persistent-h1

Conversation

@BrianGenisio

Copy link
Copy Markdown
Contributor

Summary

Closes #65 (A10). The only <h1> was empty-state "What's on your mind?", so once messages appeared the outline started at the sidebar <h2>History.

Changes

  • Persistent, visually hidden <h1 id="conversationHeading"> inside <main>, kept in sync with the active session title (New conversation until a title exists).
  • Empty-state marketing copy is a <p> with the same visual class, so the document has exactly one <h1> in both empty and populated states.
  • DOM tests cover empty, populated, and New chat. CI still only axe-scans empty + settings, so the populated heading is asserted in unit tests rather than the baseline.

Test plan

  • npm test
  • Empty state: one h1 (session title or "New conversation"); "What's on your mind?" is visible but not a heading
  • After sending a message: still one h1, now the session title; empty state gone
  • New chat updates the h1 to "New conversation"
  • Light and dark (visual empty-state copy unchanged)
  • Confirm axe baseline does not grow (page-has-heading-one is not in the empty-state scan today)

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 31a4a360-2a4f-4fba-89f2-4d10bbf701c5

📥 Commits

Reviewing files that changed from the base of the PR and between 073d43a and 613166c.

📒 Files selected for processing (4)
  • a11y-audits/8-5-26/wave-4-plan.md
  • public/app.js
  • public/index.html
  • tests/dom/render.test.js

📝 Walkthrough

Walkthrough

The change adds a persistent, visually hidden conversation-level h1. The heading reflects the active session title and falls back to “New conversation.” The empty-state prompt is now a paragraph. Synchronization runs during configuration application and sidebar rendering. DOM tests cover empty conversations, populated conversations, and starting a new chat. The Wave 4 issue map updates the A10 and A12 ownership statuses.

Possibly related PRs

Suggested reviewers: aimemp


Comment @coderabbitai help to get the list of available commands.

Co-authored-by: Cursor <cursoragent@cursor.com>
@BrianGenisio
BrianGenisio merged commit 58e57e4 into main Aug 12, 2026
1 of 2 checks passed
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.

[a11y][A10] No h1 once a conversation starts

1 participant