Skip to content
Devix Open Source

What a screen reader actually hears

The same countdown three ways, in any language — and a running count of how often it would interrupt someone, against the every-second alternative.

Live preview
<div class="demo demo--wide">
  <div class="stage"><div id="face"></div></div>

  <div class="demo-row">
    <div class="demo-seg" id="variant" role="group" aria-label="Shape">
      <button type="button" data-variant="boxes" aria-pressed="true">boxes</button>
      <button type="button" data-variant="clock">clock</button>
      <button type="button" data-variant="words">words</button>
    </div>
    <button class="demo-btn demo-btn--ghost" id="soon">Restart at two minutes</button>
  </div>

  <div class="demo-row">
    <div class="demo-seg" id="locale" role="group" aria-label="Language">
      <button type="button" data-locale="" aria-pressed="true">English</button>
      <button type="button" data-locale="ar-EG">العربية</button>
      <button type="button" data-locale="ru">Русский</button>
      <button type="button" data-locale="ur">اردو</button>
      <button type="button" data-locale="de">Deutsch</button>
    </div>
  </div>

  <dl class="demo-kv" id="out"></dl>

  <p class="demo-hint">The digits are <code>aria-hidden</code> and a separate polite region speaks only at
    milestones. Wire the digits straight into <code>aria-live</code>, which is what every alternative
    leaves you to do, and the second number is what someone hears instead.</p>
</div>