Accessibility

How accessible this is, honestly

We aim at WCAG 2.1 level AA. We do not claim to have got all the way there. Below is what we test automatically, what we have actually changed, and the specific places we know still fall short — because a statement that only lists the good half is the thing this whole product exists to argue against.

Last reviewed 30 July 2026

The target

WCAG 2.1 level AA, across the public site and the signed-in app, in both the light and dark themes. That is the bar we measure against and the bar we fix towards. It is not a certification: we have no third-party audit and no published conformance report, and if either of those appears here one day it will be dated and linked, not implied.

What we test, and how often

There is an automated accessibility gate in our test suite. It drives a real browser through the product with axe-core, checking the WCAG 2.0 A/AA and 2.1 A/AA rule sets against the actual painted page — after charts and lazy-loaded panels have settled, not against a static snapshot.

  • 19 routes, both themes, 38 scans. Public: /, /backtest, /learn, /learn/basics, /login, /signup, /pricing, /about, /support, /help, /status, /changelog, /accessibility, /privacy, /terms, /disclaimer. Signed in: /cockpit, /accounts, /settings.
  • It fails the run on anything serious or critical. The gate is not advisory — a change that introduces an unlabelled control, a broken heading order or failing text contrast stops the build.
  • It prints the moderate and minor findings too, on every page including the passing ones, so the smaller debt is visible rather than filed away.

It runs on the whole suite, which is what we run before shipping anything. Where we test by hand — keyboard-only walkthroughs of a new page, checking a new colour against its ground — we do it at the time we build it.

What has actually been done

Text contrast is a measured token, not a guess

Secondary body copy used to be set in our muted grey, which measures 3.18:1 against the light background — fine for the glanced uppercase labels it was designed for, genuinely hard work for a paragraph on a phone in daylight, and under the 4.5:1 floor. So there is now a separate token for text you are meant to read, derived from the other two rather than hand-picked, measuring 5.00:1 in the light theme and 8.71:1 in the dark one. It is what every paragraph on this page and the rest of the company pages uses. Because it is derived, the dark theme cannot drift out of step with it.

Our accent colour was darkened for the same reason: white text on the old teal measured 3.94:1 on buttons. The current one clears 4.5:1. The one colour we did not touch is the green candle in the logo, which is a fixed brand constant and carries no information on its own.

Motion respects your system setting

If your operating system is set to reduce motion, we honour it rather than asking again. Every animated component is wrapped so that transform-and-layout animation is switched off while harmless opacity fades are kept, and the CSS carries its own prefers-reduced-motion blocks on top of that.

The rule we hold ourselves to is that nothing is only visible after an animation. Scroll reveals render fully opaque and un-transformed, the login stamp still prints (instantly, without the spin), and the idle motion — a clock hand, a breathing lamp — simply stops. If our motion code failed to load entirely, you would still see all of the content.

Keyboard and focus

Interactive things are real buttons, links, inputs and details elements, so tab, enter, space and escape behave the way your browser and screen reader already expect — we have re-implemented as few widgets as possible, which is the cheapest accessibility decision available. Everything focusable draws a visible focus ring, using :focus-visible so it appears for keyboard users without following mouse clicks around.

Decorative graphics say nothing, and the numbers are text

The 3D verdict scene, the grain overlay, the aurora background and the logo mark are all hidden from assistive technology — they are decoration over information that exists as text. The verdict itself, its expected value, the reason behind it and the trade list are all real text and real tables. Long-running work reports progress through a labelled progress bar and a polite live region, so a screen reader is told when a backtest finishes instead of leaving you guessing at a silent page.

Meaning is never carried by colour alone

A verdict is always the word LIVE, SHADOW or SHELF, not a coloured dot. A gain or loss carries its sign. Changes on the what’s new page are labelled in words. The colour is there to help you scan, never to be the only thing telling you what happened.

It works at phone width and at desk width

Pages are laid out with relative units and no fixed pixel widths, so they reflow rather than scroll sideways — down to a 390-pixel-wide phone and up to a 1920-pixel display. Anything that genuinely cannot shrink, like a wide results table or a correlation matrix, scrolls inside its own box so the page around it stays put. Reading columns are capped at about 68 characters, because a line that runs the full width of a monitor is hard to track back to.

What we know is still imperfect

Specific, because vagueness here is worthless to you:

  • The verdict colours in the light theme. Measured against the light background, the green, amber and red verdict tones land between roughly 3.2:1 and 3.9:1. That clears the 3:1 bar for large text but not the 4.5:1 bar that their small chip size actually demands. No meaning is lost — the verdict is always spelled out in words right there — but the contrast is not where it should be, and it is on the list. In the dark theme the same three tones clear 4.5:1 comfortably.
  • Charts are canvas, and effectively invisible to a screen reader. The equity curve, the drawdown, the distributions and the candle charts are drawn to a canvas and marked as decorative. The numbers behind them are available as text and tables on the same page, but there is no per-point text alternative and no keyboard way to walk a series yet. If you rely on a screen reader, the tables are the product; the charts are a bonus you are currently missing.
  • The automated gate covers 19 routes, not the whole product. The strategy builder, the alpha pages, the live terminal and the admin surfaces are not in it. And automated tools only ever find a fraction of real barriers — roughly a third to a half, on the usual estimates. We have not completed a full manual screen-reader pass of the signed-in cockpit.
  • The builder is a dense interface. It has a lot of controls in a small space, it was not designed screen-reader-first, and some of its labels lean on visual grouping to make sense. It is usable by keyboard; we would not yet call it comfortable.
  • No conformance report. We have not commissioned a third-party audit and there is no published VPAT or ACR. Everything above is our own measurement.
  • The language is technical in places. Options and market-structure vocabulary is unavoidable in parts of the product, but plenty of our copy is denser than it needs to be. Plain-English work is ongoing — the learn pages are the front of it.

Tell us about a barrier

If something here blocks you, we want to know specifically — it is the fastest way anything on the list above moves.

  • The feedback button in the bottom-right corner. It is on the public site and inside the app, so you can report a problem from the page it happened on without losing your place. It is a plain disclosure, not a modal — enter opens it, escape closes it and hands focus back to the button. (It steps out of the way during signup and on shared public links, where a floating button would be in the way.)
  • Email support@quantradin.com — a person reads it. Put “accessibility” in the subject and it gets looked at sooner.
  • The Discord if you would rather just say it out loud.

What helps most: the page, what you were trying to do, and what your setup is (browser, screen reader, magnification, whether reduce-motion is on). What we’ll do: tell you what we found, fix it if we can, and say plainly if a fix is going to take a while rather than leaving you waiting on a maybe. If we can help you get the thing done another way in the meantime, we’ll do that too.

For anything else, support is the general door, and about explains what the product is and is not.