Barrierefreie E-Books · Prüfen

EPUB prüfen: ace und epubcheck

Zwei kostenlose Werkzeuge, ein Bericht, fünf Schritte. Und der Satz, der in den meisten Anleitungen fehlt.

Stand: 10. September 2026  ·  Versionsnummern auf der Übersichtsseite

Die kurze Antwort

Zwei Werkzeuge, beide kostenlos, beide von den Leuten, die den Standard schreiben. epubcheck prüft, ob die Datei ein gültiges EPUB ist. ace by DAISY prüft, ob sie barrierefrei ist. Erst epubcheck, dann ace – ein technisch kaputtes EPUB lässt sich nicht sinnvoll auf Zugänglichkeit prüfen.

Und der Satz, der in den meisten Anleitungen fehlt: Null Befunde heißt nicht barrierefrei. Es heißt, dass nichts mehr gefunden wurde, was ein Programm finden kann.

Wer prüft was

epubcheckace by DAISY
FrageIst das ein gültiges EPUB?Ist es zugänglich?
Gepflegt vomDAISY Consortium (im Auftrag der W3C)DAISY Consortium
FindetKaputte Verweise, fehlende Dateien, ungültiges XHTML, falsche PaketstrukturFehlende Alternativtexte, kaputte Überschriftenfolge, fehlende Sprachangabe, schwacher Kontrast, unehrliche Metadaten
BrauchtJavaNode.js – oder die Ace-App ohne Kommandozeile
AusgabeMeldungen in der Konsole, optional XML oder JSONEin HTML-Bericht zum Durchklicken

Ohne Kommandozeile: die Ace-App

Wer keine Lust auf Terminal hat, installiert die Ace-App vom DAISY Consortium. Datei hineinziehen, Bericht kommt heraus, fertig. Sie macht dasselbe wie der Befehl unten und ist für die meisten der bessere Einstieg.

Die Kommandozeile lohnt sich trotzdem ab dem zweiten Buch – weil man den Befehl nach jeder Korrekturrunde wieder abschickt und die Berichte vergleichen kann. Genau das ist der Arbeitsablauf, der zu null Befunden führt.

Schritt 1: epubcheck

epubcheck ist ein Java-Programm. Das Projekt gehört zur W3C, gepflegt wird es vom DAISY Consortium – von denselben Leuten also, die auch ace machen. Herunterladen, entpacken, Java installieren, dann im Ordner mit der EPUB-Datei:

java -jar epubcheck.jar meinbuch.epub

Wenn nichts kommt außer einer Erfolgsmeldung: alles gut. Sonst bekommst du Meldungen in vier Stufen.

StufeBedeutungHandeln?
FATALDie Datei lässt sich nicht verarbeitenSofort. Nichts anderes geht vorher.
ERRORVerstoß gegen den StandardJa. Shops lehnen die Datei sonst ab.
WARNINGErlaubt, aber problematischAnschauen. Meist ja.
USAGEHinweis auf unübliche VerwendungZur Kenntnis nehmen.

Für ein Archiv lässt sich der Bericht auch als Datei speichern:

java -jar epubcheck.jar --json bericht.json meinbuch.epub

Ziel dieser Runde: keine FATAL- und keine ERROR-Meldung mehr. Erst dann weiter.

Schritt 2: ace

ace braucht Node.js – Version 20 ist Voraussetzung, 22 wird empfohlen. Node installieren, dann einmalig:

npm install @daisy/ace -g

Prüfen, ob es geklappt hat:

ace --version

Und dann der eigentliche Befehl. Der Ausgabeordner ist wichtig – ohne ihn landet der Bericht nur als JSON im Fenster und ist praktisch unlesbar:

ace -o bericht meinbuch.epub

Im Ordner bericht/ liegen danach report.html zum Anschauen, report.json für den Vergleich zwischen zwei Durchläufen und ein Ordner data/. Wenn der Ordner schon existiert, brauchst du -f zum Überschreiben – oder du gibst jedem Durchlauf einen eigenen Ordner (bericht-01, bericht-02 …). Ich mache Letzteres: So sieht man am Ende, wie die Befunde weniger wurden, und hat für den Anhang etwas vorzuzeigen.

Schritt 3: Den Bericht lesen

report.html im Browser öffnen. Der Bericht hat mehrere Teile, und die meisten Leute schauen nur auf den ersten.

Violations – die Befunde

Nach Schweregrad sortiert: critical, serious, moderate, minor. Jeder Befund nennt die Regel, die betroffene Datei, die Codestelle und einen Link zur Erklärung. Von oben nach unten abarbeiten – die kritischen Befunde sind fast immer auch die, die am schnellsten behoben sind.

Metadata – die Angaben über das Buch

Hier steht, was deine Datei über sich selbst behauptet: accessMode, accessibilityFeature, accessibilitySummary und der Rest. Diesen Abschnitt Zeile für Zeile mit der Wirklichkeit vergleichen. Der häufigste Fehler im ganzen Feld sitzt genau hier: Ein Programm hat alternativeText eingetragen, obwohl kein einziges Bild einen Alternativtext hat.

Outlines – die Struktur

Drei Gliederungen nebeneinander: die Überschriften, die HTML-Struktur und das Inhaltsverzeichnis. Sie sollten zusammenpassen. Wenn im Überschriftenbaum plötzlich eine Ebene fehlt oder ein Kapitel gar nicht auftaucht, siehst du es hier – und zwar schneller als in jedem Lesegerät.

Images – die Bilderliste

Der nützlichste Teil des ganzen Berichts, und der am meisten übersehene: eine Tabelle mit jedem Bild und dem, was daneben als Alternativtext steht. Das ist die Stelle, an der du deine Alt-Texte einmal am Stück liest statt verstreut im Quelltext. Dabei fällt auf, was ein Programm nie merken würde – dreimal derselbe Text, ein „Bild1.jpg“, ein Satz, der ohne Kontext nichts bedeutet.

Was ein guter Alternativtext ist, steht in Alternativtexte schreiben, die etwas taugen.

Was „null Befunde“ nicht heißt

Das ist der wichtigste Absatz auf dieser Seite. ace prüft, was maschinell prüfbar ist – und das ist weniger, als der grüne Haken vermuten lässt. Ein Bericht ohne Befunde beweist nicht, dass ein Buch lesbar ist. Diese Dinge musst du selbst prüfen:

  • Ob die Alternativtexte etwas taugen. ace prüft, ob einer da ist. Ob er das Bild beschreibt, kann es nicht wissen. alt="Bild" ist formal in Ordnung und inhaltlich wertlos.
  • Ob die Lesereihenfolge stimmt. Ein Bildunterschrift-Absatz, der im Code vor dem Bild steht, wird korrekt vorgelesen – nur an der falschen Stelle.
  • Ob die Überschriftenebenen sinnvoll sind. Eine Kapitelüberschrift als Überschrift 3 ist technisch erlaubt und strukturell falsch.
  • Ob die Sprachangabe stimmt. ace sieht, dass eine gesetzt ist. Dass ein deutsches Buch als en ausgezeichnet ist, merkt es nicht – die Sprachausgabe schon, und sie klingt dann furchtbar.
  • Ob fremdsprachige Stellen ausgezeichnet sind. Ein Zitat, ein Ortsname, ein Kunstwort in deiner Fantasywelt – wenn es anders klingen soll, muss es markiert sein.
  • Ob Tabellen richtig aufgebaut sind. Kopfzellen können gesetzt und trotzdem den falschen Spalten zugeordnet sein.
  • Ob das Inhaltsverzeichnis vollständig ist und die Sprünge dort landen, wo sie sollen.
  • Ob Text in Bildern steckt. Eine als Bild eingebaute Tabelle oder Karte ist für die Sprachausgabe eine leere Fläche, egal wie gut der Alt-Text ist.

Schritt 4: Die Gegenprobe von Hand

Zwanzig Minuten, und sie ersetzen keinen Prüfbericht – aber sie finden das, was kein Bericht findet.

  1. Mit Thorium Reader öffnen. Inhaltsverzeichnis durchklicken, Schrift stark vergrößern, auf Nachtmodus stellen. Bleibt alles lesbar? Verschwindet nichts?
  2. Mit dem Screenreader anhören. NVDA unter Windows, VoiceOver am Mac. Nicht das ganze Buch – Titelei, ein Kapitelanfang, eine Stelle mit Bild. Wenn du dabei zusammenzuckst, hast du deinen Befund.
  3. Die Bilderliste aus dem ace-Bericht am Stück lesen. Siehe oben.
  4. Die Metadaten gegen die Wirklichkeit halten. Steht dort etwas, das du nicht belegen kannst, raus damit.

Schritt 5: Den Beleg aufheben

Die Berichte mit Datum wegspeichern, am besten neben der EPUB-Datei, und den Werkzeug-Versionsstand dazuschreiben. Das ist keine Bürokratie. Es ist der Unterschied zwischen „ist barrierefrei“ und „geprüft am 10. September 2026 mit ace 1.4.6 und epubcheck 5.3.0, null Befunde“ – und das zweite ist die Aussage, die etwas wert ist.

Auf der Übersichtsseite liegen zwei Beispiel-EPUBs mit ihren Prüfberichten: eines mit falschen Metadaten, eines korrigiert. An den beiden Berichten nebeneinander sieht man in fünf Minuten, worum es hier geht.

Häufige Fragen

Muss ich beide Werkzeuge benutzen?

Ja. Sie prüfen verschiedene Dinge und ersetzen einander nicht. epubcheck sagt, ob die Datei gültig ist, ace, ob sie zugänglich ist. Ein Buch kann fehlerfrei durch epubcheck laufen und für einen Screenreader unbrauchbar sein.

Ich habe keine Kommandozeile und will auch keine.

Dann nimm die Ace-App. Datei hineinziehen, Bericht lesen. Für epubcheck gibt es ebenfalls grafische Oberflächen; außerdem prüfen manche Vertriebsplattformen die Datei beim Hochladen selbst.

ace meldet Kontrastfehler, obwohl ich nichts eingefärbt habe.

Dann kommt die Farbe aus dem Stylesheet deines Exportprogramms. Nachsehen, wo die Farbwerte gesetzt sind, und entweder korrigieren oder die Angabe entfernen – ohne Farbangabe entscheidet das Lesegerät, und das macht es meist besser.

Kann ich Befunde einfach ignorieren?

Manche schon, wenn du begründen kannst, warum sie in deinem Fall nicht zutreffen. Dann gehört diese Begründung aber dokumentiert. Was du nicht tun darfst: den Befund ignorieren und trotzdem in den Metadaten behaupten, das Merkmal sei erfüllt.

Wie oft muss ich prüfen?

Nach jeder Änderung an der Datei. Und ein letztes Mal an genau der Fassung, die du hochlädst – nicht an der davor.

Quellen und Werkzeuge

Weiterlesen

Den Teil, den kein Programm erledigt

Alternativtexte sind die einzige Stelle, an der ein Prüfbericht nur zählt, aber nicht beurteilt.