Last updated 9 September 2026
This site aims to meet the Web Content Accessibility Guidelines (WCAG) 2.2 at level AA. It is a small site maintained by one person, so this statement describes what has actually been built and tested rather than what would be convenient to claim.
Every control can be reached and operated with a keyboard alone. The first thing in the tab order on every page is a skip to content link, hidden until it is focused, so reaching the page itself is one Tab and one Return rather than a walk through the whole masthead.
Dialogs behave as dialogs. The code preview and the screenshot viewer both move focus into themselves when they open, close on Escape, and put focus back on the control that opened them, so closing a screenshot returns you to the thumbnail you were standing on rather than to the top of the page. The screenshot viewer also steps between images with the left and right arrow keys. Focus is never trapped anywhere you cannot leave with Escape or Tab.
Focused elements are outlined in the site's accent colour with an offset, so the outline is visible against both the light and dark themes rather than disappearing into a border.
Headings run in order, images that carry meaning have text alternatives, and images that are pure decoration are hidden from assistive technology rather than announced as noise. The code dialog is marked as a dialog and labelled with the product it belongs to. Status messages, such as the confirmation that code has been copied, are announced politely without stealing focus.
The site has an animated hero, scrambling text, blocks that turn on the plan cards, and blocks of the page that fade in as you scroll to them. All of it is switched off when your system asks for reduced motion - the blocks stop turning and hold a still pose, and the sections that fade in are simply there instead. Animations also pause when the tab is in the background or scrolled out of view. Nothing flashes, and nothing moves faster than three times a second, so there is no seizure risk from the motion on this site.
One thing moves on its own rather than in response to you: the row of featured products on the front page advances every five seconds once there are more of them than fit. It carries a stop button, it holds while a pointer is over it or the keyboard focus is inside it, and it does not start at all under a reduced-motion preference or when everything already fits on the line. Nothing is lost by stopping it - every card is reachable by scrolling the row, and the same products are on the shop page in a plain grid.
Everything that animates here is decoration. There is nothing on this site that can only be found by waiting for it to move, and nothing that disappears again if you do not.
Text is set against its background at contrast ratios meeting AA, in both themes. Colour is never the only way information is conveyed: free products say “Free”, versions are written out, and filters show their state in text as well as in colour.
The layout reflows down to a 320-pixel-wide viewport and up to 200 per cent browser zoom without content being cut off or requiring horizontal scrolling. Wide content that cannot reflow, such as a code block or a table inside a README, scrolls inside its own container rather than pushing the whole page sideways.
Product pages, the product list, and these policy pages are rendered on the server and readable with JavaScript disabled. The shop filters, the code preview dialog, signing in, liking and the comment thread all need JavaScript; the code a preview shows is also printed on the product page itself, so it is reachable either way.
The sign-in flow is a sequence of ordinary pages and form controls, with no timed step and nothing that has to be done quickly. The comment box is a labelled text area with a visible character count, and posting reports success or refusal in text rather than by colour alone. A comment that is refused says why, so the reason is never left to be guessed at.
Member avatars are decorative and hidden from assistive technology: the name is always written out beside them, so nothing is conveyed by the picture alone.
The comment thread loads after the page and shows a placeholder while it does. The placeholder is announced once, politely, rather than repeatedly interrupting a screen reader as rows arrive.
Replies sit in a nested list inside the comment they answer, so the relationship is carried by the markup rather than by an indent. A screen reader announces the nesting, and the structure survives with the stylesheet turned off. Threading is one level deep on purpose: there is no chain of replies to get lost in and no collapsed branch to discover. The reply box says whose comment it is answering, in its label as well as on screen.
Being straight about the parts that are not there yet is more useful than a clean bill of health:
If any part of this site is difficult or impossible for you to use, say so: write to no public contact address is set for this site yet and describe what you were trying to do and what got in the way. Accessibility problems are treated as bugs, not as feature requests, and are fixed as such. If you need the contents of any page in another format, ask and it will be sent to you.
Questions about this page: no public contact address is set for this site yet.