From 487cdba6d591a0e6f54e552f306522b4e9dd06cd Mon Sep 17 00:00:00 2001 From: lashman Date: Sat, 21 Mar 2026 20:48:57 +0200 Subject: [PATCH] accessibility section in readme --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 7cc2fd5..bd53bf5 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,25 @@ The tools people use to communicate should belong to the people using them. Not - HSTS, CSP, and all the security headers you'd expect - Automatic database migrations on startup +## ♿ Accessibility + +If a tool for collective voice isn't usable by everyone, it's not really for everyone. Echoboard targets WCAG 2.2 AAA - not as a checkbox, but because access is a prerequisite for participation. + +- **Full keyboard navigation** - every interactive element is reachable and operable without a mouse. Focus indicators are visible on all controls. No keyboard traps. +- **Screen reader support** - semantic HTML throughout, ARIA landmarks with labels, live regions for dynamic content (toasts, vote counts, search results), proper roles on custom widgets (combobox, listbox, dialog, alertdialog). +- **No information conveyed by color alone** - status badges have text labels, importance levels have names, lock states have icons and text, not just color changes. +- **Contrast ratios meet AAA (7:1)** - both dark and light themes are designed to exceed the strictest contrast requirements for normal text. +- **Touch targets meet 44px minimum** - buttons, links, dropdown options, and all interactive elements are large enough for comfortable touch interaction. +- **Reduced motion respected** - all animations are disabled when the user's operating system says they prefer reduced motion. +- **Page titles update on navigation** - every route sets a descriptive document title so screen reader users know where they are. +- **Skip navigation link** - a hidden link at the top of every page lets keyboard users jump straight to the main content. +- **Error messages announced** - form errors use `role="alert"` so screen readers announce them immediately without the user hunting for what went wrong. +- **Modals trap focus properly** - dialog focus stays inside the modal until it's closed, then returns to the element that opened it. +- **Labels on everything** - every form input has a visible label or accessible name. No placeholder-only inputs. Required fields are marked. +- **Breadcrumbs and heading hierarchy** - pages have logical heading structure and breadcrumb navigation so users can orient themselves. + +Accessibility isn't a feature for a minority. It's the baseline for software that respects the people using it. + ## 🛡️ Security Letting people participate anonymously doesn't mean letting them run wild. Echoboard takes security seriously at every layer - protecting the people who give feedback, the people who manage it, and the data in between.