eleven / messenger Public

Clone
git clone https://amadan.net/eleven/messenger

Plain git — no account needed to clone.

Download

Download this file

πŸ€– Accessibility

Eleven Messenger is for groups of real people β€” families, friends, small teams β€” and that only works if everyone in the group can actually use it. This page is our accessibility statement: the standard we hold ourselves to, what that means in practice, and where we honestly are today.

The commitment

All web surfaces target WCAG 2.2 Level AA. That covers the chat client itself, the mini-apps, the join/invite/onboarding pages, the admin console, and the home server pages.

The native iOS and Mac apps target the same bar, interpreted through WCAG2ICT and Apple's platform accessibility features: full VoiceOver support, Dynamic Type, Reduce Motion, and Increase Contrast.

Why WCAG 2.2 AA:

  • 2.2 is the current W3C Recommendation β€” committing to an older version (2.0/2.1) would be committing to yesterday's bar, and 2.2 AA is backwards compatible with 2.1 AA (it adds criteria; the only removal, 4.1.1 Parsing, is obsolete).
  • AA is the level the world converges on. Legal and procurement baselines β€” the EU's EN 301 549 (European Accessibility Act), US Section 508, ADA case law β€” all reference Level AA. Meeting 2.2 AA satisfies all of them.
  • AAA is not a blanket target by design β€” the W3C itself says AAA cannot be satisfied for all content. We adopt individual AAA criteria where they're cheap and kind (e.g. generous contrast, no timing pressure), but AA is the commitment.

What this means for anyone changing the UI

The bar for new and changed UI, web and native alike:

  • Keyboard first. Every action reachable and operable by keyboard, with a visible focus indicator. Panels, menus, sheets, and the lightbox manage focus on open/close and never trap it. The sticky composer and headers must not obscure the focused element (2.4.11).
  • Everything has a name. Icon-only buttons get labels; menus and dialogs get proper roles; form fields get real labels. We already build DOM nodes instead of innerHTML β€” give those nodes their ARIA at the same time.
  • Gestures have alternatives (2.5.7): anything done by dragging or swiping (to-do reorder, swipe-to-reply) also works with simple taps/clicks, and touch targets are at least 24Γ—24 CSS px (2.5.8).
  • Contrast holds in both themes. AA ratios (4.5:1 text, 3:1 large text and UI components) in light and dark β€” including secondary text, placeholders, and focus rings.
  • Motion is optional. Ambient scenes (the smoke-and-motes boot and space-switch), grace-period animations, and transitions respect prefers-reduced-motion / Reduce Motion.
  • Never color alone. State (unread, online, done, error) is always carried by text or shape as well as color.
  • Native parity. iOS/Mac views carry accessibility labels and traits, survive the largest Dynamic Type sizes, and expose row actions to VoiceOver.

Where we are today

Honestly: partial conformance. Accessibility affordances exist throughout (ARIA attributes across the web client, VoiceOver labels in the native apps), but we have not yet completed a systematic audit against 2.2 AA. That audit β€” surface by surface, with fixes landing as small PRs β€” is tracked in issue #569. This page's status will be updated when the sweep completes.

Feedback

If something in Eleven Messenger doesn't work with your assistive technology, or works badly, we want to know: open an issue describing what you were doing, the platform/AT you use, and what went wrong. Accessibility reports are treated as bugs, not feature requests.