# Accessibility Guide > **WCAG 2.1 AA Compliance Documentation** > Last Updated: December 2025 ## Overview This document describes the accessibility features implemented in the CV website to ensure WCAG 2.1 AA compliance and provide an inclusive user experience. ## Table of Contents 1. [Implemented Features](#implemented-features) 2. [Button Accessibility](#button-accessibility) 3. [Form Elements](#form-elements) 4. [Keyboard Navigation](#keyboard-navigation) 5. [Screen Reader Support](#screen-reader-support) 6. [CSS Compatibility](#css-compatibility) 7. [HTTP Headers](#http-headers) 8. [Testing](#testing) 9. [Checklist](#accessibility-checklist) --- ## Implemented Features ### Quick Summary | Feature | Status | Notes | |---------|--------|-------| | Button aria-labels | ✅ Complete | All buttons have discernible text | | Form labels | ✅ Complete | All inputs have aria-labelledby | | Keyboard navigation | ✅ Complete | Tab, Enter, Escape support | | Modal accessibility | ✅ Complete | Native `` with close buttons | | Color themes | ✅ Complete | Light/Dark/Auto modes | | Screen reader | ✅ Complete | Live regions for announcements | | CSS prefixes | ✅ Complete | Safari/WebKit compatibility | | Security headers | ✅ Complete | X-Content-Type-Options, CSP | | Cache headers | ✅ Complete | Static and dynamic routes | --- ## Button Accessibility All interactive buttons include proper accessibility attributes: ### Fixed Action Buttons Located in `templates/partials/widgets/`: ```html ``` ### Mobile Menu Buttons Located in `templates/partials/navigation/hamburger-menu.html`: ```html ``` ### Best Practices 1. **Icon-only buttons**: Always include `aria-label` 2. **Buttons with text**: Visible text serves as the accessible name 3. **Tooltips**: Use `data-tooltip` for visual hint, `aria-label` for screen readers --- ## Form Elements All form inputs have proper label associations: ### Toggle Checkboxes Desktop toggles in `templates/partials/navigation/view-controls.html`: ```html
``` Mobile toggles in `templates/partials/navigation/hamburger-menu.html`: ```html ``` ### Contact Form Located in `templates/partials/modals/contact-modal.html`: ```html
``` ### Labeling Strategies | Strategy | When to Use | |----------|-------------| | `