Screen Reader Announcement Simulator

Paste HTML and preview what JAWS or NVDA would announce per element

Ad placeholder (leaderboard)

The Screen Reader Announcement Simulator gives developers a fast preview of how JAWS or NVDA would speak each interactive element, landmark, and heading in a block of HTML. It will not replace testing with a real screen reader, but it catches the most common announcement bugs — missing names, wrong roles, and meaningless link text — before you ever open one.

How it works

  1. Parse and select. The HTML is parsed and the tool walks every focusable control, landmark element, heading, image, and element carrying an explicit role.
  2. Compute the role. Each element gets a role: an explicit role attribute if present, otherwise the implicit role from its tag and type (an a[href] is a link, an input[type=checkbox] is a checkbox, a nav is a navigation landmark, and so on).
  3. Compute the accessible name. Following a subset of the accessible name algorithm — aria-labelledby, then aria-label, then associated label / alt / text content — the tool derives the name the reader would speak.
  4. Assemble the announcement. Name, role, and state (checked, pressed, expanded, disabled, heading level) are combined into the spoken string, and any problems are flagged.

Example

The markup <button aria-pressed="true">Mute</button> is announced as “Mute, button, pressed”, while <img src="logo.png" alt=""> is silent because an empty alt marks it decorative.

Tips and notes

  • An element announced as “(no accessible name), button” needs an aria-label or visible text before it is usable.
  • Replace generic link text with something descriptive — “Read the accessibility report” rather than “Read more”.
  • Verbosity settings change what real readers speak; use this as a structural check, then confirm the live experience with NVDA, JAWS, or VoiceOver.
Ad placeholder (rectangle)