Accessibility

Almanac targets WCAG 2.2 Level AA. This page records what has been measured, and what is known to be missing.

Conformance

Partially conformant with WCAG 2.2 AA. Partially, because the gaps below are real and are listed rather than left out.

What has been measured

  • Contrast. Every text colour clears 4.5:1 against every surface on the site — the four panel greys and the page ground. The narrowest pair measures 4.52:1. The surface ramp was lifted twice for readability, and each lift costs contrast for everything drawn on it — so two greys and the loss red were raised in lightness to hold the line, and all ten text colours were re-measured against all four surfaces afterwards rather than assumed to still pass. The background starfield is measured separately, below, because it lights the ground rather than being one.
  • Keyboard. Everything interactive is reachable by keyboard and shows a visible focus ring. A skip link is the first stop in the tab order.
  • The starfield. The background is a field of diamond-shaped stars, and the heading, lede and footer of each view are drawn straight onto it rather than onto a panel. The field is dimmed to the point where that costs nothing measurable: peak opacity is 0.125, a star on open ground lands around rgb(41,45,52), and the narrowest text-over-star pair on the site measures 4.66:1 — checked on rendered pixels, at the top of the page and at the footer, on every view. An earlier, brighter field took that pair to 1.2:1; the stars were made larger and quieter rather than left bright with a note attached.
  • Navigation. Moving between pages moves focus to the new page and updates the title, so the change is announced rather than silent.
  • Charts. Each carries a single description stating its finding — what the chart shows you — rather than describing its shapes. Decorative artwork is hidden from assistive technology entirely.
  • Motion. If your system asks for reduced motion, the decorative animation stops. The spinner does not, because it is how the page tells you it is working.
  • Errors. Validation messages are announced, mark the field they refer to, and reserve their space so nothing moves under your pointer as they appear.
  • Nothing fake. The locked Stargazer ledger is hidden from screen readers rather than read out as a table you cannot reach, and the unavailable membership button announces as unavailable.

Known limitations

  • The site has not been tested with a real screen reader. Everything above was verified by inspection and by keyboard. Until a VoiceOver or NVDA pass happens, correct announcement is an intention rather than a result.
  • There is no automated accessibility check in the build, so a regression would not be caught mechanically.
  • The section tabs are not a complete ARIA tab pattern. Tab and Enter work; arrow-key movement between tabs does not.
  • Touch target sizes have now been measured at 320, 375, 390 and 430 pixels wide. The week-number buttons were named here as the likely smallest and are not: they measure 30×29 and pass. What failed was the agent's Ask button, which sized itself against the input beside it and collapsed to 20 pixels tall once the two stacked on a phone; it is 44 now. What remains under 24 pixels is a checkbox inside a 40-pixel label that is itself the target, a hidden native select that exists for assistive technology while a visible button carries the interaction, and two text-styled controls inside prose, which WCAG 2.2 exempts.
  • Layout is verified at five widths — 320, 375, 390, 430 and desktop — but not at 200% and 400% browser zoom, which is a different test and has not been run.

Telling us something is wrong

If part of this site is unusable for you, that is a bug. Report it to contact@garyqin.com and say what you were trying to do and what your assistive technology did instead — the second half is the part that makes it fixable.

Last reviewed 25 August 2026, against WCAG 2.2 AA.