Individuelle Integration
Die individuelle Integration ermöglicht es Teams, die gesamten Testdaten aus der axe DevTools-Erweiterung einfach direkt an einen konfigurierbaren Webhook-Endpunkt zu senden. Dadurch können Sie einen individuellen Webhook-Endpunkt einrichten, der axe DevTools-Testdaten verarbeiten kann.
Derzeit qualifizieren sich nur Unternehmen, die axe DevTools für Web oder axe DevTools Extension (Pro) über einen Deque-Verkäufer erworben haben, für die individuelle Integration. Wenn Sie an einer Bereitstellung einer individuellen Integration interessiert sind, wenden Sie sich an Ihren Deque-Kontakt.
Funktionsweise
Integration konfigurieren
Jeder Admin des axe Account-Portals kann die Integration konfigurieren.
- Klicken Sie in der Navigationsleiste auf „KONFIGURATION“
- Wählen Sie den Tab „Integrationen“
- Klicken Sie auf „Neue Verbindung zur individuellen Integration hinzufügen“

- Geben Sie einen Namen an (maximale Zeichen: 255)
- Geben Sie Ihre webhook URL an
- Geben Sie ein Geheimnis an (siehe Authentifizierung unten)
Testergebnisse senden
Automatisches Setzen von testId und url Abfrageparametern
Für die automatische Testeinrichtung werden zwei Abfrageparameter unterstützt:
testId: der Bezeichner des Tests innerhalb Ihrer internen Anwendung (z.B.1234567)url: die URI-codierte Test-URL (z.B.https%3A%2F%2Fworkshop.dequelabs.com)
- Verlinken Sie (oder navigieren Sie Ihren Browser) zu
/axe-devtools/test-setup?testId=1234567&url=https%3A%2F%2Fworkshop.dequelabs.com - Die axe DevTools-Erweiterung erkennt automatisch die testId und stellt die durchzuführenden Tests in die Warteschlange
- Wenn ein
urlAbfrageparameter bereitgestellt wird, wird der Browser auf die angegebene URL weitergeleitet - Wenn kein
urlAbfrageparameter bereitgestellt wird, werden Sie aufgefordert, manuell zur URL zu navigieren
- Wenn ein
- Öffnen Sie die axe DevTools-Erweiterung, falls sie nicht bereits geöffnet ist

- Wählen Sie „Vollständiger Seitenscan“, „Teilseitenscan“ oder ein beliebiges IGT, um mit dem Testen zu beginnen
- Sobald das Testen abgeschlossen ist, navigieren Sie zum Tab „Überblick“ Ihres gespeicherten Tests
- Öffnen Sie das Menü „Freigabeoptionen“

- Klicken Sie auf die Option „Ergebnisse an individuelle Integration senden“
- Wenn der konfigurierte Webhook-Endpunkt mit einem
2xxAntwortcode antwortet, wird eine Erfolgsmeldung angezeigt - Wenn der konfigurierte Webhook-Endpunkt mit einem anderen als
2xxAntwortcode antwortet, wird eine Fehlermeldung angezeigt
- Wenn der konfigurierte Webhook-Endpunkt mit einem
Test-ID manuell hinzufügen
- Öffnen Sie die axe DevTools-Erweiterung
- Erstellen Sie einen neuen gespeicherten Test oder navigieren Sie zu einem bestehenden
- Sobald das Testen abgeschlossen ist, navigieren Sie zum Tab „Überblick“ Ihres gespeicherten Tests
- Öffnen Sie das Menü „Freigabeoptionen“
- Klicken Sie auf die Option „Ergebnisse an individuelle Integration senden“

- Geben Sie Ihre Test-ID ein
- Klicken Sie auf „Senden“
- Wenn der konfigurierte Webhook-Endpunkt mit einem
2xxAntwortcode antwortet, wird eine Erfolgsmeldung angezeigt - Wenn der konfigurierte Webhook-Endpunkt mit einem anderen als
2xxAntwortcode antwortet, wird eine Fehlermeldung angezeigt
- Wenn der konfigurierte Webhook-Endpunkt mit einem
Webhook-API
In diesem Abschnitt wird der Webhook-Endpunkt für den Empfang von Testergebnissen von axe DevTools beschrieben.
Endpunktinformation
URL-Struktur
Die URL-Struktur liegt größtenteils bei Ihnen. Sie können jede beliebige Domain und jeden gewünschten URL-Pfad verwenden (achten Sie nur darauf, die korrekte URL bei der Konfiguration der benutzerdefinierten Integration einzugeben).
POST https://[your-domain]/[webhook-endpoint]Authentifizierung
Die Authentifizierung wird mithilfe von Webhook-Signaturen implementiert. Jede Webhook-Anfrage enthält einen Signatur-Header, der überprüft werden sollte, um sicherzustellen, dass die Anfrage von axe DevTools stammt.
Signaturüberprüfung
- Ein geheimer Schlüssel wird zwischen axe DevTools und Ihrem Dienst geteilt
- Die Signatur ist im
X-Hub-Signature-Header enthalten - Format:
X-Hub-Signature: sha256=<signature> - Zeitstempel
X-Deque-Request-Timestamp: <ISO timestamp> - Überprüfen Sie die Signatur, indem Sie einen SHA-256 HMAC des Zeitstempels und des Anforderungstextes mit Ihrem ursprünglich bereitgestellten geheimen Schlüssel berechnen
Beispiel zur Signaturüberprüfung (node):
import crypto from 'crypto'
function verifyWebhookSignature(payload, timestamp, signature, secret) {
const expectedSignatureBody = Buffer.from(timestamp + JSON.stringify(payload), 'utf8')
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(expectedSignatureBody)
.digest('base64')
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
)
}Anforderungs-Header
| Header | Beschreibung |
|---|---|
Content-Type |
application/json |
X-Deque-Event |
Der Ereignistyp (z. B. integration-test-results) |
X-Deque-Request-Id |
Eindeutige Kennung für die Webhook-Anfrage |
X-Deque-Request-Timestamp |
Ein ISO 8601 Zeitstempel |
X-Hub-Signature |
Payload-Signatur zur Verifizierung |
Schema des Anforderungstextes
Die Webhook-Nutzlast folgt dem axe Universal JSON-Format. Unten ist das detaillierte Schema mit Beispielen aufgeführt:
Beispielhafte Nutzlast
{
"source": {
"productName": "axe DevTools Enterprise",
"productComponentName": "axe-core",
"productVersion": "4.7.2"
},
"testDetails": {
"testId": "test-123e4567-e89b",
"integrationTestId": "your-test-id-123456",
"startDate": "2025-01-09T10:00:00Z",
"endDate": "2025-01-09T10:01:00Z",
"engine": "axe-core",
"axeVersion": "4.7.2",
"standard": "WCAG 2.1 AA",
"bestPracticesEnabled": true,
"experimentalEnabled": false,
"testName": "Homepage Accessibility Scan",
"createdBy": "john.doe@example.com"
},
"allIssues": [
{
"issueId": "issue-123",
"ruleId": "color-contrast",
"description": "Elements must have sufficient color contrast",
"help": "Elements must meet minimum color contrast ratio requirements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.7/color-contrast",
"impact": "serious",
"needsReview": false,
"isExperimental": false,
"isManual": false,
"summary": "Button text does not have sufficient contrast with background",
"selector": [["#main-nav", "button.login"]],
"tags": ["wcag2aa", "wcag143"],
"createdAt": "2025-01-09T10:00:30Z",
"testUrl": "https://example.com/homepage"
}
]
}Antwortanforderungen
Ihr Webhook-Endpunkt muss:
- innerhalb von 10 Sekunden antworten
- Einen
2xx-Statuscode für den erfolgreichen Empfang zurückgeben
Fehlerbehandlung
Implementieren Sie eine angemessene Fehlerbehandlung, indem Sie in diesen Szenarien einen nicht-2xx-Statuscode zurückgeben:
- Ungültige Signatur
- Zeitüberschreitung der Anfrage
- Fehlformatierte Nutzlasten
- Serverfehler
