How to build an accessible Skeleton in React

Presentational by role — the placeholder shapes carry no meaning; the surrounding region should expose busy/loading state so assistive tech is not left guessing

When to use a Skeleton

When not to use it

Accessibility

Role none, verified at WCAG 2.2-AA.

Common mistakes

Avoid: Leaving Skeleton mounted after data has loaded

Prefer: Swap Skeleton for the real content once data resolves

A persistent skeleton signals perpetual loading and traps assistive tech in a pending state

Example

<Skeleton lines={3} />

See the full Skeleton reference →