How to build an accessible StreamingText in React

Plain text, never a live region, so a screen reader reads it on demand rather than being fed every character; the cursor is aria-hidden and blinks only under prefers-reduced-motion: no-preference

When to use a StreamingText

When not to use it

Accessibility

Role none, verified at WCAG 2.2-AA.

Common mistakes

Avoid: Wrapping StreamingText in aria-live

Prefer: Leave it silent and announce the finished reply once

A live region around typing text announces fragments on every frame

Example

<StreamingText text="Hello, I am cascivo." speed={3} />

See the full StreamingText reference →