Closes #251
This Pull Request addresses the high-severity <Accessibility> issue detailed in #251. I've conducted a manual comprehensive audit with axe-core standards and ensured semantic markup, screen reader capabilities, and visual contrast criteria have been satisfied.
- Semantic Navigation: Wrapped the main application menu in
<nav id="sidebar-navigation">and attached an explicitaria-label. - Keyboard Navigation Enhancements:
- Developed and implemented a "Skip to main content" mechanism (
#main-content) that only manifests on keyboard focus withindashboard-layout.tsxto enable seamless keyboard UX. - Supplied prominent explicit
focus-visibleoutline rings to interactive components like buttons and sidebar navigation tags ensuring strict keyboard-compliance.
- Developed and implemented a "Skip to main content" mechanism (
- Dynamic Content & Announcer: Appended an
aria-live="polite"container that actively announces whenever the mobile sidebar opens/closes ensuring synchronous awareness for screen reader users. - Valid ARIA Definitions: Integrated accurate
aria-expanded,aria-controls, andaria-hiddentags globally allowing for assistive technologies to digest accurate states. Purely administrative illustrations (e.g.lucide-reacticons) were accurately hidden utilizingaria-hidden="true". - Contrast Ratios Enforcement: Hardened generic themes inside
globals.css—specifically dimming<muted-foreground>and<secondary-foreground>in the light theme so that every single piece of foreground text effortlessly clears the4.5:1 minimum WCAG bounds.
- Confirmed application renders successfully
- Run
npm install --legacy-peer-deps && npm run buildverified completely intact. -
axe-coresemantic violations resolved cleanly.
(Optional visual proof can be attached below before submitting)