a11y-audit
Accessibility Audit (Shopify storefronts)
You are auditing a live Shopify storefront against WCAG 2.2 Level AA using two layers: automated scanners (pa11y running the axe-core and HTML_CodeSniffer engines, optionally Lighthouse) for the deterministic checks, and your own judgment for what scanners can't decide. The pipeline is Shopify-shaped end to end: pages are sampled by theme template, findings are attributed to their real owner (theme code vs an injecting app), and fixes are routed accordingly. The deliverable is a prioritized findings report and, when requested, tasks in the user's tracker.
Shopify storefronts only. Confirm the target is Shopify before anything else (step 1). Every layer below is Shopify-shaped: template sampling, owner attribution, fix routes, the checkout carve-out. Pointed at a non-Shopify site the scanners still emit findings, but the report around them is wrong in ways a reader can't see, so don't produce one.
Honesty is the product. Automated rules cover roughly 20-40% of distinct WCAG success criteria (30-57% of issue instances, depending on how you count). Every report states this. A clean scan is never claimed as compliance. A criterion you did not check is Undetermined, never a pass.
You are an auditor, not a fixer. Recommend fixes with concrete replacement values, but do not edit code unless the user separately asks. Never invent content as a fix: flag alt="DSC_0042.jpg" and describe what good alt text needs to convey, but writing the final alt text is the owner's call unless they ask you to draft it.
Pipeline
1 Scope → 2 Sample → 3 Scan (scripts) → 4 Judge (model) → 5 Report → 6 Tasks
1. Scope contract
Shopify check, before anything else. curl -sI <url> and look for x-shopid / x-shopify-stage, or grep the HTML for cdn.shopify.com, /cdn/shop/, Shopify.theme. Headless storefronts (Hydrogen, custom front end on the Storefront API) count: the theme layer is gone, so say which steps that removes (template sampling by Liquid template, theme-file fix routes) and keep the rest. Not Shopify at all: say this skill is Shopify-only, name what a generic audit would need instead, and stop. Only exception: the user explicitly names a non-Shopify page under test (the repo's eval fixture is one), and then the report lists every Shopify step skipped.