Referenz zum Axe DevTools Linter REST-API

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Referenzhandbuch zu den REST-Endpunkten des Axe DevTools Linter

Free Trial
Not for use with personal data

Mit Axe DevTools Linter können Sie Code auf Barrierefreiheitsprobleme überprüfen, indem Sie eine REST-API verwenden. Sie erstellen ein HTTP-Anfrageobjekt, das die zu prüfenden Quellzeilen enthält (im Body der Anfrage als JSON-Objekt), und der Server gibt ein Antwort-JSON-Objekt zurück, das auf mögliche Barrierefreiheitsprobleme hinweist, die der Server findet.

Der Server kann React (.js, .jsx, .ts und .tsx), Vue (.vue), Angular (.component.html), HTML (.html, .htm und .xhtml), LiquidJS (.liquid), HTL (.htl) und Markdown (.md und .markdown) Dateien überprüfen.

Die REST-Endpunkte

Der Server bietet sechs REST-Endpunkte. Der erste Endpunkt, (/lint-source), antwortet auf POST-Anfragen und prüft Ihren Code auf Barrierefreiheitsprobleme. Der zweite Endpunkt, (/status), antwortet auf GET-Anfragen und zeigt, ob der Server verfügbar ist, indem er mit einem 200-Statuscode anzeigt, dass der Server zuhört. Der dritte Endpunkt, (/healthcheck), antwortet auf GET-Anfragen, gibt an, ob der Server läuft, und liefert die Versionsnummer des laufenden Servers. Die verbleibenden drei Endpunkte ermöglichen es SaaS-Benutzern, Nutzungsinformationen für ihr gesamtes Unternehmen (/billing/enterprise), ihre Benutzer (/billing/user) und ihre API-Schlüssel (/billing/key) zu erhalten.

Die REST-Endpunkte sind wie folgt:

Endpunkt Anfragetyp Hinweise
/lint-source POST
/status GET Veraltet: Wird in einer zukünftigen Version von Axe DevTools Linter entfernt
/healthcheck GET
/billing/enterprise/:year/:month GET Nur gültig mit dem SaaS-Server
/billing/user/:year/:month GET Nur gültig mit dem SaaS-Server
/billing/key/:year/:month GET Nur gültig mit dem SaaS-Server

Der Lint-Endpunkt (/lint-source)

Der Lint-Endpunkt ist der primäre Serviceendpunkt. Sie können ihn verwenden, um Code an den Axe DevTools Linter zu senden, um auf Barrierefreiheitsprobleme zu prüfen. Er akzeptiert POST-Anfragen mit einem JSON-Body, der den zu prüfenden Code enthält.

Anfrage

Um diesen Endpunkt zu verwenden, erstellen Sie eine POST-Anfrage an den Lint-Endpunkt des Servers, wie im folgenden Beispiel gezeigt:

POST /lint-source

Sie müssen auch einen Content-Type-Header hinzufügen, um dem Server mitzuteilen, dass der Body der Anfrage ein JSON-Objekt enthält.

Content-Type: application/json

Wenn Sie Axe DevTools Linter SaaS verwenden, müssen Sie einen Authorization-Header mit Ihrem API-Schlüssel einschließen, wie unten gezeigt:

Authorization: <YOUR API KEY>

Weitere Informationen zum Erhalt eines API-Schlüssels finden Sie in Einen Axe DevTools Linter SaaS API-Schlüssel erhalten.

Der Body der Anfrage sollte den Code (in einem JSON-Objekt) enthalten, den Sie überprüfen möchten. Zum Beispiel wird mit dem folgenden JSON-Objekt ein Markdown-Beispiel geprüft:

{
  "source": "# heading\n### Another heading\n",
  "filename": "file.md"
}

Das obige Markdown-Beispiel enthält einen Barrierefreiheitsfehler: Die Überschriftsebenen haben eine Lücke zwischen der ersten Überschrift (Überschriftsebene 1) und der zweiten Überschrift (Überschriftsebene 3). Um die Serverantwort auf diesen Fehler zu sehen, lesen Sie den Abschnitt Antwort unten.

Das JSON-Anfrageobjekt

Die folgende Tabelle zeigt die Eigenschaften, die mit dem JSON-Anfrageobjekt verwendet werden:

Name Typ Beschreibung
source string Der Code, den Sie überprüfen lassen möchten. Sie müssen Anführungszeichen und Zeilenenden escapen.
filename string Der Dateiname des Codes. Der Server verwendet die Erweiterung des Dateinamens, um den Typ des in source enthaltenen Codes zu bestimmen und somit zu entscheiden, welchen Linter er verwenden soll.
config LinterConfig Ein optionales Konfigurationsobjekt zur Konfiguration der Lintprüfung. Weitere Informationen finden Sie unter Das config-Objekt.
language string Ein optionaler String, der den Linter angibt, der zur Prüfung des Codes verwendet werden soll.
properties string array Ein optionales Array zusätzlicher Eigenschaften, die in jedem error-Objekt der Antwort enthalten sein sollen. Derzeit wird nur der Wert "customName" unterstützt. Weitere Informationen finden Sie unter customName in der Beschreibung des error-Objekts.

Der source-String im JSON-Anfrageobjekt ist der Code, den Sie überprüfen lassen möchten. Sie müssen alle Anführungszeichen und Zeilenumbrüche escapen (durch Voranstellen eines Backslashes).

Der language-String kann einen der folgenden Werte annehmen:

Sprache Beschreibung
md Markdown
jsx JavaScript-Syntaxerweiterung (ermöglicht HTML gemischt mit JavaScript)
html HTML
vue Vue.js
tsx TypeScript-Syntaxerweiterung (wie jsx)
angular Angular
htl HTL (Adobe Experience Manager)

Der Server verwendet die Eigenschaften filename und language, um herauszufinden, welcher Linter verwendet werden soll. Normalerweise verwendet Axe DevTools Linter die Dateierweiterung der Eigenschaft filename, um den Linter auszuwählen. Wenn Sie den zu verwendenden Linter stattdessen angeben möchten, können Sie die Eigenschaft language und die in der Tabelle oben angegebenen Werte verwenden. In diesem Fall müssen Sie trotzdem eine filename als erforderlichen Parameter angeben, aber language hat Vorrang vor der Dateierweiterung. Wenn Sie beispielsweise eine filename von „somefile.html“ und eine language von md angeben, wird der Markdown-Linter verwendet.

Antwort

Der Server antwortet mit einem Antwortcode von 200, unabhängig davon, ob Barrierefreiheitsfehler vorliegen oder nicht. Sie müssen das JSON im Antwortkörper prüfen, um festzustellen, ob Fehler vorliegen.

Wenn der Code keine Fehler aufweist, sieht das JSON-Antwortobjekt wie folgt aus:

{
  "report": {
    "errors": []
  }
}

Das folgende Beispiel zeigt das JSON-Antwortobjekt für eine Quelle, die einen Fehler hat (beachten Sie, dass errors ein Array von error-Objekten ist).

{
  "report": {
    "errors": [
      {
        "ruleId": "heading-order",
        "helpURL": "https://dequeuniversity.com/rules/axe/4.3/heading-order?application=axe-linter",
        "description": "Ensures the order of headings is semantically correct",
        "lineContent": "### Another heading",
        "lineNumber": 2,
        "linterType": "md",
        "column": 1,
        "endColumn": 20
      }
    ]
  }
}
Das error-Objekt

Das errors-Array enthält error-Objekte, die die folgenden Eigenschaften aufweisen:

Name Typ Beschreibung
ruleId string Die Regel-ID der Barrierefreiheitsregel, die durch diesen Code verletzt wurde.
helpURL string Die Webseit-URL, die den Fehler erklärt.
description string Die Beschreibung des Fehlers.
lineContent string Der Quellcode des Fehlers.
lineNumber number Zeilennummer im Quelltext des Fehlers.
linterType string Der Linter, der verwendet wurde, um den Fehler zu finden. Es gibt verschiedene Linter, die verwendet werden, um Barrierefreiheitsprobleme zu finden.
column number Startspalte in Zeile lineNumber mit dem Fehler.
endColumn number Endspalte in Zeile lineNumber des Fehlers.
customName string Der Tag-Name des benutzerdefinierte Zuordnungskomponente, der den Verstoß ausgelöst hat. Nur vorhanden, wenn "customName" im properties-Array der Anfrage enthalten ist und der Verstoß von einer benutzerdefinierten Zuordnungskomponente stammt. Siehe Analyse von Verstößen bei benutzerdefinierten Komponenten für ein Beispiel dieser Eigenschaft im Antwortobjekt.

Das config-Objekt

Sie können eine config-Eigenschaft angeben, wenn Sie mehr Kontrolle über die Regeln haben möchten, die Axe DevTools Linter verwendet, um Ihren Quelltext auf Barrierefreiheitsfehler zu prüfen.

{
  "source": "<html></html>",
  "filename": "file.html",
  "config": {
    "rules": {
      "html-has-lang": false
    },
    "exclude": [],
    "tags": []
  }
}

Das vorherige Beispiel zeigt, dass, obwohl der Quelltext einen Barrierefreiheitsfehler hat (ein fehlendes lang-Attribut im html-Element), keine Fehler zurückgegeben werden, weil diese Regel deaktiviert wurde.

Das global-components-Objekt

Das global-components-Objekt ordnet benutzerdefinierte Komponenten und deren Attribute bestehenden HTML-Elementen und Attributen zu. Für einführende Informationen zum Linting benutzerdefinierter Komponenten, siehe Linting benutzerdefinierter Komponenten.

Das folgende Beispiel zeigt eine vollständige Zuordnung einer benutzerdefinierten Komponente:

{
  "config": {
    "global-components": {
      "custom-component": {
        "element": "html-element",
        "attributes": [
          { "custom-attribute-1": "html-element-attribute-1" },
          { "custom-attribute-2": "<text>" },
          "aria-*"
        ],
        "replace": true
    }
  }
}

Das Beispiel zeigt die Zuordnung von der benutzerdefinierten Komponente custom-component zu html-element mit den Attributen custom-attribute-1 zu html-element-attribute1 und custom-attribute-2 zu <text>, was ein spezieller Attributwert ist, der custom-attribute-2 dem Textinhalt des Ausgabe-HTML-Elements zuordnet. Für weitere Informationen, siehe Der spezielle <text>-Wert.

Der spezielle aria-*-Wert gibt an, dass alle ARIA-Attribute auf dem benutzerdefinierten Element auf das Ausgabe-HTML-Element kopiert werden sollen. Siehe Verwendung von aria-* für weitere Informationen.

Die replace-Eigenschaft gibt an, ob custom-component aus dem Ausgabe-DOM-Baum entfernt werden soll, was Angular- und JavaScript-Benutzerelemente einschließen. Der Standardwert ist derselbe wie der Standard für die verwendete Technologie. D. h. true für Angular und HTML, false für JSX, TSX und Vue.

note

Sie können die Eigenschaften element und attributes als el bzw. attrs abkürzen, jedoch nicht element und el zusammen oder attributes und attrs verwenden.

Wenn die benutzerdefinierte Komponente keine Attributzuordnung benötigt, können Sie dieses abgekürzte Format verwenden, das custom-component zu html-element zuordnet:

{
  "config": {
    "global-components": {
      "custom-component": "html-element"
    }
  }
}
Die rules-Eigenschaft

Die rules-Eigenschaft bezieht sich auf ein LinterRuleset-Objekt, das es Ihnen ermöglicht, Regeln durch ihre Regel-ID zu aktivieren oder zu deaktivieren. Für weitere Informationen über die Barrierefreiheitsregeln, siehe Axe DevTools Linter Barrierefreiheitsregeln.

Zum Beispiel aktiviert die folgende Konfiguration die image-alt-Regel und deaktiviert die tabindex-Regel:

{
  "config": {
    "rules": {
      "image-alt": true,
      "tabindex": false
    }
  }
}

Für eine Liste von Regeln, gegen die der Server prüft, siehe Axe DevTools Linter-Barrierefreiheitsregeln

Die exclude-Eigenschaft

Die exclude-Eigenschaft kann verwendet werden, um Axe Linter anzuweisen, bestimmte Dateien beim Linting zu überspringen. Siehe Konfigurationsdatei in der Dokumentation für Axe DevTools Linter Connector für weitere Informationen.

Die tags-Eigenschaft

Die tags-Eigenschaft ist ein Array von Strings oder Tags. Jedes Tag ist an eine oder mehrere Barrierefreiheitsregeln gekoppelt, sodass durch die Angabe mehrerer Tags hier viele verschiedene Barrierefreiheitsregeln aktiviert werden können (und alle Regeln deaktiviert werden, die nicht mit den angegebenen Tags versehen sind). Die Tags entsprechen typischerweise verschiedenen Barrierefreiheitsstandards, und jede Regel kann Mitglied vieler verschiedener Tags sein.

note

Wenn Sie mehr als ein Tag angeben, werden alle Regeln in allen Tags aktiviert, anstatt nur diejenigen, die zu allen Tags gehören. Mit anderen Worten, es ist eine Vereinigung von Regeln und kein Schnittpunkt von Regeln.

Der Status-Endpunkt (/status)

important

Der /status-Endpunkt ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie stattdessen den /healthcheck-Endpunkt.

Der Health-Check-Endpunkt (/healthcheck)

Um zu prüfen, ob der Server läuft, und um seine Versionsnummer zurückzugeben, senden Sie eine GET-Anfrage an den Health-Check-Endpunkt. Ein Beispiel einer Anfrage wird unten gezeigt:

GET /healthcheck

Wenn der Server läuft, antwortet er mit der Versionsnummer des Servers, wie im unten gezeigten Beispiel:

{
  "version": "4.10.3"
}

Der Enterprise-Billing-Endpunkt (/billing/enterprise)

note

Der Endpunkt wird für Axe DevTools Linter SaaS und Private-Cloud-Produkte unterstützt. Für Private-Cloud-Implementierungen ersetzen Sie die SaaS-Server-URLs in den Beispielen durch Ihre Private-Cloud-Server-URLs.

Der Enterprise-Billing-Endpunkt ermöglicht es Ihnen, Gesamtverwendungsinformationen für Ihr Unternehmen zu erhalten sowie die Nutzung aufgeschlüsselt nach einzelnen API-Schlüsseln. Der Endpunkt antwortet auf eine GET-Anfrage und erfordert, dass Sie ein Jahr und einen Monat angeben (hier Mai 2022), wie unten gezeigt:

GET https://axe-linter.deque.com/billing/enterprise/2022/4
authorization: <YOUR-API-KEY>
important

Das JavaScript-Date-Objekt verwendet Monate im Bereich von 0 bis 11, wobei 0 für Januar und 11 für Dezember steht. Allerdings reicht der month-Wert in der Serverantwort von 1 bis 12, wobei 1 für Januar und 12 für Dezember steht.

Die Anfrage erfordert einen authorization-Header mit Ihrem API-Schlüssel. Siehe Einen API-Schlüssel erhalten für weitere Informationen.

Standardmäßig gibt der Server einen Monat an Daten zurück, aber Sie können den optionalen months=<number-of-months-data>-Abfrageparameter verwenden, um mehr anzugeben. Der months-Parameter kann im Bereich von 1 bis 12 (inklusive) liegen. Das unten gezeigte Beispiel zeigt, wie man drei Monate an Daten erhält, beginnend mit Mai 2022:

GET https://axe-linter.deque.com/billing/enterprise/2022/4?months=3
authorization: <YOUR-API-KEY>

Antwort

Der SaaS-Linter-Server antwortet mit einem JSON-Objekt, das zwei Objekte enthält. Das erste ist ein summary-Objekt, und das zweite, api_keys, ist eine Sammlung von Objekten, die Informationen über die Nutzung des Linter-Dienstes durch jeden API-Schlüssel enthalten.

Ein Beispiel für ein Antwortobjekt wird unten gezeigt:

{
  "summary": {
    "year": 2022,
    "month": 5,
    "total_lines_linted": 500,
    "total_scans": 40
  },
  "api_keys": [{
    "id": "a2fd58d0-4810-4fbb-b928-7befa01bf89c",
    "name": "My Project",
    "keycloak_id": "d117bb33-1308-41b0-8960-06301eefb169",
    "user_email": "someone@example.com",
    "total_lines_linted": 500,
    "total_scans": 40
  }]
}

Wenn es keine Daten für den angegebenen Zeitraum gibt, sieht die Antwort wie folgt aus:

{
  "summary": {
    "year": 2022,
    "month": 5
  },
  "api_keys": []
}
Das summary-Objekt

Das summary-Objekt gibt Ihnen Informationen über die Gesamtanzahl der gelinteten Zeilen und wie viele Scans von Benutzern innerhalb des Unternehmens initiiert wurden.

Name Typ Beschreibung
year Zahl Das Startjahr der Ergebnisse
month Zahl Der Startmonat (1-12) der Ergebnisse
total_lines_linted Zahl Gesamtzeilen, die vom Unternehmen an den Linter-Dienst gesendet wurden
total_scans Zahl Gesamtanzahl der vom Unternehmen durchgeführten Scans
Das api_keys-Array

Das api_keys-Array enthält Objekte, die aus den folgenden Eigenschaften bestehen:

Name Typ Beschreibung
id Zeichenkette Eine UUID, die den Benutzer identifiziert
name Zeichenkette Der Name, der dem API-Schlüssel bei seiner Erstellung gegeben wurde
keycloak_id Zeichenkette Die Keycloak-ID des Benutzers
user_email Zeichenkette E-Mail-Adresse des Benutzers
total_lines_linted Zahl Gesamtzahl der Zeilen, die an den Linter-Dienst gesendet wurden
total_scans Zahl Gesamtzahl der Scans, die dieser Benutzer initiiert hat

Die Benutzerabrechnungs-Schnittstelle (/billing/user)

note

Die Schnittstelle wird für Axe DevTools Linter SaaS und Private-Cloud-Produkte unterstützt. Für Private-Cloud-Bereitstellungen ersetzen Sie die SaaS-Server-URLs in den Beispielen durch Ihre Private-Cloud-Server-URLs.

Diese Schnittstelle, die Nutzungsabrechnungs-Schnittstelle, ermöglicht es Ihnen, Abrechnungsinformationen für einen Benutzer für alle API-Schlüssel zu erhalten, die zum Zugriff auf den SaaS-Server verwendet wurden. Standardmäßig werden die Daten eines Monats zurückgegeben.

Das folgende Beispiel zeigt eine Anfrage für Mai 2022 für den Benutzer, der durch den bereitgestellten API-Schlüssel (im authorization Header) dargestellt wird:

GET https://axe-linter.deque.com/billing/user/2022/4
authorization: <YOUR-API-KEY>
important

Das JavaScript-Date-Objekt verwendet Monate im Bereich von 0 bis 11, wobei 0 für Januar und 11 für Dezember steht. Im Gegensatz dazu reicht der month-Wert in der Serverantwort von 1 bis 12, wobei 1 für Januar und 12 für Dezember steht.

Wie bei den anderen Abrechnungs-Schnittstellen können Sie eine optionale months-Abfragezeichenfolge wie unten gezeigt angeben:

GET https://axe-linter.deque.com/billing/user/2022/4?months=2
authorization: <YOUR-API-KEY>

Das folgende Beispiel zeigt ein Antwortobjekt:

{
  "summary": {
    "year": 2022,
    "month": 5,
    "total_lines_linted": 500,
    "total_scans": 40
  },
  "api_keys": [{
    "id": "a2fd58d0-4810-4fbb-b928-7befa01bf89c",
    "name": "My Project",
    "keycloak_id": "d117bb33-1308-41b0-8960-06301eefb169",
    "user_email": "someone@example.com",
    "total_lines_linted": 500,
    "total_scans": 40
  }]
}

Wenn der Benutzer für den angegebenen Zeitraum keine Nutzung hatte, würden Sie diese Antwort erhalten:

{
  "summary": {
    "year": 2022,
    "month": 5
  },
  "api_keys": []
}

Das Antwortobjekt enthält zwei Objekte, summary und api_keys, die zum Benutzer gehören. Für weitere Informationen siehe Das summary-Objekt und Das api_keys-Array oben.

Die API-Schlüsselabrechnungs-Schnittstelle (/billing/key)

note

Die Schnittstelle wird für Axe DevTools Linter SaaS und Private-Cloud-Installationen unterstützt. Für Private-Cloud-Installationen ersetzen Sie die Server-URLs (https://axe-linter.deque.com) in den untenstehenden Beispielen durch Ihre Private-Cloud-Server-URLs.

Um Nutzungsdaten für einen API-Schlüssel zu erhalten, können Sie die API-Schlüsselabrechnungs-Schnittstelle verwenden. Sie müssen das Jahr und den Monat wie unten gezeigt angeben:

GET https://axe-linter.deque.com/billing/key/2022/4
authorization: <YOUR-API-KEY>
important

Das JavaScript-Date-Objekt verwendet Monate im Bereich von 0 bis 11, wobei 0 für Januar und 11 für Dezember steht. Im Gegensatz dazu reicht der month-Wert in der Serverantwort von 1 bis 12, wobei 1 für Januar und 12 für Dezember steht.

Wie bei den anderen Abrechnungs-Schnittstellen können Sie eine optionale months-Abfragezeichenfolge wie unten gezeigt angeben:

GET https://axe-linter.deque.com/billing/key/2022/4?months=2
authorization: <YOUR-API-KEY>

Unten wird ein Beispiel-Antwortobjekt angezeigt:

{
  "name": "My Project",
  "total_lines_linted": 1000,
  "total_scans": 200
}

Wenn während des angegebenen Zeitraums keine Zeilen unter Verwendung des im Authorization Header angegebenen API-Schlüssels geprüft wurden, würden Sie eine Antwort wie die folgende erhalten:

{
  "name": "My Project",
  "total_lines_linted": 0,
  "total_scans": 0
}

Der name-Wert ist der Name, der dem API-Schlüssel bei der Erstellung zugewiesen wurde. Die anderen Werte, total_lines_linted und total_scans, geben die Anzahl der Zeilen an, die im angegebenen Zeitraum geprüft wurden, und die Gesamtzahl der Scans, die mit diesem API-Schlüssel im angegebenen Zeitraum initiiert wurden.

Schnellreferenz für URLs

Wichtige URLs für die Verwendung mit Axe DevTools Linter SaaS sind wie folgt:

URL Beschreibung
https://axe-linter.deque.com Der öffentlich zugängliche Axe DevTools Linter SaaS-Server. Erfordert einen API-Schlüssel zur Nutzung.
https://axe.deque.com/settings Die URL für die Web-App zum Erhalten von Axe DevTools Linter SaaS-Authentifizierungs-API-Schlüsseln.

Weitere Informationen zu den Schritten zum Erhalt eines API-Schlüssels finden Sie unter Erhalt eines Axe DevTools Linter SaaS-API-Schlüssels.