Conversation
Closed
8 tasks
smeragoel
requested changes
Jun 29, 2026
smeragoel
left a comment
Member
There was a problem hiding this comment.
Nice work @karamba228! A few things, roughly in priority order:
-
Accessibility (CC assisted code suggestions)
- Scroll container isn't keyboard-scrollable: The
overflow-x-auto wrapperinTablehas notabIndex={0}/role="region"/aria-label, so when a static table overflows horizontally, a keyboard-only user can't scroll it (WCAG 2.1.1). Could we make the container focusable with an accessible name when it's scrollable? - Sortable
TableHeadisn't announced as operable: A<th>withonClick+tabIndexgets keyboard activation, but screen readers don't convey it as a control (norole="button"/inner <button>).aria-sortcommunicates the sort state but not that the header is actionable. The WAI-ARIA sortable-table pattern wraps the label in a real<button>which could be worth considering. aria-sortis inconsistent between tests and stories: The stories leave inactive sortable columnsaria-sort={undefined}, so assistive technology can't tell they're sortable; the test usesaria-sort="none". So we could make inactive-but-sortable headers "none" in the stories too.
- Scroll container isn't keyboard-scrollable: The
-
UX / design
- Hover is per-cell instead of per-row: For a data table, row-level hover should be the default since it improves scannability.
- Sort indicators use Unicode glyphs (↑ ↓ ↕) rather than lucide icons, which the rest of the system uses. lucide (ArrowUp/ArrowDown/ChevronsUpDown) would render consistently and stay on-system.
-
Stories
- No complete default story: Other components lead with a complete Default, but Table opens with Props and a header-only render. Could we add a complete Default (caption + header + body + footer) as the first story?
- Additional examples: Table with a footer, selected-row state, empty-state example would also be useful.
Member
|
Thanks for the changes @karamba228! A few additional things:
|
smeragoel
approved these changes
Jul 6, 2026
jbouder
reviewed
Jul 6, 2026
jbouder
left a comment
Contributor
There was a problem hiding this comment.
A few comments on the implementation:
- The header text looks too small
- Should the cell background be white, to match the design?
- I don't like this story, it has too much going on... 2 footers with 2 different background?
Member
|
jbouder
requested changes
Jul 6, 2026
jbouder
approved these changes
Jul 6, 2026
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.

Reference Issues or PRs
What does this implement/fix?
Put a
xin the boxes that applyTesting
Documentation
Access-centered content checklist
Text styling
H1or#in markdown).Non-text content
Any other comments?