accessibility section in readme
This commit is contained in:
19
README.md
19
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
|
- HSTS, CSP, and all the security headers you'd expect
|
||||||
- Automatic database migrations on startup
|
- 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
|
## 🛡️ 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.
|
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.
|
||||||
|
|||||||
Reference in New Issue
Block a user