Disclosure
Organising content · researchedA single summary line that expands to reveal extra content only when the person wants it.
atom · also called Details, Collapsible
Carbon has no stand-alone single disclosure (ExpandableTile is closest); HTML calls it details/disclosure.
Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.
Ant Design
Collapse superset native: no antd 6.6.5- Variants
- bordered, ghost
- Sizes
- large, medium, small
- States documented
- disabled
- Accessibility guidance
- no
Index said not shipped; it missed this. Collapse is a stack of expandable panels (div-based, header role=button; accordion mode uses tablist/tab); a single panel works as a disclosure. accordion prop limits to one open panel.
1 corrected on re-read
- states_documented: null → ["disabled"] Collapse/panel API: collapsible accepts header|icon|disabled
Carbon
Accordion item variant native: partly @carbon/react 1.117.0- Variants
- flush alignment, icon alignment (start or end)
- Sizes
- sm, md, lg
- States documented
- hover, focus, disabled
- Accessibility guidance
- yes
Index said not shipped. A single AccordionItem is a li with a button toggling the panel (no details element); Carbon has no standalone disclosure, only the Accordion list of them. A useDisclosure hook (Disclosure/index.tsx) exists but is not a component. Docs also have a disclosures pattern page.
4 corrected on re-read
- variants: null → ["flush alignment","icon alignment (start or end)"] Accordion usage 'Alignment': flush, icon alignment; docs name no variants of a single item
- sizes: null → ["sm","md","lg"] Accordion style 'Sizes' table: Small, Medium, Large header
- states_documented: null → ["hover","focus","disabled"] Usage: collapsed/expanded plus interactive states focus, hover, disabled
- urls: {"docs_url":"https://carbondesignsystem.com/components/accordion/usage/","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/Accordion"} → {"docs_url":"https://www.carbondesignsystem.com/building-blocks/core/components/accordion/guidelines","code_url":"https://github.com/carbon-design-system/carbon/tree/main/packages/react/src/components/Accordion"} docs 200 after redirect to https://www.carbondesignsystem.com/building-blocks/core/components/accordion/guidelines; code URL 200
GOV.UK
Details native: yes govuk-frontend 6.5.1- Variants
- —
- Sizes
- —
- States documented
- default, hover, focus
- Accessibility guidance
- no
Renders a native details/summary element. Docs page compares details, accordion and tabs.
1 corrected on re-read
- states_documented: ["default","focus"] → ["default","hover","focus"] scss has :hover and :focus on summary; page shows default and expanded
Material Web
Checked docs/components (20 component pages), the repo top-level dirs, labs/, labs/gb/components and the installed 2.5.0 package. No details/accordion/expansion element in the component dirs or labs.
Primer
Details native: yes @primer/react 38.40.1Spectrum
Disclosure native: no @spectrum-web-components/button 1.12.4- Variants
- —
- Sizes
- S, M, L, XL
- States documented
- —
- Accessibility guidance
- no
Implementations: S2 Disclosure and v3 Disclosure only (read from S2 Disclosure.mdx: size S to XL, density, isQuiet). React Aria Disclosure renders divs plus a button, not a details element. No spectrum.adobe.com page; SWC has Accordion item instead (accordion is installed at 1.12.4, but its item is the SWC counterpart, not Disclosure). MDX has no accessibility section.
USWDS
Accordion superset native: partly @uswds/uswds 3.14.0- Variants
- bordered (usa-accordion--bordered), icon-start, icon-end, multiselectable (data-allow-multiple)
- Sizes
- —
- States documented
- default
- Accessibility guidance
- yes
Index said not shipped. Accordion is a list of expandable sections (button with aria-expanded inside a heading, not details/summary); a single-item accordion does the disclosure job. Docs describe multiselectable use; no standalone single disclosure.
1 corrected on re-read
- variants: ["bordered (usa-accordion--bordered)","icon-start","icon-end"] → ["bordered (usa-accordion--bordered)","icon-start","icon-end","multiselectable (data-allow-multiple)"] docs variants table lists bordered, icon-start, icon-end; multiselectable preview exists
Platform facts
Anatomy
- disclosure button — APG: element with role button that shows and hides the content; HTML summary.
- disclosure content — APG: 'a section of content whose visibility is controlled by the button'.
- indicator (arrow/triangle) optional — APG: button 'often styled' with a right-pointing arrow collapsed, down when open; HTML details draws a triangle by default (MDN).
Keys the APG binds
- Enteractivates the disclosure control and toggles the visibility of the disclosure content.
- Spaceactivates the disclosure control and toggles the visibility of the disclosure content.
The seven states
| default | Collapsed (aria-expanded false) or expanded. |
|---|---|
| hover | Pointer-only CSS state; not defined by APG or HTML. |
| focus | Focus is on the disclosure button/summary. |
| active | Pressed state while the pointer or key is down; CSS :active. Not defined by APG. |
| disabled | n/a — Not defined by APG Disclosure or HTML details. |
| error | n/a — Not defined. |
| loading | n/a — Not defined. |
Every cell was read twice, the second time from raw sources by a separate pass. 7 of 35 fields changed on the second read — open any “corrected” note to see what it said before.