Description
We've compiled multiple a11y issues based on the accessibility audits performed on timeliner (in both Avalon and standalone versions).
Some of these are rooted in material-ui components used in the timeliner code, e.g. MUI's slider and dialog components. These 2 are highlighted in the a11y issues compiled in the audits.
And looking at these components in the latest MUI version, these a11y issue seem to be fixed in the MUI code.
And this poses the question whether we should upgrade MUI in timeliner?
Going forward with the existing older version exposes the app to security vulnerabilities (these might not directly impact Avalon?), blocking access to bug fixes in MUI/ReactJS and other dependencies in Timeliner code, and making it more complex to upgrade in the future. At the same time we'll need to keep making fixes locally adding more code making it harder to maintain.
From my brief investigation the following dependencies will definitely need to be upgraded as a result of this migration. This would require a larger effort even if it's done in phases.
| Package |
Current |
Required for MUI v7 |
| React |
16.8.6 |
18.0.0+ |
| React-DOM |
16.8.6 |
18.0.0+ |
| React-Redux |
5.0.7 |
8.0.0+ (for React 18) |
And there maybe more minor dependencies that will need upgrading during migration, since we would be upgrading the base React version in timeliner.
Major breaking changes from a quick search;
In MUI,
- v3 -> v4
- Changes to React ref forwarding
- Style naming with respect to class-names
- JSS framework updates
- Changes to component APIs
- v4 -> v5
- Package renaming and installation
- Styling solution change (JSS to Emotion)
- Theme structure and API changes
- Some component-specific changes
- v5 -> v6
- Minimal breaking changes in MUI, however changes to platform and bundle sizes are applied in this upgrade
- v6 -> v7
- Changes to package structure
- Removal of deprecated components, styling, and APIs
- React 16 → 18,
ReactDOM.render() → ReactDOM.createRoot() and other related changes
- Changes to MUI's API and React upgrade might require class components to be converted into functional components
- Redux 5 -> 8, store setup and usage may need changes
Done Looks Like
Description
We've compiled multiple a11y issues based on the accessibility audits performed on timeliner (in both Avalon and standalone versions).
Some of these are rooted in
material-uicomponents used in the timeliner code, e.g. MUI's slider and dialog components. These 2 are highlighted in the a11y issues compiled in the audits.And looking at these components in the latest MUI version, these a11y issue seem to be fixed in the MUI code.
And this poses the question whether we should upgrade MUI in timeliner?
Going forward with the existing older version exposes the app to security vulnerabilities (these might not directly impact Avalon?), blocking access to bug fixes in MUI/ReactJS and other dependencies in Timeliner code, and making it more complex to upgrade in the future. At the same time we'll need to keep making fixes locally adding more code making it harder to maintain.
From my brief investigation the following dependencies will definitely need to be upgraded as a result of this migration. This would require a larger effort even if it's done in phases.
And there maybe more minor dependencies that will need upgrading during migration, since we would be upgrading the base React version in timeliner.
Major breaking changes from a quick search;
In MUI,
ReactDOM.render()→ReactDOM.createRoot()and other related changesDone Looks Like