Skip to content

Comments

Fix accessibility issues, update to React 19#131

Merged
rtivital merged 14 commits intomasterfrom
react-19
Jan 27, 2026
Merged

Fix accessibility issues, update to React 19#131
rtivital merged 14 commits intomasterfrom
react-19

Conversation

@rtivital
Copy link
Member

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request aims to fix accessibility issues and update to React 19. The PR adds comprehensive accessibility improvements across numerous UI components and introduces a testing infrastructure with Jest and jest-axe for automated accessibility testing.

Changes:

  • Added Jest testing infrastructure with accessibility testing using jest-axe
  • Added aria-label attributes to interactive elements (buttons, inputs, sliders, progress bars)
  • Added alt text to Avatar and Image components throughout the codebase
  • Added test files for all components with accessibility validation

Reviewed changes

Copilot reviewed 195 out of 197 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
package.json Updated dependencies for React 19, added testing libraries (Jest, Testing Library, jest-axe)
jest.config.js, jest.setup.js Jest configuration and setup for testing environment
test-utils/* Custom render utilities and axe wrapper for accessibility testing
lib/*/**.tsx Accessibility improvements: aria-labels, alt attributes, and semantic markup
lib/*/**.test.tsx New test files with accessibility validation for all components
lib/*/**.module.css Styling updates including new CSS variable usage

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 143 to 145
{items.map((item) => (
<Tabs.Panel value={item.key as string} key={item.key} />
))}
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The items array contains React elements (Tabs.Tab components), not objects with a 'key' property. Attempting to access item.key will fail. The Tabs.Panel components should use the same tab value strings from the tabs array instead. This code will cause a runtime error.

Copilot uses AI. Check for mistakes.
Comment on lines +88 to +93
<Table.Th w={40} aria-label="Select all rows">
<Checkbox
onChange={toggleAll}
checked={selection.length === data.length}
indeterminate={selection.length > 0 && selection.length !== data.length}
aria-label="Select all rows"
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The aria-label "Select all rows" is specified twice - once on the Table.Th element and once on the Checkbox itself. This creates redundant ARIA labels. Remove the aria-label from the Table.Th element as the Checkbox already has the appropriate label.

Copilot uses AI. Check for mistakes.
Comment on lines 10 to 16
<Checkbox
checked={value}
onChange={() => {}}
tabIndex={-1}
onChange={(event) => onChange(event.currentTarget.checked)}
size="md"
mr="xl"
styles={{ input: { cursor: 'pointer' } }}
aria-hidden
/>
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Checkbox is missing an accessible label. While the component is wrapped in a label element, the Checkbox itself should have a label prop (e.g., label="@mantine/core") or an aria-label to be properly accessible to screen readers.

Copilot uses AI. Check for mistakes.
Comment on lines 8 to 10
export async function renderWithAct(ui: React.ReactElement) {
return render(ui);
}
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The renderWithAct function is declared as async but doesn't perform any asynchronous operations. With React 19, the act() wrapper is no longer needed in most cases as updates are handled automatically. This function should either remove the async keyword or properly handle async rendering if that's the intent.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@rtivital rtivital merged commit 459dbea into master Jan 27, 2026
1 check passed
@rtivital rtivital deleted the react-19 branch January 27, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant