Legal
Accessibility
This statement covers the Softbox Android app (version 1.0.0, the first store release) and the website tincograph.com including the web app at app.tincograph.com. It is the statement the European Accessibility Act asks a seller to publish. It is written from what our tests and build gates actually check, and it names what nobody has checked yet. The standard we measure against is WCAG 2.2 level AA(EN 301 549 for the EAA). We do not claim conformance; the sections below say exactly how far the evidence goes.
Softbox — what is checked, and how
Every check listed here is an automated widget test that runs before a change can be merged. No check here was done by a person using assistive technology; that is the first item under "not done yet".
- Touch targets, labels and text contrast on every screen a test can reach(
apps/gallery/test/a11y/a11y_r13_test.dart): Flutter's own accessibility guidelines run over the five main tabs, Settings, the viewer and the whole editing pipeline beneath the photo, the Style panel, a video page with its transport, sign-on, account, the plans page, the three onboarding pages, the AI consent page, the Enhance panel and the open-with pill — in English and in German. The guidelines assert that every tappable element is at least 48 × 48 dp, that every tappable element has a label a screen reader can speak, and that painted text clears WCAG AA contrast against the pixels actually behind it. - Contrast of at least 4.5:1 is computed, not eyeballed(
apps/gallery/test/auth/contrast.dart): a shared checker walks every piece of painted text and every icon, composites translucent colours over their real background and holds the result against 4.5:1. The editing pipeline beneath a photo is held to it at both worst-case backgrounds (test/pipeline_contrast_r15_test.dart), and a disabled purchase button keeps its label at 4.5:1 on black and on mid grey (test/billing/plans_screen_test.dart). - Sliders have a 44 px hit height around a visually thinner track (
packages/design_system/lib/widgets/genesis_slider.dart). - No popups for content. Legal texts, licences, the AI consent, moderation notices and the appeal form are full-screen pages, never dialogs (
test/legal/legal_r18_test.dartpins the licence page as a page, not a popup); nothing is dimmed behind a panel, and page transitions cross-dissolve rather than slide. - German is complete and uses "du". A German device sees every main screen in German with no English words, including Flutter's own buttons (
test/l10n/german_screens_test.dart); a scanner fails the build on hard-coded English in any screen (test/l10n/no_hardcoded_english_test.dart). - The animated backdrop stops when the system's "remove animations" setting is on (
packages/design_system/lib/widgets/aurora_background.dart). Other animations have not been checked against that setting — see below.
Softbox — not done yet
- TalkBack has not been used end to end on a device. Labels exist (the test above fails without them), but nobody has navigated the app with TalkBack from the first screen to a finished edit. Reading order, announcements and gestures are unverified.
- 200 % text size has not been verified screen by screen. Text scales with the system setting by default; whether every screen still fits and stays usable at 200 % has not been checked.
- Focus order has not been audited. Keyboard and game-controller navigation is being built now (arrows navigate, Space arms a control, a focus ring that appears on the first key); its order on each screen has not been reviewed.
- Contrast is verified only where a test records it. The screens listed above are covered; newer surfaces may not be. One known failure is open: the "Select with AI" chips in the masking panel read grey on glass and have not yet been measured against 4.5:1.
- "Remove animations" is honoured by the backdrop only. Transitions and control animations have not been checked against it.
- No audit by an accessibility specialist and no manual WCAG 2.2 AA review.
tincograph.com and the web app — what is checked
- Every page is audited with Lighthouse in the build. An accessibility score below 95 fails the build (
tools/lighthouse-run.mjs, run by CI against the built site). The last measured run against the deployed site scored 100 on every page. - Colour contrast is computed from the design tokens(
packages/ui/test/tokens.test.ts): WCAG relative luminance is calculated for the tokens in both the dark and the light theme, every surface and ink colour must be defined for both, and the one colour marked decorative-only is kept out of body text by a test. - Keyboard focus is always visible — the focus ring is defined once in the design system, not per component.
- Motion respects your settings — with "reduce motion" on, animation durations collapse to nothing across the site and the web app.
- Form errors are announced: each error is a live region (
role="alert") tied to its field.
tincograph.com and the web app — not done yet
- No testing with a real screen reader, on any browser.
- No audit by an accessibility specialist; no formal WCAG 2.2 AA conformance claim.
- The web app has the same design system and contrast guarantees as the website but has not had the same per-page Lighthouse audit.
What is planned
A device pass over Softbox with TalkBack, at 200 % text size, with a contrast measurement of every screen and a review of focus order, on a real phone. It is on the release plan and has no date yet. When it has been done, this page will say what was found, with the date.
Feedback and contact
If something does not work for you, write to[email protected] or use thesupport form. Say what you were trying to do and what got in the way; that is more useful to us than the name of a standard. Accessibility problems are treated as bugs and go to the front of the queue. Security problems go to thesecurity page instead.
Enforcement
If you are not satisfied with our answer, you can turn to the market-surveillance authority responsible for the seller: [DOOEL]. If you live in the European Union, the authority of your own member state is competent as well; our representative in the EU is [EU-REP].