Uwierzytelnianie
Utwórz klucz w Ustawieniach. Pokazujemy go raz. Wysyłaj go w nagłówku X-Api-Key przy każdym żądaniu.
curl https://api.a11ysignal.com/v1/sites \ -H "X-Api-Key: a11y_xxxxxxxxxxxxxxxxxxxxxxxx"
Klucz działa w obrębie jednej przestrzeni roboczej i ma w niej uprawnienia administratora. Unieważnienie działa natychmiast.
Punkty końcowe
?siteId= zawęża listę.historia?impact=critical&ruleId=color-contraststronicowanePrzerwanie builda przy regresji
Na dwa sposoby. Najprostszy nie wymaga w ogóle klucza API — uruchom skaner bezpośrednio w CI na wdrożeniu podglądowym:
npx @a11ysignal/scan https://preview.example.com \ --max-pages 25 --fail-on serious
Drugi uruchamia skanowanie po naszej stronie po wdrożeniu i czeka na werdykt, dzięki czemu wynik trafia też do historii w twoim panelu:
SCAN=$(curl -sX POST https://api.a11ysignal.com/v1/sites/$SITE_ID/scan \ -H "X-Api-Key: $A11YSIGNAL_KEY" | jq -r .id) # Odpytuj, aż się zakończy, potem odczytaj werdykt. until [ "$(curl -s https://api.a11ysignal.com/v1/scans/$SCAN \ -H "X-Api-Key: $A11YSIGNAL_KEY" | jq -r .status)" != "running" ]; do sleep 5; done curl -s https://api.a11ysignal.com/v1/scans/$SCAN -H "X-Api-Key: $A11YSIGNAL_KEY" \ | jq -e '.counts.critical == 0 and .counts.serious == 0'
Co dostaniesz w odpowiedzi
Szczegóły skanowania, przycięte do pól, z których korzysta większość:
{
"id": "cm...",
"status": "completed",
"startUrl": "https://example.com/",
"score": 87.4,
"counts": { "critical": 0, "serious": 9, "moderate": 2, "minor": 0 },
"pagesScanned": 24,
"pagesFailed": 0,
"axeVersion": "4.13.0",
"diff": {
"newIssues": [{ "url": "…/checkout", "ruleId": "label", "impact": "critical", "count": 2 }],
"fixedIssues": [{ "url": "…/", "ruleId": "image-alt", "impact": "critical", "count": 5 }],
"scoreDelta": -3.5
},
"ruleSummary": [
{ "ruleId": "color-contrast", "impact": "serious", "elements": 9, "pages": 4 }
]
}score jest null, gdy przechodzenie nie odczytało żadnej strony — adres startowy zwracający 404 albo robots.txt zabraniający wszystkiego. Traktuj to jak niepowodzenie, nie zaliczenie; samo skanowanie jest oznaczone jako failed wraz z powodem.