Accessibility

Accessibility

Last updated: 31 August 2026

We want everyone to be able to read this site, use it with a keyboard, and get in touch with us. Our target is the Web Content Accessibility Guidelines (WCAG) 2.1, Level AA.

This statement covers the cucaracha.app website only. It describes what we have actually tested and what we know is still short of the target. For who operates the site and how to reach us formally, see the Impressum.

What is supported

Everything below has been checked on every public page of this site: the home page, Support, the Roadmap, the blog index and individual posts, the waitlist form, and the legal pages.

  • Skip to content. The first thing keyboard focus reaches on every page is a "Skip to main content" link. Activating it moves focus, not just the scroll position, into the main region.
  • Landmark regions. Every page is built from real landmarks: a banner, a named navigation region in the header and another in the footer, a main region, and a footer region. The cookie bar is its own named region.
  • Heading structure. Every page has exactly one top-level heading, and heading levels descend without gaps, so a heading-by-heading reading of a page follows its real structure.
  • Keyboard operation. Every link, button, form field, filter, upvote control, accordion and dialog can be reached and operated with the keyboard alone, in an order that follows the page. Submit buttons stay reachable even while they are blocked, so the reason they will not submit can be read out rather than silently withheld.
  • Visible focus. Keyboard focus draws a three-pixel amber ring, offset from the control. It is never suppressed, and it stands at more than 7:1 against every surface it can land on, including the amber buttons.
  • The cookie bar. It is a bar, not a modal, so it never traps focus. It sits early in the tab order, both choices are ordinary keyboard-operable buttons, and once a choice is made focus moves somewhere sensible: back to the "Cookie settings" control in the footer if that is what opened it, otherwise into the main region.
  • Form labels. Every field on the contact, feature-request and waitlist forms has a label that is programmatically joined to it, not just placed nearby. Placeholder text is never used as the only label.
  • Validation messages. When a form rejects something, the message is announced, the field is marked as invalid, the field is joined to the message that explains it, and focus moves to the field that has to change.
  • Colour contrast. Every text and background pairing on the site has been measured against the rendered page. All body text, secondary text, captions, meta rows, placeholders and small icons meet the 4.5:1 requirement, and interface boundaries meet 3:1. Two neutral greys that failed were corrected: the faint caption grey and the resting border on form fields.
  • Never colour alone. Nothing is signalled by colour on its own. An upvote you have cast has a solid arrow rather than a hollow one; a shipped request carries a tick and the word "Done"; the two lines on the retention chart are labelled in text beside them; form errors are sentences.
  • Images. Product screenshots carry descriptions of what they show. The mascot, the background curve motifs and the glow layers are decorative and are hidden from assistive technology, so they are not announced.
  • Link text. Every link and button has a name that makes sense read on its own, away from the text around it. The link that opens in a new tab says so.
  • Page language. The site declares English. The Impressum is entirely German and declares German. Where a German passage appears on an English page, such as the name of the Berlin data protection authority in the privacy policy, that passage declares its own language.
  • Reduced motion. If your system is set to reduce motion, the site honours it. Animations and transitions are switched off in the stylesheet, smooth scrolling is disabled, and the three scripted animations on the home page check the same setting and render their finished state instead of playing.
  • Text resizing and narrow screens. At 200% text size on a normal desktop window, and at a 320 pixel wide window, every page reflows: no content is cut off, no function is lost, and there is no sideways scrolling of the page.

Known limitations

We would rather tell you what is not finished than imply more than we have tested.

  • We have not tested with a screen reader. The list above describes the implementation: semantic HTML, landmark regions, labelled controls, announced messages, declared languages. We have verified all of that in the page as it is built and rendered. We have not sat down with VoiceOver, NVDA, JAWS or TalkBack and worked through the site, so we make no claim about how it behaves in any specific screen reader.
  • The bot-protection check is a third-party component. The contact, feature-request and waitlist forms use Cloudflare Turnstile to keep out spam. We have named the region it sits in, and we provide a plain keyboard-operable "Retry verification" button outside it for when it stalls or fails. The check itself runs inside a frame belonging to Cloudflare: we cannot label it, restyle it, or guarantee its keyboard behaviour, and we have not been able to verify it. If the check blocks you, email us and we will handle your message that way instead.
  • Three animations on the home page have no pause control. The rotating lines above the headline, the drifting topic labels beside it, and the pulsing dot at the end of the retention chart repeat indefinitely. They stop completely if your system is set to reduce motion, but there is no button on the page to stop them, which WCAG asks for. We intend to add one.
  • Reduced motion is verified by construction, not by observation. We have confirmed that the stylesheet rule and every animated component read the reduced-motion setting, but our test browser could not switch the setting on, so we have not watched the pages render with it enabled.
  • The bot-protection check has a fixed minimum width. On a window narrower than roughly 340 pixels, that one component scrolls sideways inside its own box. The rest of the page reflows normally.
  • Third-party and embedded content. Anything served from another site, and any future embedded content, is outside our control and may not meet the same standard.

Telling us about a problem

If something on this site is hard or impossible for you to use, please email us at hi@cucaracha.app. Describe what you were trying to do and, if you can, what you were using. We read every message, we will reply within five working days, and if we cannot fix something quickly we will tell you what we are doing instead and offer another way to get what you needed.

The mobile app

This statement covers the website. The Cucaracha mobile app is a separate product on a separate release cycle and is assessed separately; nothing here should be read as a claim about it.

Hinweis nach dem Barrierefreiheitsstärkungsgesetz (BFSG): Cucaracha wird von einem Kleinstunternehmen im Sinne des § 3 Abs. 3 BFSG betrieben (weniger als 10 Beschäftigte und ein Jahresumsatz von höchstens 2 Millionen Euro). Für Dienstleistungen von Kleinstunternehmen gelten die Anforderungen des BFSG nicht. Wir stellen diese Erklärung freiwillig zur Verfügung. Bei Fragen oder Problemen zur Barrierefreiheit erreichen Sie uns unter hi@cucaracha.app.