Accessibility fixes and form session expiration fix

- Fix color contrast: change #179e83 to #148069 for WCAG AA compliance
- Add ARIA attributes to mobile nav toggle (aria-expanded, aria-controls)
- Implement focus trap on mobile menu with Escape key support
- Add aria-hidden to decorative hero SVG
- Add ARIA validation to contact form (aria-invalid, aria-describedby)
- Fix touch target sizes (notification close button 48x48px)
- Fix form session expiration by relaxing timestamp validation
- Add cache busting (v1.1.0) to JS/CSS files
- Update service worker cache version to force refresh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
root
2026-01-12 20:22:49 +00:00
parent 5e1401ef14
commit f495ee23c2
8 changed files with 3552 additions and 3383 deletions

View File

@@ -45,7 +45,7 @@ body {
}
.btn-primary {
background: #179e83;
background: #148069;
color: white !important;
text-decoration: none !important;
}
@@ -152,7 +152,7 @@ body {
}
.nav-link.cta-button {
background: #179e83;
background: #148069;
color: white;
padding: 10px 20px;
border-radius: 6px;
@@ -169,6 +169,13 @@ body {
display: none;
flex-direction: column;
cursor: pointer;
background: none;
border: none;
padding: 8px;
min-width: 48px;
min-height: 48px;
justify-content: center;
align-items: center;
}
.bar {
@@ -454,7 +461,7 @@ body {
}
.step-number {
background: #179e83;
background: #148069;
color: white;
width: 60px;
height: 60px;
@@ -630,6 +637,33 @@ body {
min-height: 120px;
}
/* Form validation states */
.form-group input[aria-invalid="true"],
.form-group select[aria-invalid="true"],
.form-group textarea[aria-invalid="true"] {
border-color: #dc2626;
box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}
.form-group input[aria-invalid="true"]:focus,
.form-group select[aria-invalid="true"]:focus,
.form-group textarea[aria-invalid="true"]:focus {
border-color: #dc2626;
box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2);
}
.form-error {
display: block;
color: #dc2626;
font-size: 0.875rem;
margin-top: 6px;
min-height: 1.25rem;
}
.form-error:empty {
display: none;
}
/* Footer */
.footer {
background: #151f25;
@@ -1613,7 +1647,7 @@ textarea:focus-visible {
/* Category link styles */
.category-link {
background: #179e83;
background: #148069;
color: white !important;
padding: 5px 12px;
border-radius: 15px;
@@ -1688,12 +1722,15 @@ textarea:focus-visible {
color: white;
font-size: 18px;
cursor: pointer;
padding: 0;
width: 20px;
height: 20px;
padding: 12px;
width: 48px;
height: 48px;
min-width: 48px;
min-height: 48px;
display: flex;
align-items: center;
justify-content: center;
margin: -12px -12px -12px 0;
}
/* Scroll to top button */
@@ -3637,7 +3674,7 @@ main {
/* CSS Variables for Brand Consistency */
:root {
--color-primary: #179e83;
--color-primary: #148069;
--color-primary-dark: #11725e;
--color-secondary: #144784;
--color-secondary-light: #1a5a9e;

6616
assets/css/main.min.css vendored

File diff suppressed because it is too large Load Diff