← Results

The entire report: 4 components, 50 scoring checks, none failing. Each check cites the clause it measures; the per-component pages carry the failure detail and the command that reproduces it.

Maintainer response

Findings were delivered privately on 2026-08-19 in this thread, with the adapter source and fourteen days to reply before publication. The combobox result is held back until its pattern match is settled, see the unverified note above.

No reply inside the notice period.

dialog · 100%full detail
Every check for the shadcn/ui dialog, with its verdict.
CheckVerdictSeverity
The control that opens the dialog has an accessible namedialog.trigger-has-accessible-namepassserious
The trigger can be reached with the Tab keydialog.trigger-is-focusablepassblocker
Pressing Enter on the focused trigger opens the dialogdialog.opens-on-enterpassblocker
The dialog exposes role=dialog or role=alertdialogdialog.has-dialog-rolepassserious
The dialog has an accessible namedialog.has-accessible-namepassserious
Focus moves into the dialog when it opensdialog.focus-moves-inpassblocker
Tab never reaches operable content behind the dialogdialog.focus-trapped-forwardpassblocker
Shift+Tab never reaches operable content behind the dialogdialog.focus-trapped-backwardpassblocker
Tab never leaves the dialog, even brieflydialog.tab-never-leaves-dialogpassmoderate
Escape closes the dialogdialog.escape-closespassserious
Closing the dialog returns focus to the triggerdialog.focus-restored-on-closepassserious
Content behind the dialog is hidden from assistive technologydialog.background-inertpassserious
The close control has an accessible namedialog.close-has-accessible-namepassmoderate
tabs · 100%full detail
Every check for the shadcn/ui tabs, with its verdict.
CheckVerdictSeverity
The tab container exposes role=tablisttabs.tablist-has-rolepassserious
Each tab exposes role=tabtabs.tabs-have-tab-rolepassserious
Each tab has an accessible nametabs.tab-has-accessible-namepassserious
The selected panel exposes role=tabpaneltabs.panel-has-tabpanel-rolepassserious
Exactly one tab is marked selectedtabs.selected-tab-communicatedpassserious
The panel takes its accessible name from its tabtabs.panel-labelled-by-tabpassmoderate
The tab references its panel with aria-controlstabs.tab-controls-panelpassmoderate
Unselected panels are hidden from assistive technologytabs.unselected-panels-not-exposedpassserious
Tab moves focus to the selected tabtabs.tab-key-reaches-selected-tabpassblocker
The tablist is a single stop in the tab sequencetabs.tablist-is-one-tab-stoppassserious
Right Arrow moves focus to the next tabtabs.arrow-moves-between-tabspassblocker
Keyboard navigation can select a different tabtabs.activation-selects-tabpassblocker
Selecting a tab reveals its paneltabs.activation-reveals-panelpassblocker
accordion · 100%full detail
Every check for the shadcn/ui accordion, with its verdict.
CheckVerdictSeverity
Each header control sits inside a headingaccordion.header-is-headingpassmoderate
Each header control exposes role=buttonaccordion.trigger-is-buttonpassserious
Each header control has an accessible nameaccordion.trigger-has-accessible-namepassserious
Collapsed sections expose aria-expanded=falseaccordion.collapsed-state-communicatedpassserious
The header control references its panel with aria-controlsaccordion.trigger-controls-panelpassmoderate
Collapsed panels are hidden from assistive technologyaccordion.collapsed-panel-not-exposedpassserious
Enter expands the focused sectionaccordion.enter-expandspassblocker
Space expands the focused sectionaccordion.space-expandspassserious
An expanded panel is exposed and reveals its contentaccordion.expanded-panel-exposedpassblocker
Tab moves between accordion headersaccordion.headers-are-tab-stopspassserious
Activating an expanded header collapses itaccordion.collapses-againpassserious

What this cannot tell you

A high score means no violations were detected by automated testing. It does not mean the component is accessible. Automated tests cannot judge whether a label is meaningful, whether a reading order makes sense, or whether the experience is usable with a screen reader. Those need human judgement and disabled users. This is a floor, not a ceiling.