DEVOPS

Block GitLab MR on axe-core accessibility violations in Vercel preview

Crawls the key routes of a Vercel preview deploy with axe-core, fails the GitLab merge request if any serious or critical accessibility violations appear.

CategoryDevOps
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerVercel preview deployment readyVercelVercel
  • ActionRun axe-core across configured routesShell
  • LogicFilter to serious/critical violations
  • ActionFail GitLab MR pipeline if any foundGitLabGitLab
  • OutputComment violations with rule and selectorGitLabGitLab

What it does

Runs a dedicated accessibility audit (not just Lighthouse's summary score) across multiple routes of the preview. It enforces a zero-tolerance rule for serious and critical axe violations and reports each violation with its WCAG rule id and the failing element selector.

When to use it

Use it when accessibility compliance is a contractual or legal requirement and a single Lighthouse a11y number is too coarse. Best for teams that need per-element evidence of what broke and where.

How it works

  1. 1A Vercel deployment-ready webhook supplies the preview URL and MR reference.
  2. 2A shell step runs axe-core against a configured list of routes and aggregates the JSON results.
  3. 3A logic branch filters violations down to serious and critical impact levels and counts them.
  4. 4If the count is above zero, the GitLab MR pipeline is marked failed to block merge.
  5. 5A comment lists each violation by rule, impact, route, and DOM selector on the MR.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect VercelDeploys, runtime logs, analytics.
  2. 2
    Connect ShellRun sandboxed commands inside the workspace.
  3. 3
    Connect GitLabRepos, MRs, pipelines, registry.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.