Skip to main content

Accessibility

Accessibility statement

AI Stats targets WCAG 2.2 AA with keyboard navigation, visible focus, reduced motion, and graph fallbacks.

Navigation

Core routes use semantic landmarks and keyboard-accessible controls.

Charts and graph

Every dashboard chart publishes the series it was drawn from as a real table, and the constellation graph ships a list and table fallback.

Motion

Four motion levels in Settings, plus the operating system preference honoured before the first paint.

Feedback

Accessibility issues can be reported through the contact page.

What the WCAG 2.2 AA target covers

The target applies to the whole product, not just the marketing pages: sign-in, imports, the dashboard, session lists, projects, recaps, sharing, and settings. In practice it means a small number of concrete commitments that can be checked rather than claimed.

  • Every interactive control is reachable and operable from the keyboard, in a sensible order, with a focus ring that is visible against both themes.
  • Text meets AA contrast in light and dark mode, and colour is never the only way a status, provider, or metric quality is communicated.
  • Mobile navigation targets clear the 24-pixel minimum with room to spare; the bottom tab bar that carries most phone navigation uses 64-pixel targets.
  • The navigation drawer is a labelled modal dialog: it traps nothing you cannot escape, closes on Escape, and restores page scrolling when dismissed.
  • Layouts are built to reflow rather than scale, so narrow screens and high browser zoom levels do not push content off the side of the page.

Charts, the constellation, and data density

Analytics products fail accessibility in the same place every time: the visualization becomes the only copy of the information. AI Stats treats every chart as a rendering of a table that also exists. On the dashboard that is literal: the activity timeline, the duration distribution, and the weekly heatmap each sit above a disclosure that opens the exact series they were drawn from, as a table with a caption and header scopes, built from the same array the chart received rather than from a second formatter that could drift. An hour or a day whose sources reported nothing reads "Not available" there, never zero.

The charts themselves are announced as single images whose labels point at those tables. That is a deliberate change from reciting the whole series into one aria-label: a ninety-day timeline produced a label thousands of characters long that could not be navigated, paused, or read one point at a time. The conversation constellation, which draws sessions as provider-coloured nodes clustered by project, ships with a list and table fallback carrying the same sessions, providers, projects, and dates. Summary figures appear as text next to the graphic rather than only inside it.

Every section of the dashboard also carries a native disclosure stating what it measures, how it is calculated, how to read a high or low value, and how it could mislead you. It needs no JavaScript, is operable from the keyboard, and is announced as a disclosure without any ARIA of our own.

Motion is a setting, not a single switch, and “less motion” is not the same request as “no motion”. Appearance in Settings offers four levels. Follow device honours your operating system, which is also what happens before you choose anything, applied while the page is still being parsed rather than after it has drawn once. Reduced motion removes what causes the problem: anything that travels across the screen, loops, or is purely decorative, including the pulsing figure on the home page. It deliberately keeps the short transitions that confirm a control heard you. No animation removes those too, and silences vibration on phones that support it. An explicit choice overrides the operating system in both directions, and is stored in this browser only.

One animation on the site is not decorative: the strip that sweeps while an import is being parsed or uploaded is the only thing on screen saying work is still happening. It is never removed, because removing it would remove the message; under reduced motion and no animation it becomes a static tint, and it carries aria-busy in every case, so a screen reader is told the same thing the movement was there to say. Nothing anywhere on the site flashes, and no animation has to finish before a control becomes usable.

Known gaps

This statement describes a target and current practice, not a certification. AI Stats has not had a formal third-party accessibility audit and there is no VPAT. Testing is manual and internal (keyboard-only navigation, browser zoom, and screen reader spot checks over the main flows) which catches a great deal but is not a substitute for an audit or for feedback from people who rely on assistive technology daily.

Two areas are known to be weaker than the rest. Wide session and metric tables still require horizontal scrolling on small screens. And advertising units on public pages are third-party content rendered by Adsterra; their internal markup is outside our control, which is one reason they are kept off utility pages, legal pages, and every signed-in screen.

Reporting a barrier

Email aistats@novusstreamsolutions.com with the page address, what you were trying to do, and the browser, operating system, and assistive technology you were using, including version numbers where you know them. A description of what you expected to happen is more useful than a description of the bug. Reports that block someone from completing an import, reading their own data, or deleting their account are treated as defects rather than enhancements.

Last reviewed 20 August 2026. This page is updated when the underlying behaviour changes, not on a fixed schedule.