quoroom.org
Accessibility
This site is about elections, and an election nobody can take part in is the problem it exists to describe. The same standard applies to the site itself. Below is what it does, measured rather than claimed, and what it is known not to do yet.
Self-assessed, and we say so
No independent auditor has reviewed this site, and no automated tool's score is reported here as if it were one. What follows is our own assessment, with the measurements that back it and the gaps we have not closed. We will update it when either changes.
What the site does
It reads without JavaScript
Every page is a static document. The only script on the whole site runs on two pages and toggles a citation's explanation — and that explanation is already in the page, so with scripts disabled it is visible rather than missing. The deadline calculator needs JavaScript to calculate, and the statutory deadlines it computes are written out in the text of the pages it links to.
It is operable from the keyboard
Every page starts with a skip to content link that is the first thing the Tab key reaches.
Focus is always visible: a 2.5 px outline, offset from the element, on every link, button, field
and control. The one interactive component — the citation disclosure — follows the standard pattern:
a button carrying aria-expanded, a region it names with aria-controls,
Escape to close, and focus returned to the button when it closes.
It is structured, not just styled
One <h1> per page and headings that descend in order; a single <main>
landmark on all 38 pages; real tables with header cells, not grids of divs; lists marked up as lists;
and the language declared on every page — including the Spanish ones, which also mark the
English-language statutory text inside them as English so a screen reader switches voice rather than
reading English with Spanish phonemes.
Contrast is measured, not eyeballed
Every text colour was computed against the surface behind it, in both the light and the dark theme. The results:
| Text | Light theme | Dark theme | AA needs |
|---|---|---|---|
| Headings | 15.5 : 1 | 15.4 : 1 | 4.5 : 1 |
| Body text | 11.3 : 1 | 11.0 : 1 | 4.5 : 1 |
| Secondary text | 5.6 : 1 | 6.4 : 1 | 4.5 : 1 |
| Small labels | 4.8 : 1 | 4.7 : 1 | 4.5 : 1 |
| Links in text | 5.1 : 1 | 7.5 : 1 | 4.5 : 1 |
| Primary button | 4.7 : 1 | 9.2 : 1 | 4.5 : 1 |
| Closing band | 15.5 : 1 | 15.5 : 1 | 4.5 : 1 |
The numbers are measured against the surface each colour actually sits on, which on this site is often not white: statute blocks, callouts and the footer sit on a tint, and a subdivision you link to highlights onto a warmer one. Those surfaces are the binding constraint, and meeting them leaves little room between the two greys — so the step between secondary text and small labels is carried by size and weight rather than by a paler colour that would fall under the threshold.
Four of those rows were failures at some point, and all four were found by measuring rather than by looking:
- The closing band took its background from the same token as heading text, which inverts in the dark theme — so the band turned pale while the heading on it stayed white. 1.1 : 1, effectively invisible. It now keeps its own colour in both themes.
- The primary button was white on the bright brand orange: 3.1 : 1 in light and 1.9 : 1 in dark. Buttons now take a deeper orange in light and dark text on the light orange in dark.
- Small labels were 2.6 : 1, below even the floor for non-text.
- Links and secondary text cleared 4.5 on white but landed at 4.3 and 4.4 on the tint, which is where most of them are.
The bright brand orange is kept for rules, bars and underlines, where 3 : 1 on a non-text element is the requirement. The check that produced this is a sweep over every text node on 20 pages in both themes, resolving each element's real background through its ancestors: 3,788 nodes, no failures.
It respects what your system asks for
The theme follows your operating system's light or dark setting, with both palettes designed rather
than inverted. prefers-reduced-motion turns off every transition. Text is set in
relative units and the layout reflows to a single column, so browser zoom and larger default text
sizes work instead of breaking it. Nothing on the site flashes, auto-plays, moves on its own, or
imposes a time limit.
It loads from one place
The fonts are served from this site. No third-party request is made when a page loads, so nothing here depends on a connection to another company resolving — which is an accessibility property as well as a privacy one, on a slow or filtered connection.
What falls short
Listed because a statement that claims no gaps is not credible.
- No independent audit. Everything above is self-assessed. We have not had a screen-reader user test the site, and that is the test that matters most.
- Long statutory blocks have no internal navigation. Section § 5110 runs to dozens of subdivisions. Each has an anchor, but there is no table of contents at the top of the block, so reaching subdivision (c)(4)(B) by keyboard or screen reader means travelling through everything before it.
- The deadline calculator is a visual layout. Its rows are a CSS grid, read in source order, which is sensible but is not announced as a table with headers. A screen reader gets the numbers without the column meanings.
- The illustration on the home page is described, not readable. It carries a text description of what it shows, but the figures inside it are not individually reachable.
- Comparison tables scroll sideways on a phone. That is better than crushing them, but a narrow screen still means horizontal scrolling to read a row.
- Plain-language. The commentary is written as clearly as we can manage, but it describes statutes and in places it reads like it. WCAG does not require a reading-level ceiling at AA; we mention it because it is a real barrier regardless.
If something here does not work for you
Write to privacy@quoroom.org. Tell us the page and what happened — the assistive technology and browser help, but tell us even if you do not know them.
We will reply within five business days, say whether we can fix it and when, and if we cannot fix it quickly we will get you the information another way in the meantime. If you need any page on this site in another format, ask and we will produce one.
Related
- Language access in elections — the same question asked of ballots.
- Privacy policy — including why nothing third-party loads here.
- Legal notice — what this site is, and what it is not.