axle · Slack integration
axle for Slack
Drop /axle scan https://example.com into any channel and axle posts the WCAG 2.1 / 2.2 AA report inline. Severity-grouped violations, the top three rules, and a one-click button to the public certificate page at /r/<id>.
Install
The hosted Slack listing is in the pipeline. While it's under review, you can self-host:
- Open api.slack.com/apps → Create New App → From manifest
- Paste in the manifest from packages/axle-slack/manifest.yaml
- Set
SLACK_SIGNING_SECRET,SLACK_CLIENT_ID,SLACK_CLIENT_SECRETin your axle deployment - Install to workspace from the Slack App admin
What it looks like
Slash command response is posted in the channel where you ran it. Severity grid + top-three violations + a one-click button to the full certificate page:
@you /axle scan https://example.com
@axle :mag: Scanning https://example.com for WCAG 2.2 AA violations...
@axle :warning: https://example.com
4 violations · :red_circle: 1 critical · :large_orange_circle: 2 serious
· :large_yellow_circle: 1 moderate
CRITICAL — color-contrast · Insufficient color contrast (3 elements)
SERIOUS — image-alt · Images must have alternate text (8 elements)
SERIOUS — label · Form elements must have labels (2 elements)
[ Full report ] [ How to fix ]Privacy
axle requests only the scopes needed to receive a slash command and post a reply. It does not have access to channel history, DMs, files, or member info. The only data leaving Slack is the URL you explicitly type after /axle scan.
Full privacy policy: /privacy · Terms: /terms
Pricing
5 scans per day per workspace on the free tier — same as the rest of axle. Team ($49/mo) and Business ($299/mo) plans remove the limit and unlock multi-repo features. See /pricing.
Source / configs: packages/axle-slack. Want axle in Linear / Jira / Discord too? /integrations.