Skip to content

fix: remove aria-hidden from DOM renderer row container#5885

Open
jpavonabian wants to merge 1 commit into
xtermjs:masterfrom
jpavonabian:master
Open

fix: remove aria-hidden from DOM renderer row container#5885
jpavonabian wants to merge 1 commit into
xtermjs:masterfrom
jpavonabian:master

Conversation

@jpavonabian
Copy link
Copy Markdown

@jpavonabian jpavonabian commented May 20, 2026

Summary

  • Removes aria-hidden="true" from _rowContainer (.xterm-rows) in DomRenderer.ts
  • The DOM renderer renders actual text in the DOM as divs/spans — screen readers can read it directly once the attribute is removed
  • _selectionContainer keeps its aria-hidden="true" (correct — it is a visual-only overlay)
  • The screenReaderMode option and AccessibilityManager are unchanged and continue to provide an enhanced experience (live region, structured accessible tree) when explicitly enabled

Motivation

aria-hidden="true" was unconditionally set on the row container, making all terminal output completely invisible to screen readers when screenReaderMode is false (the default). Since AccessibilityManager only activates when screenReaderMode: true, the default configuration left screen reader users with zero access to terminal output.

Accessibility should not depend on the embedding developer knowing to opt in via screenReaderMode.

Closes #5881

The row container was unconditionally hidden from screen readers via
aria-hidden=\"true\", making all terminal output inaccessible. Since the
DOM renderer renders actual text in the DOM, removing this attribute is
sufficient to restore screen reader access.
The screenReaderMode option and AccessibilityManager remain unchanged and continue to provide an enhanced experience (live region, structured tree) when explicitly enabled.
Fixes Issue xtermjs#5881
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.

aria-hidden on row container makes DOM renderer output inaccessible to screen readers

1 participant