feat(a11y): accessibility audit, high contrast, i18n foundation, skip nav (M17.1-M17.8)

- Keyboard navigation: useFocusTrap() for modals, useRovingTabindex() for grids
- ARIA audit: composables for focus trap and roving tabindex patterns
- High contrast mode: @media (prefers-contrast: more) + .high-contrast class
- i18n foundation: en/es/fr locale files, useI18n() composable with auto-detect
- RTL layout support: dir attribute toggling based on locale
- Dyslexia-friendly font: .font-dyslexia CSS class with OpenDyslexic support
- Skip navigation link: .skip-nav CSS with focus-visible positioning

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-04 00:57:37 +00:00
co-authored by Claude Opus 4.6
parent 85936d3005
commit 725f629f69
7 changed files with 506 additions and 0 deletions
+54
View File
@@ -842,6 +842,60 @@ input:focus-visible {
}
}
/* ===== HIGH CONTRAST MODE ===== */
@media (prefers-contrast: more) {
.glass,
.glass-strong,
.glass-card {
border-color: rgba(255, 255, 255, 0.5);
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
.text-white\/90,
.text-white\/80,
.text-white\/70 {
color: white !important;
}
}
.high-contrast .glass,
.high-contrast .glass-strong,
.high-contrast .glass-card {
border-color: rgba(255, 255, 255, 0.5);
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
/* ===== SKIP NAVIGATION ===== */
.skip-nav {
position: absolute;
top: -100%;
left: 0;
z-index: 9999;
padding: 8px 16px;
background: #F7931A;
color: #000;
font-weight: bold;
font-size: 14px;
text-decoration: none;
border-radius: 0 0 8px 0;
}
.skip-nav:focus {
top: 0;
}
/* ===== DYSLEXIA FONT ===== */
.font-dyslexia {
font-family: 'OpenDyslexic', sans-serif;
letter-spacing: 0.05em;
line-height: 1.6;
}
/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {