Quality
Every item is measured, and the results are public
Most libraries say they are accessible. We load each of the 477 items in a real browser and publish what happened, including the ones that failed. Last run: October 12, 2026.
- items measured
- 477
- examples loaded
- 1,032
- page loads, across themes, widths and directions
- 7,224+
- items with a failing check
- 0
What is checked
A check that does not apply to an item (a hero has no keyboard controls) is marked not applicable and left out of its score, not counted as a pass.
Accessibility scan
axe-core finds no serious or critical accessibility violations, in light and dark.
477 of 477 pass
Small screens
No sideways scrolling at 1280, 390 and 360 pixels wide.
477 of 477 pass
Reduced motion
With reduced motion on, nothing keeps animating.
477 of 477 pass
Right to left
Mirrored for right-to-left languages, the layout is the reflection of the left-to-right one.
412 of 412 pass
Clean console
Loading the example logs no errors to the browser console.
477 of 477 pass
Keyboard
Pressing Tab moves through the controls and each one shows a visible change when focused.
395 of 395 pass
Loading, empty and error
Loading, empty and error views exist for every item that can have them.
70 of 70 pass
Automated tests
The item ships with a test you can run (informational for Pro blocks, which are tested in batches).
407 of 407 pass
What did not pass
Nothing failed in the last run.
What these numbers do not tell you
- Automated tools find only a part of accessibility problems. A pass means axe and our keyboard pass found nothing, not that the item has been used with a screen reader. We have not done a manual screen reader pass on every item.
- The keyboard check confirms that focus moves and is visible. It does not judge whether the order makes sense.
- Right-to-left is scored by comparing the layout with its mirror image, which finds physical-direction mistakes but not translation or typography problems.
- Measured on Chromium. Other browsers can differ.
- The numbers describe the version shown on each page. After you edit a component they describe ours, not yours.
Hold your own app to the same bar
The same engine is in the command line tool and the MCP server, so you or your AI agent can check the app you build with these components. Read how it works.
npx @ballmac/cli checkpnpm quality --filter button,dialog