Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
Contributor
PR Analysis Report
No new or modified components detected. Bundle Size Summary
Accessibility AuditStatus: 36 accessibility violation(s) found — 2 critical, 34 serious. Button pattern - 1 issue(s)
ChatComposer - 1 issue(s)
ChatComposerInput - 1 issue(s)
ChatReasoning - 1 issue(s)
ChatToolCalls - 1 issue(s)
Checkbox pattern - 1 issue(s)
CheckboxList - 1 issue(s)
ClickableCard - 1 issue(s)
CodeEditor - 1 issue(s)
CodeEditorPerf - 1 issue(s)
CodeEditorTheme - 1 issue(s)
CodeTheme - 1 issue(s)
DateRangeInput - 1 issue(s)
FileInput - 1 issue(s)
GridMasonry - 1 issue(s)
Heading - 1 issue(s)
Icon - 1 issue(s)
LogStream - 1 issue(s)
MediaTheme Auto - 1 issue(s)
PowerSearch - 1 issue(s)
ProgressBar - 1 issue(s)
Radio group pattern - 1 issue(s)
RadioList - 1 issue(s)
RichTextEditor - 2 issue(s)
SelectableCard - 1 issue(s)
Stepper - 1 issue(s)
TableGroupedRows - 1 issue(s)
TableTree - 1 issue(s)
Text - 1 issue(s)
Theme - 1 issue(s)
PopArt - 1 issue(s)
Thumbnail - 1 issue(s)
Timestamp - 1 issue(s)
Token - 1 issue(s)
Tokenizer - 1 issue(s)
Generated by PR Enrichment workflow | View full report |
cixzhang
marked this pull request as ready for review
September 19, 2026 22:15
cixzhang
requested review from
imdreamrunner and
josephfarina
as code owners
September 19, 2026 22:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Maintainer impact
People who use disclosure-style components need the exposed expanded state, controlled content, keyboard behavior, pointer behavior, and focus result to stay aligned. Contract authors and component maintainers now get one reusable failure signal instead of repeating partial assertions in each component.
Intended invariant
AST-020 governs accessibility contract authoring, AST-021 governs component binding, and the current Collapsible contract owns the first binding.
This PR preserves Collapsible runtime behavior and public API. It adds executable evidence only.
Change
Standalone Disclosure contract
disclosure.state.expandeddisclosure.relationship.controlsdisclosure.content.matches-statedisclosure.state.pointer-round-tripdisclosure.state.enter-round-tripdisclosure.state.space-round-tripdisclosure.state.survives-an-aborted-pressdisclosure.focus.stays-on-triggerEvery expectation has at least one deliberately violating fixture. The contract records an explicit owner and verification path for every remaining AST-020 checklist dimension.
First binding: standalone Collapsible
Component jsdom bindings use
expectAccessibilitySpec; fixture, browser, and aggregate-reporting paths usecheckAccessibilitySpec. Duplicate local assertions were removed only where the shared contract now provides the same or stronger proof.Evidence
pr-a11ypassed all 538 Chromium contract tests at9ea2ef6abfcdf9e3bafcb23db605fe82ea8f5853.Scope
Not adopted here: Accordion, CollapsibleGroup, Table, or SideNav. Generic button role, accessible name, focus navigation, and unavailable semantics remain owned by the button contract and existing Collapsible-local tests.
Open-work search found no competing standalone Disclosure contract. #6349 overlaps only shared package index/documentation files; #6232 is Table column-resize disclosure specification; #6065 is a Table template.
Testing
pnpm vitest run --project node internal/a11y-spec/src/patterns/disclosure.jsdom.test.tspnpm vitest run --project ui packages/core/src/Collapsiblepnpm -F @astryxdesign/a11y-spec typecheckpnpm -F @astryxdesign/core typecheckpnpm -F @astryxdesign/storybook typecheckpnpm check:repopnpm buildpnpm storybook:buildgit diff --checkExact reviewed head:
9ea2ef6abfcdf9e3bafcb23db605fe82ea8f5853.