How Mendvale works

The reference: what each screen does, what the app can and cannot do, and where your data lives. Written the way the app is built, without inflation.

The scan

A real browser loads one representative page per template of your storefront (home, collection, product, cart, search) and runs axe-core against each. Findings are split into conformance failures (WCAG A and AA, as tagged by axe-core itself) and recommendations (best practices), and the two are never added together. If a template cannot be reached, the scan names the gap instead of silently narrowing its coverage. If the storefront cannot be seen at all, you get no report rather than a reassuring one.

The catalog audit

The audit asks your product catalog, through the Admin API, for every image with no alt text. This finds what rendered-HTML scanners structurally cannot: Shopify themes render a blank alt field as valid decorative markup, which scanners correctly pass. The audit also reconciles: if alt text we wrote later disappears from your store, the image returns to the queue and the app says so.

Counting

The workload is counted in rules: one wrong colour token that fails on 160 elements is one decision. The element count is shown too, labelled as reach, because burying it would be its own kind of dishonesty. The two numbers are never summed.

Alt text drafting

Images with no alt text are described by a vision model, one call per image. Drafts pass a quality gate that rejects descriptions containing personal data such as email addresses or long digit sequences. Images the model cannot describe acceptably after three attempts are surfaced for you to describe yourself, not silently dropped. Every draft requires your approval before it is written to your product data.

The statement and its archive

The statement is generated from the scan and audit it cites, in your voice, and refuses to generate at all if either has not completed. Each generated statement is stored exactly as rendered, dated, in an append-only archive. There is no update or delete path: a record you can quietly rewrite is not a record.

Scheduled re-scans and alerts

On paid plans your store is re-scanned weekly. Regressions are computed only on pages covered by both scans; a finding on a page we could not reach last time is reported as newly visible, never as a regression, because we cannot know when it appeared. If a change means your published statement no longer describes your store, the app tells you that in plain words, in the app and by email.

Data and privacy

Application data lives in the EU (Frankfurt). The app holds no customer or order data, ever. Product images are sent to Anthropic's Claude API only to draft descriptions. Uninstalling triggers complete deletion. The full detail is in the privacy policy, written from what the code actually does.

The honest limit

Automated testing reliably detects roughly 30 to 40 percent of WCAG 2.1 AA criteria. A clean scan means we found no machine-detectable issues. It does not mean your store is conformant, and it is not a legal guarantee.