Berichte erstellen
Konvertieren Sie JSON-Ergebnisse zur Barrierefreiheit in HTML-, JUnit XML- oder CSV-Berichte mit dem Axe-Reporter-Befehl.
Wenn Sie die Axe DevTools APIs oder das axe CLI verwenden, um auf Barrierefreiheit zu testen, werden die Ergebnisse als JSON-Dateien gespeichert. Verwenden Sie den axe reporter-Befehl, um diese JSON-Dateien in HTML-, JUnit-XML-, CSV- oder universelle Formatberichte zu konvertieren. Sie können die Ergebnisse auch nach Typ filtern, bevor Sie einen Bericht erstellen.
Der axe reporter-Befehl
axe reporter <results-dir> [dest-dir] [options]Der <results-dir> ist das Verzeichnis, das die JSON-Ergebnisdateien enthält. Der optionale [dest-dir] ist der Speicherort, an dem die Berichte geschrieben werden; Sie können auch --dest verwenden, um ihn anzugeben.
Wenn Sie das axe CLI verwenden, um JSON-Ergebnisse mit axe oder axe spec zu erzeugen, können Sie stattdessen das --format-Flag direkt bei diesen Befehlen verwenden. Siehe Seiten analysieren und Seiten mit einer Spec-Datei analysieren.
Erstellen Sie einen CSV-Bericht aus JSON-Ergebnissen:
axe reporter ./axe-results/ ./axe-reports/csv/ --format=csvErstellen Sie Berichte gleichzeitig in mehreren Formaten:
axe reporter ./axe-results/ ./axe-reports/ --format=csv,html,junitOptionen
-d, --dest <path>
Gibt das Ausgabeverzeichnis für die erstellten Berichte an. Alternativ können Sie das Ziel als zweites Argument angeben.
-f, --format <type(s)>
Ausgabeformat(e): html, junit (XML), csv oder universal. Um mehrere Formate in einem Durchgang zu generieren, geben Sie sie durch Kommas, Leerzeichen, Semikolons oder Pluszeichen getrennt an. Leerzeichen um die Trennzeichen werden ignoriert.
Der universal-Wert gibt eine JSON-Datei im Axe Universalformat aus, das ein standardisiertes Schema ist, das in allen Axe-Produkten verwendet wird. Verwenden Sie die folgenden Begleitoptionen, um zu steuern, welche Metadaten in der Ausgabe aufgezeichnet werden.
--universal-ruleset <id>
Gibt die Regelwerks-ID an, die in den Metadaten der Ausgabe im universellen Format aufgezeichnet werden soll. Standardwert ist wcag2.1. Siehe die Regelset-Tabelle für gültige Werte.
--universal-best-practices
Zeichnet bestPracticesEnabled=true in den Metadaten der Ausgabe im universellen Format auf.
HTML-Berichte
Ein HTML-Bericht rendert sich selbst, wenn Sie ihn öffnen. Bevor die Datei geschrieben wird, versucht die CLI auch, sie in statisches Markup vorzu-rendern, damit der Inhalt bereits vorhanden ist und sofort angezeigt wird, sobald Sie sie öffnen, anstatt einen Moment später. Dieser Schritt ist unabhängig von dem Browser, den Sie für Tests verwendet haben, daher gelten Optionen wie --chrome-path und --chrome-options hier nicht.
Wenn Sie die CLI als Node.js-Paket installiert haben, funktioniert das Vorab-Rendering automatisch und es wird kein Browser benötigt. Wenn Sie die eigenständiger ausführbarer Datei verwenden, sucht die CLI stattdessen nach einem installierten Chrome, Edge oder Brave, um diesen Schritt auszuführen. Um sie auf einen bestimmten Browser zu verweisen, setzen Sie die Umgebung Variable AXE_DEVTOOLS_REPORTER_BROWSER_PATH.
Wenn die CLI keinen Browser findet (bei Verwendung der eigenständigen ausführbaren Datei), wird eine Warnung angezeigt und der Bericht wird dennoch geschrieben. Der Bericht wird immer noch normal angezeigt und funktioniert, wenn Sie ihn öffnen, nur ohne diese Instant-Display-Optimierung.
Auf einer langsamen Build-Maschine oder bei einem großen Bericht kann das Generieren eines HTML-Berichts mit einem Fehler wie browser render timed out after 30000ms fehlschlagen. Um mehr Zeit zu gewähren, setzen Sie AXE_DEVTOOLS_REPORTER_RENDER_TIMEOUT_MS auf eine Anzahl von Millisekunden. Der Standard ist 30000 (30 Sekunden). Schreiben Sie den Wert als einfache Ziffern; jeder andere Wert wird ignoriert und der Standard wird verwendet.
export AXE_DEVTOOLS_REPORTER_RENDER_TIMEOUT_MS=120000Für die anderen Umgebungsvariablen, die steuern, wie HTML-Berichte generiert werden, siehe Vorab-Rendering von HTML-Berichten.
--filter <type(s)>
Filtert, welche Ergebnistypen in den Bericht aufgenommen werden sollen. Akzeptiert eines oder mehrere von: passes, violations, incomplete, inapplicable. Mehrere Werte werden durch Kommas ohne Leerzeichen getrennt. Erfordert --format csv.
# Include only violations and incomplete results
axe reporter ./axe-results/ --format=csv --filter violations,incomplete
# Include only passed checks
axe reporter ./axe-results/ --format=csv --filter passes-b, --browser <name>
Wenn ein Ergebnisverzeichnis Ergebnisse von mehreren Browsern enthält, verwenden Sie diese Option, um einen Bericht nur aus den Ergebnissen eines Browsers zu erstellen. Der Name sollte mit dem Browser übereinstimmen, der beim Ausführen der Tests verwendet wurde, beispielsweise chrome oder firefox.
JSON-Ergebnisse auf der Festplatte
Das Verständnis, wie das Axe DevTools CLI JSON-Ergebnisdateien benennt und organisiert, ist nützlich, wenn Sie mit dem axe reporter-Befehl arbeiten oder Ergebnisse programmatisch verarbeiten.
Verzeichnisstruktur
Für jedes Projekt in einer Spezifikationsdatei werden die Ergebnisse in einem Unterverzeichnis gespeichert, das nach dem id des Projekts benannt ist, innerhalb des von Ihnen angegebenen Ausgabeverzeichnisses:
<output-dir>/<project-id>/Dieses Unterverzeichnis wird automatisch erstellt. Wenn es aus einem vorherigen Durchlauf bereits existiert, wird es archiviert, indem es in <project-id>-<timestamp> umbenannt wird, bevor ein neues Verzeichnis erstellt wird.
Dateibenennung
Jede JSON-Ergebnisdatei wird unter Verwendung des Projekt-id und eines Seitenstatus benannt, der aus der Seiten-id und dem optionalen title aus der analyze-Aktion abgeleitet wird:
<project-id>-<page-id>[-<analyze-title>].jsonDie Seiten-id stammt aus dem id-Feld in pageList. Wenn id nicht explizit auf einer Seite gesetzt ist, wird es automatisch aus der Seiten-name abgeleitet, indem Leerzeichen entfernt werden.
Das analyze-title-Segment wird nur angehängt, wenn ein Titel in der analyze-Aktion angegeben ist oder wenn eine Seite mehrere analyze-Aufrufe hat (in diesem Fall erhält jedes Ergebnis ein eindeutiges Suffix, um Kollisionen zu vermeiden).
Beispiel
Bei einem Projekt mit id: "deque" und einer Seite mit name: "Deque search" (keine explizite id) wird die automatisch abgeleitete Seiten-ID Dequesearch. Ein einzelner analyze-Aufruf ohne Titel erzeugt:
<output-dir>/deque/deque-Dequesearch.jsonMit analyze the page with title "initial state":
<output-dir>/deque/deque-Dequesearch-initial state.json