Versionen.
Veröffentlichungsdaten, Änderungen am Prüfmodell und Direktdownload der Installationspakete für Windows, macOS und Linux.
Versionsverlauf.
-
v3.4.0 Aktuell 16. September 2026
InklaraPDF spricht jetzt in allen sechs Sprachen durchgehend dieselbe Sprache wie die Oberfläche: Befunde, Fundstellen, Normbezüge, Stufen- und Statusberichte und die Technische Dokumentation standen bisher außerhalb des Deutschen in Teilen deutsch. Die Zusätzlichen Prüfungen sagen jetzt für jede Prüfung, wie verbindlich sie ist und warum sie nicht in die Stufe eingeht. Dazu Korrekturen an Zahlen, die nicht stimmten: Die Fehler-Kachel des Statusberichts zeigte seit Juni immer 0. Und einige Prüfungen lasen den Text des Strukturbaums nur teilweise, sodass ihre Anzahlen von der Rechnerlast abhingen – dieselbe Datei ergab einmal 182, einmal 119 Hinweise. Wichtig: Doppelt vergebene Inhaltskennungen (MCID) und Strukturverweise ohne Inhalt blockieren jetzt Stufe 4 in beiden Profilen. Außerdem lesen die Prüfungen den Text des Strukturbaums jetzt vollständig; bei großen Dateien können dadurch mehr Hinweise und Befunde erscheinen als in 3.3.2 – die früheren Zahlen waren zu niedrig.
Geändert – strengeres Urteil
- Zwei Prüfungen blockieren jetzt Stufe 4: doppelt vergebene Inhaltskennung (MCID) und Strukturverweis ohne Inhalt (<code>S4-MCID-1</code>, <code>S4-MCID-2</code>): Bis 3.3.2 waren beide Zusätzliche Prüfungen ohne Einfluss auf die Stufe. Sie sind aber wörtliche Pflichten der PDF-Grundnorm (ISO 32000-1 §14.7.4.2 und Tabelle 324) und über ISO 14289-1 §6.2 auch PDF/UA-1-Pflicht. Eine Datei mit einem dieser Befunde erreicht Stufe 4 in keinem Profil mehr. Kann die Prüfung nicht laufen, gilt die Datei als nicht prüfbar, nicht als konform. Gemessen an 56 Dateien des Testbestands: ein Treffer, und zwar in einer Rohdatei vor der Bearbeitung. Die beiden Schalter unter Einstellungen → Zusätzliche Prüfungen entfallen.
- Prüfungen lesen den Text des Strukturbaums vollständig: Bisher las die Prüfung ihn nur acht Sekunden lang und lud den Rest im Hintergrund nach – die Prüfungen auf Fremdsprache, Fußnoten, Tabellen- und Bildunterschriften und die Textauszüge der Fundstellen hatten aber schon mit dem Teilstand gerechnet. Auf einem ausgelasteten Rechner kam weniger Text zusammen und damit eine kleinere Zahl; ein Textauszug fehlte mal, mal nicht. Jetzt liefern auch drei gleichzeitige Prüfungen derselben Datei identische Befunde. Die Prüfung dauert dadurch 10 bis 20 Sekunden länger. Als Schutz vor hängenden Dateien bleibt eine Grenze von zehn Minuten; wird sie erreicht, ist Stufe 3 „nicht prüfbar" statt eine Teilzahl zu melden.
Geändert
- Texte der Zusätzlichen Prüfungen neu – mit Kennzeichen, wie verbindlich jede ist: Technische Dokumentation, Belege-Karten, Befundtexte und Einstellungen sagen jetzt für jede Zusätzliche Prüfung, ob sie eine Pflicht der PDF-Grundnorm, eine Pflicht nach PDF/UA-1, eine Empfehlung der Norm, erst für PDF/UA-2 relevant oder ausdrücklich erlaubt ist – und warum sie trotzdem nicht in die Stufe eingeht („Warum zusätzlich?"). Jeder Normbezug nennt, was die Stelle besagt. Mehrere frühere Aussagen waren falsch und sind berichtigt, etwa dass der Text einer Beschriftung nicht in einem
Spanstehen solle oder dass eine Abbildung keine Unterelemente tragen dürfe. Die Unterschiede zum DACH-Standardprogramm stehen in der Technischen Dokumentation jetzt als aufklappbare Einträge mit Kennzeichen. In allen sechs Sprachen. - Exporte tragen denselben Wortlaut wie die App: Der Export der Technischen Dokumentation als CSV und PDF zeigt jetzt Kennzeichen, „Warum zusätzlich?" und dieselben Normbezüge wie die App; vorher standen dort die alten Normbezüge aus dem Quelltext. In der CSV stehen die zwei neuen Angaben als Spalten am Ende, die bisherigen Spalten bleiben, wo sie waren. Die Befunde-CSV übernimmt bei Zusätzlichen Prüfungen Urteil, Beleg und Quelle der Belege-Karte, statt Beschreibung und Normbezüge leer zu lassen. Die Befundtitel der Zusätzlichen Prüfungen nennen die Anzahl und denselben Titel wie Doku und Einstellungen, zum Beispiel „18× Link unter einem Container ohne Lageangabe (
/Placement)" – in App, JSON, CSV und PDF. - Alle sechs Sprachen vollständig: Befundtitel und -beschreibungen (auch die von veraPDF), Fundstellen, Normbezüge, Profilnamen, Anforderungsnamen und Begründungen der Stufen, Stufe-1-Sichtprüfungen, Uhrzeit und Angaben wie „3 von 8" erscheinen in der eingestellten Sprache – in App, JSON, CSV, PDF und Stapelverarbeitung. Strukturpfade, Kennungen und Textauszüge aus der geprüften PDF bleiben unverändert. Meldungen anderer Prüfprogramme stehen wörtlich in Anführungszeichen, englische Normzitate wörtlich mit unmittelbar folgender Übersetzung. Französisch mit korrekten Akzenten, Einzahl und Mehrzahl in allen Sprachen richtig („1 Fundstelle"). Spanisch und Niederländisch sprechen von „Nivel" bzw. „Niveau" statt „Level"; auch die Dateinamen der Berichte folgen.
- Befundtitel nennen in allen Sprachen die Anzahl wie im Deutschen: Zum Beispiel „10 images with captions without a Div/Sect container".
- Kennungen der veraPDF-Befunde ohne Laufnummer: Die Kennung trug die Position in der Liste, die veraPDF je Lauf in anderer Reihenfolge liefert – dieselbe Regel hieß beim nächsten Prüfen anders. Ausgeblendete Befunde bleiben ausgeblendet; gespeicherte Ausblendungen unter der alten Kennung gelten weiter.
Schneller
- Analyse und Tagbaum bei großflächiger Vektorgrafik direkt im Seiteninhalt: Eine Broschüre mit gelber Schraffur aus Millionen Einzellinien brauchte für die Analyse über sechs Minuten und für den Tagbaum vier weitere. Die Abkürzung aus 3.3.2 griff nur, wenn die Grafik in einem Formular liegt. Jetzt werden auch solche Linien im Seiteninhalt beim Lesen durch einen gleichwertigen Stellvertreter ersetzt – einmal erkannt und gemerkt. Die Prüfergebnisse ändern sich dadurch nicht; veraPDF und die Seitenbilder lesen weiter die unveränderte Datei.
Korrigiert
- Zusatzprüfung „Formular setzt Farbe ohne Farbraum" übersah den Fall, an dem ein anderes Prüfprogramm die ganze Prüfung abbricht („1 Component required, but found 3"): Die Prüfung gab ein Formular frei, sobald darin irgendein Farbraum gewählt wurde – auch nur der für Konturen. Füllung und Kontur werden jetzt getrennt und in ihrer Reihenfolge geprüft: Eine Füllfarbe vor der Wahl des Füllfarbraums wird gemeldet. Gefunden an einer Broschüre mit vier solchen Formularen; die berichtigte Fassung und die Rohdatei bleiben ohne Befund.
- „Anmerkung ohne Beschreibung" meldete doppelt: Fehlt die Beschreibung ganz oder ist sie leer, meldet das schon Stufe 4. Die Zusatzprüfung meldet jetzt nur noch Beschreibungen, die nur aus Leerzeichen bestehen – formal vorhanden, für den Screenreader stumm; das fand bisher nur sie.
- Lageangabe über Attributklassen wurde übersehen: „Lageangabe bei Abbildung, Fußnote und Verweis" und „Link unter einem Container ohne Lageangabe" lasen nur die Attribute direkt am Element (
/A). Ein/Placement, das über eine Attributklasse gesetzt ist (/Cmit/ClassMap, ISO 32000-1 §14.7.5.2), zählt jetzt ebenfalls. - Drei Zusatzbefunde zeigten nicht, was sie sollten: Die Karte „Verzeichnis-Link springt auf die ganze Seite" bekam ihre Belege-Karte nie, weil diese keinen Wortlaut des DACH-Standardprogramms hat – der Fehler blieb still. Die Karte „Link-Tag ohne Anmerkung" zeigte in jeder Sprache einen alten deutschen Text. Und der Reparaturhinweis zu dokumentinternen Sprungzielen riet, das Strukturelement in
/Deinzutragen; genau das macht das Sprungziel unauflösbar – richtig ist/SDzusätzlich zur Seite. Die Technische Dokumentation führt „Link-Tag ohne Anmerkung (leere Hülle)" jetzt als eigenen Eintrag. - Exporte direkt nach der Prüfung zählten zu wenig: InklaraPDF lädt die Textauszüge des Strukturbaums nach der Prüfung im Hintergrund nach. Befund-, Stufen- und Statusberichte, das annotierte PDF und die Stapelverarbeitung haben darauf nicht gewartet: Wer gleich exportierte, bekam bei einer Testdatei 0 statt 140 leere Tabellenzellen. Alle diese Exporte warten jetzt, bis der Text vollständig ist; die Befundansicht selbst lädt weiter sofort und ergänzt nach.
- Statusbericht: Die Fehler-Kachel zeigte immer 0: Seit einer Umstellung im Juni suchte die Zählung einen Abschnitt unter seinem früheren Namen und fand keinen – „nicht bestanden" stand neben „0 Fehler". Außerdem waren doppelte und tote Inhaltskennungen, Content-Stream-Syntax, interne Sprungziele und Unicode-Zuordnung keinem Bereich zugeordnet: Eine Datei mit fünf toten Strukturverweisen zeigte „0 von 8" betroffenen Bereichen und jeden Bereich als bestanden. Beides stimmt jetzt; ein Test verlangt für jede künftige Stufe-4-Anforderung einen Bereich.
- Ungetaggtes Bild wurde außerhalb des Deutschen durch fremden Text ersetzt: Eine Seite, auf der veraPDF nur ein Bildobjekt meldet, wurde nur an der deutschen Bezeichnung erkannt; in jeder anderen Sprache erschienen stattdessen zehn Textbereiche derselben Seite. Die Zahl der Fundstellen hing damit an der Sprache.
- Ein englischer Export veränderte die deutschen Normbezüge: Die Übersetzung schrieb in gemeinsam genutzte Vorgaben; danach stand im deutschen Export „BMUV manual". Sie arbeitet jetzt auf Kopien.
- Zeichen, die die Berichtsschrift nicht kennt, standen in einzelnen Katalogtexten und wurden im PDF zu einem unsichtbaren Steuerzeichen: Ein Test prüft jetzt alle Katalogtexte gegen den Zeichenvorrat der Schrift.
-
v3.3.2 14. September 2026
Drei Korrekturen am Tagbaum. Eine Broschüre mit großflächiger Vektorschraffur ließ die Ansicht nicht mehr öffnen: Der Tagbaum brauchte gut vier Minuten und erschien in der App dann gar nicht. Ein Klick auf eine Figur markierte im Seitenbild nichts – Bilder bekamen keinen Rahmen. Und wurde der Tagbaum aufgebaut, während noch eine Prüfung las, konnte sich fremder Text in einzelne Tags mischen. Prüfergebnisse ändern sich durch diese Fassung nicht. Bei Dateien mit solcher Grafik ist der Strukturtext im Bericht jetzt vollständig, statt nach dem Zeitdeckel gekürzt.
Behoben
- Tagbaum öffnet sich auch bei schwerer Vektorgrafik: Eine gelbe Schraffur aus Einzellinien lag in fünf Formularen (Form-XObjects) mit je rund 6 MB und 665 000 Zeichenbefehlen – ohne Text, ohne Tag, ganz im Artefakt. Beim Lesen wurde jeder dieser Befehle einzeln zerlegt. Große Formulare, aus denen nichts in den Tagbaum gelangen kann, werden jetzt durch einen gleichwertigen Kurzinhalt ersetzt: Marken, Grafikzustand und Malbefehle bleiben in derselben Reihenfolge erhalten, sodass Kontrast-, Artefakt- und Verweisprüfungen genau dasselbe sehen wie vorher. Gemessen an der Broschüre: Tagbaum 250 s → 11,5 s, Strukturbaum mit Volltext 76 s → 3,5 s, Analyse ohne veraPDF 61 s → 8 s. Baum, Texte und Rahmen sind vorher und nachher Zeichen für Zeichen gleich, ebenso an 30 Vergleichsdokumenten.
- Tagbaum-Seitenansicht: Bilder und Formulare bekommen ihren Rahmen: Bisher erhielt nichts, was als Bild oder Formular gezeichnet wird, eine Fläche – in der Broschüre hatten 14 von 20 Figuren keinen Rahmen, ein Klick darauf markierte nichts. Jetzt wird jedes Bild und jedes Formular auf der Seite vermessen: 20 von 20 Figuren mit Rahmen. An 30 Vergleichsdokumenten kamen 400 Rahmen hinzu, keiner verschwand oder verrutschte. Ein beschnittenes Bild bekommt den Rahmen des ganzen Bildes, nicht nur des sichtbaren Ausschnitts.
- Tagbaum: Kein fremder Text und keine fremden Rahmen mehr, wenn gleichzeitig eine Prüfung liest: Wurde der Tagbaum aufgebaut, während eine andere Prüfung Seiten las – etwa direkt nach dem Hochladen, solange die Zusatzprüfungen noch laufen, oder mit mehreren offenen Ansichten –, konnte sich deren Text in einzelne Tags mischen, und Rahmen wuchsen über die halbe Seite. Der falsche Stand blieb gespeichert. Die Leseklasse wird jetzt je Vorgang gewählt statt für das ganze Programm auf einmal. Der Fehler bestand schon in 3.3.1. Gespeicherte Tagbäume werden mit dieser Fassung neu aufgebaut.
-
v3.3.1 10. September 2026
Zwei Korrekturen in der Seitenansicht des Tagbaums. Auf Seiten mit um 90° gesetztem Satz ließ sich der Inhalt eines Tags nicht wiederfinden: Der Rahmen blieb ein schmaler Strich, und ein Klick auf die gedrehte Zeile im Seitenbild fand den Tag nicht. Und hineingezoomt war auf macOS mit Safari vor 17.6 der linke Seitenrand nicht mehr zu erreichen – eine Markierung dort lag außer Sicht. Die Sichtprüfung war an solchen Stellen praktisch nicht durchführbar. Prüfergebnisse und Berichte ändern sich durch diese Fassung nicht.
Behoben
- Tagbaum-Seitenansicht: Rahmen und Klick treffen jetzt auch um 90° gesetzten Satz: Bisher blieb der Rahmen um den angeklickten Tag dort ein 3 pt schmaler Strich, gleich wie lang die Zeile gedruckt war, und ein Klick auf die gedrehte Zeile im Seitenbild fand den Tag nicht. Die Fläche wurde achsenparallel aus der Textmatrix gelesen; bei gedrehtem Satz sind genau diese Werte null. Jetzt läuft die Fläche durch die volle Matrix – wie bei Pfaden und Bildern schon immer. Gemessen an einer Prüfdatei mit vier Seiten gedrehtem Satz: Deckung mit der wahren Fläche von 0,02 auf 0,94 (Median). Gerader Satz bleibt unverändert, auch an einem Dokument mit 272 Seiten und rund 20 000 Flächen; die Ladezeit des Tagbaums bleibt gleich.
- Tagbaum-Seitenansicht: Hineingezoomt bleibt der linke Seitenrand erreichbar: Die Seite wurde mit
align-items: safe centerzentriert; das Schlüsselwortsafekennt WebKit erst ab Safari 17.6. Auf älteren macOS-Fassungen – und im App-Fenster, das dasselbe WebKit nutzt – wurde die Regel verworfen: Die Seite ragte beim Hineinzoomen nach links über den Rollbereich hinaus, und eine Markierung am linken Rand war nicht mehr zu erreichen. Die Seite wird jetzt über ihren eigenen Rand zentriert, der Sprung zur Markierung rollt auch seitwärts, und „+" / „−" zoomen auf die gewählte Markierung hin, wenn sie zu sehen ist.
-
v3.3.0 7. September 2026
Diesmal ging es um Befunde, die zwar stimmten, aber niemandem halfen. Zwei ParentTree-Meldungen nannten nur eine Zahl oder standen siebenmal wortgleich ohne Seite in der Liste – an einer Kundendatei war deshalb nicht zu ermitteln, welcher Link gemeint war. Der HTML-Bericht ließ die dreizehn Sichtprüfpunkte ganz weg; wer nur ihn las, sah den halben Stufe-1-Block nicht. Dazu zwei neue Prüfungen: ein Zeichen ohne Unicode-Zuordnung blockiert jetzt die maschinelle PDF/UA-Aussage – eine Datei konnte bei uns „erfüllt" heißen und beim Kunden im DACH-Standardprogramm an einem geschützten Leerzeichen durchfallen. Und ein /Link-Tag ohne Verknüpfungsobjekt sieht im Tag-Baum aus wie ein Link, springt aber nirgendwohin.
Hinzugefügt
- Zeichen ohne Unicode-Zuordnung wird jetzt erkannt: Blockiert die maschinelle PDF/UA-Aussage in beiden Profilen. Eine Datei konnte bisher bei uns „PDF/UA-1 erfüllt" heißen und beim Kunden im DACH-Standardprogramm durchfallen – an einem einzigen Zeichen: einem geschützten Leerzeichen (
0xA0) in einer Schrift ohne/ToUnicode. WinAnsiEncoding belegt diesen Code nicht, die veraPDF-Baseline erkennt den Fall nicht. Geprüft wird eng: nur die Codes, die WinAnsiEncoding wirklich offen lässt (0x7F,0x81,0x8D,0x8F,0x90,0x9D,0xA0,0xAD), nur in simplen Schriften ohne/ToUnicode, und nur wo/Differencessie nicht neu belegt. Gegen den eigenen Bestand gemessen: 0 von 12 Referenzdateien und 39 von 41 abgenommenen Abgaben bleiben unberührt; die zwei Treffer sind genau die Datei, an der der Fall gefunden wurde. Matterhorn 1.1 CP 10 / FC 10-001 · ISO 14289-1 §7.2 · ISO 32000-1 §9.10.2 und Annex D.2. - Neue Zusatzprüfung „Link-Tag ohne Anmerkung (leere Hülle)": Ein
/Link-Strukturelement ohne Verknüpfungsobjekt sieht im Tag-Baum aus wie ein Link, springt aber nirgendwohin. In einer Kundendatei sind es 72 Stück – das ganze Inhaltsverzeichnis, vollständig leere Link-Elemente. Nicht normativ (PDF/UA-1 §7.18.1 verlangt die Gegenrichtung), daher Hinweis ohne Stufen-Wirkung. Texte in sechs Sprachen. - Die ParentTree-Befunde sagen jetzt, wo: „Kein ParentTree-Eintrag für den Schlüssel der Seite" nannte nur die Zahl („10 beanspruchte MCID(s)"). Jetzt stehen die Elemente in der Zeile: Figure 0, P 1, Span 2 … Die Zusammenfassung je Seite bleibt – eine Seite mit 500 MCIDs erzeugte sonst 500 Zeilen für eine Ursache.
- Der Befund „Verknüpfungsobjekt zeigt auf eine fremde Anmerkung" ist jetzt auffindbar: Er existierte längst – als Teil der ParentTree-Prüfung –, stand aber siebenmal wortgleich in der Liste, ohne Seite und ohne Ort. An einer Kundendatei war deshalb nicht zu ermitteln, welcher Link gemeint ist. Jetzt nennt jede Fundstelle Seite, Linktext und Klickfläche – „S26: Die Anmerkung des Links – ‚…', Klickfläche x 353.9–446.8, y 89.3–100.5 trägt den StructParent-Schlüssel 0 …". Der Detektor kannte all das; er reichte es nur nicht weiter.
Behoben
- Der HTML-Bericht ließ die Sichtprüfpunkte weg: Er endete auf Item-Ebene; die S1-MAN-Punkte hängen als
sub_aspectsdarin. „Artefakte korrekt markiert" stand mit 11 automatischen Fundstellen im JSON-Bericht, im HTML kam die Zeichenkette null mal vor. Wer nur den HTML-Bericht las, sah den halben Stufe-1-Block nicht. Jetzt stehen alle 13 Sichtprüfpunkte drin. Die Fundstellen stehen dabei je Seite kommagetrennt hintereinander statt als endlose Einzelliste: Eine Kundendatei meldet unterS1-MAN-1e423 Originaltexte – als 423 Zeilen liest die niemand, als 18 Seitengruppen sind sie zu überblicken. Der bei jedem Eintrag wiederholte Tagname („P-Tag …") steht einmal am Gruppenanfang. Weggelassen wird nichts.
- Zeichen ohne Unicode-Zuordnung wird jetzt erkannt: Blockiert die maschinelle PDF/UA-Aussage in beiden Profilen. Eine Datei konnte bisher bei uns „PDF/UA-1 erfüllt" heißen und beim Kunden im DACH-Standardprogramm durchfallen – an einem einzigen Zeichen: einem geschützten Leerzeichen (
-
v3.2.0 3. September 2026
Diesmal war das Prüfwerkzeug selbst der Befund. Drei Prüfungen meldeten Fehler, die es nicht gab – zwei davon in bereits abgegebenen Kundendateien, eine von ihnen mit dreistelligen Hinweislisten je Sprache. Eine vierte Zeile stand in der falschen Liste: ein Ergebnis mitten unter den Fragen, die man beantworten soll. Und der Schutz, der nach der ersten Korrektur genau solche Fehlalarme verhindern sollte, fragte eine daneben gepflegte Namensliste statt den Erkenner – er hätte den nächsten Fall wieder durchgelassen. Dazu zwei Sichtprüfschritte, die seit dem Stufe-2-Aufräumen keine Heimat mehr hatten: ihre Fundstellen erreichten die Prüfperson nicht oder standen ohne Frage darüber.
Hinzugefügt
- Zwei neue Sichtprüfschritte in Stufe 1: Stufe 2 führt nur noch Pflichtpunkte; ihre vierzehn Hinweis-Anforderungen wandern als Sichtprüf-Vorschläge nach Stufe 1. Elf hatten dort einen Prüfschritt, drei nicht. Für den dritten Fall, „URLs und E-Mail-Adressen im Text sind als Link getaggt", wurde kein Prüfschritt angelegt:
S1-MAN-2estellt dieselbe Frage und liest dieselbe Quelle. Ein zweiter wäre dieselbe Frage zweimal in derselben Liste. Neu sind deshalbS1-HINT-11undS1-HINT-12. - <code>S1-HINT-11</code> „Aufeinanderfolgende Überschriften ohne Inhalt dazwischen prüfen": Drei oder mehr Überschriften gleicher Ebene als direkte Geschwister, ohne Absatz oder Tabelle dazwischen. Bewusst ohne Normbezug: Der BMUV-Bezug wurde am 19.06.2026 entfernt, weil Kap. 6.1 die Überschriften-Hierarchie belegt, nicht mehrere gleiche Überschriften hintereinander. Genau deshalb ist es eine Sichtprüfung und kein Blocker.
- <code>S1-HINT-12</code> „Wiederholte Kopf- und Fußzeilen als Artifact markiert": Ein Textmuster auf mindestens 60 % der Seiten, das im Strukturbaum statt als Artifact steht (BMUV-Handbuch 11/2023 Kap. 4.2.1). Diese Fundstellen erreichten die Sichtprüfung bisher gar nicht.
Behoben
- Ein Befund stand in der Liste der Prüfschritte: Der Heading-Cluster wurde als Karte von Hand gebaut, mit einem Ergebnis als Titel („4 Stellen mit direkt aufeinanderfolgenden Überschriften"), ohne Gruppe und ohne Kategorie. Ohne Gruppe rendert die Oberfläche ein Item ohne Zwischenüberschrift – die Zeile stand damit lose über allen Kategorien, in einer Liste, die sonst nur Fragen enthält. Sie kommt jetzt als Fundstelle unter
S1-HINT-11heraus. Ein Regressionstest hält fest, dass kein Stufe-1-Item ohne Gruppe durchrutscht und keine Hinweis-Anforderung der Stufe 2 ohne Heimat in Stufe 1 bleibt. - <code>S1-HINT-1</code> (Sprachauszeichnung) kannte fünf Sprachen – Deutsch, Englisch, Französisch, Spanisch, Italienisch: Fließtext in jeder anderen Sprache wurde in die nächstbeste davon gezwungen, wich damit zwangsläufig von der Dokumentsprache ab und wurde gemeldet, Absatz für Absatz. An den abgegebenen Fassungen einer Broschüre: 117 Hinweise in der polnischen, 156 in der rumänischen, 106 in der türkischen – jeder einzelne falsch. Der Erkenner arbeitet jetzt mit allen Sprachen, die die Bibliothek kennt (75), und wo die Dokumentsprache nicht darunter ist, schweigt die Prüfung, statt zu raten. Gemessen an 400 Absätzen aus zehn abgegebenen Ausgaben kostet der volle Umfang 1,0 s und rund 78 MB einmalig und erkennt genauer als eine kleinere Auswahl: 17 Sprachen ergaben 12 Treffer, 30 ebenfalls 12, alle 75 nur noch 10. Diese zehn sind deutsche Schulnamen in der arabischen Schulliste – richtig erkannt und nach WCAG 3.1.2 als Eigennamen ausgenommen, deshalb ein Hinweis zur Sichtprüfung und kein Fehler. Nicht abgedeckt bleiben Kurdisch (Kurmancî und Soranî), Paschto, Tigrinya und Romanes; für sie gibt es kein Sprachmodell. Dari ist über Persisch abgedeckt.
- Die Regel, die bei unbekannter Dokumentsprache schweigt, fragt seither den gebauten Erkenner: Zuvor stand daneben eine feste Namenstabelle, gegen die geprüft wurde: Fiel eine Sprache beim Bauen weg, blieb sie in der Tabelle stehen – der Schutz hätte genau den Fall durchgelassen, für den es ihn gibt. Abgesichert durch
tests/test_bmuv_language_check.py: Fließtext in den neun Ausgabesprachen löst keinen Hinweis aus, ein türkischer Absatz in einem als deutsch angemeldeten Dokument schon, und kurdischer Text – den die Bibliothek nicht unterscheiden kann – bleibt still. - <code>S1-HINT-6</code> (mögliche Fußnote) schloss Notes und Listen aus, aber keine Tabellen: Eine Zelle mit dem Inhalt „12 Jahre" galt als Fußnote. Tabellen sind jetzt ebenfalls ausgenommen.
- Strukturverweis ohne Inhalt folgte dem <code>/Stm</code> eines <code>/MCR</code> nicht und prüfte gegen den Seitenstrom: Marked Content in einem Form-XObject – die gesamte Canva-Bauart – galt damit als toter Verweis, obwohl er nach ISO 32000-1 §14.7.4.2 korrekt verankert ist. Dieser Befund ist ein Stufe-2-Blocker; er hielt fertige Dateien auf.
- Zwei neue Sichtprüfschritte in Stufe 1: Stufe 2 führt nur noch Pflichtpunkte; ihre vierzehn Hinweis-Anforderungen wandern als Sichtprüf-Vorschläge nach Stufe 1. Elf hatten dort einen Prüfschritt, drei nicht. Für den dritten Fall, „URLs und E-Mail-Adressen im Text sind als Link getaggt", wurde kein Prüfschritt angelegt:
-
v3.1.1 1. September 2026
Eine Fehlerkorrektur. Der Bereich „Über InklaraPDF", der mit 3.1.0 neu dazukam, war unter macOS leer – ausgerechnet die Funktion, die belegen soll, dass die Lizenzen beiliegen.
Behoben
- „Über InklaraPDF" zeigte unter macOS keinen einzigen Lizenztext: In der ausgelieferten 3.1.0 stand unter „Mitgelieferte Lizenztexte" nur „Der Text konnte nicht gelesen werden." – kein Reiter, kein Text. Die Dateien lagen bei; gelesen wurden sie trotzdem nicht. Schuld war der Pfad-Wächter in
inklara_api/routes/licenses.py. Er löste den Pfad mitPath.resolve()auf und verglich das Ergebnis mit der Wurzel.resolve()folgt Symlinks – und in einem PyInstaller-.appzeigtsys._MEIPASSaufContents/Frameworks, während die Datendateien inContents/Resourcesliegen und von dort nur herübergelinkt sind (PyInstaller/building/osx.py). Der aufgelöste Pfad landete also immer außerhalb der Wurzel: Alle sechs Dokumente fielen weg,/api/licensesmeldete eine leere Liste, und die Oberfläche zeigte ihren Fehlertext. Geprüft wird jetzt die relative Angabe aus der festen Tabelle (absolut?..enthalten?) statt des aufgelösten Pfades. Der doppelte Boden gegen Pfad-Traversal bleibt, die Symlink-Ablage stört ihn nicht mehr. Zu sehen war das nur im ausgelieferten macOS-Programm: Im Entwicklungsbaum und unter Windows gibt es diese Symlinks nicht, dort lief derselbe Code richtig.tests/test_licenses_route.pybaut die.app-Ablage deshalb nach und misst gegen beide Fälle.
- „Über InklaraPDF" zeigte unter macOS keinen einzigen Lizenztext: In der ausgelieferten 3.1.0 stand unter „Mitgelieferte Lizenztexte" nur „Der Text konnte nicht gelesen werden." – kein Reiter, kein Text. Die Dateien lagen bei; gelesen wurden sie trotzdem nicht. Schuld war der Pfad-Wächter in
-
v3.1.0 31. August 2026
Drei Dinge, die alle davon handeln, dass etwas beilag, ohne benutzbar zu sein: die Lizenzen, die gar nicht erst ins Paket kamen. Die Formularfelder, die im Tagbaum standen, aber nichts über sich sagten – und auf der Seite unsichtbar waren. Und fünf Fremdsprachen, in denen die Oberfläche an 144 Stellen je Sprache weiter Deutsch zeigte.
Hinzugefügt
- Der Bereich „Über InklaraPDF": Erreichbar über den Verweis im Fuß der Navigation, neben „Neue Version". Er nennt Herausgeber, Lizenz und Fassung und zeigt jeden Lizenztext, der dem Paket beiliegt: EUPL-1.2, NOTICE, MPL-2.0 (veraPDF), die Python-Bibliotheken, OFL-1.1 (Inter) und die Java-Laufzeit. Der Inhalt kommt aus dem neuen Endpunkt
/api/licenses– nie aus dem Netz. Das Programm ruft nicht von sich aus nach draußen, und die Texte müssen auch ohne Verbindung lesbar sein. Angezeigt wird nur, was wirklich im Paket liegt; eine feste Liste im Frontend zeigte Reiter für Dateien, die im Bundle fehlen. Bis hierher gab es dafür nur den macOS-„Über"-Dialog. Der nennt allein die Hauptlizenz – und unter Windows gibt es ihn gar nicht. - <code>bundle/lizenzen_sammeln.py</code>: Sammelt die vollständigen Lizenztexte der mitgelieferten Python-Pakete nach
lizenzen/DRITTLIZENZEN.txt. Mit--pruefenmeldet es, wenn die Datei nicht mehr zu den installierten Paketen passt. Beim ersten Lauf fielopenpyxlstill durch: Es legt seine Lizenz alsLICENCE.rstab, britische Schreibweise. Die Suche kannte nurLICENSE. - Tagbaum: QuickInfo und Exportwert der Formularfelder: Ein Widget hat kein Inhalts-Element – alles, was es aussagt, steckt in seinen Feldangaben. Sie stehen jetzt als eigene Zeilen unter dem Feld, kursiv wie der Bild-Alternativtext: der Exportwert benannt („Exportwert: Ja"), die QuickInfo (
/TU) ohne Etikett, weil sie ein ganzer Satz ist. Der volle Wortlaut samt Benennung steht im Hinweisfeld der Zeile. Die QuickInfo steht oben, der Exportwert darunter: Die QuickInfo ist das, was am Feld angesagt wird – daran prüft man. Der Exportwert ist ein technischer Wert im Dokument, kein Text für die Nutzerin. Beim Kontrollkästchen ist er allerdings die einzige Angabe, die ein einzelnes Kästchen benennt. Ein Widget war bisher ein Blatt ohne Klapp-Kästchen. Mit den Angaben darunter wird es aufklappbar – und steht offen, sonst verschwänden sie in der Standardansicht hinter einem Plus (bei 21 Feldern 21 Klicks). - Zwei Prüfer für die ausgegebene Sprache:
tools/audit_i18n_ausgabe.pymisst ohne Lauf – Prüfschritt-Katalog, Zusatzprüfungen, Frontend, Locale-Schlüssel.tools/audit_i18n_lauf.pyprüft dieselbe Datei in jeder Sprache an der laufenden App; die Befund-Karten entstehen erst während einer Analyse. Beide geben 1 zurück, sobald Deutsch durchschlägt, und taugen damit als Gate. Der bestehendeaudit_i18n_completeness.pybleibt gültig – er misst die YAML-Ebene. Alle drei gehören vor eine Auslieferung, sie messen Verschiedenes.
Behoben
- Keine einzige Lizenzdatei ging bisher ins Paket: Weder die eigene
LICENSE(EUPL-1.2) nochNOTICEstanden in dendatasder spec – ausgeliefert wurde ein Programm, das seine eigene Lizenz nicht beilegte. Von veraPDF (MPL-2.0 / GPL-3.0, 33 MB) kam keine Zeile Lizenztext mit, obwohl die MPL genau das verlangt. Nachgesehen in der ausgelieferten 3.0.0-DMG, nicht im Quellcode. Beides liegt jetzt bei, dazulizenzen/MPL-2.0.txtim Wortlaut. Die Java-Laufzeit und die Python-Pakete brachten ihre Texte schon immer selbst mit (jre/legal/,*.dist-info/), ebenso die Schrift Inter (OFL.txt). - Die Java-Laufzeit fehlte im NOTICE: 127 MB Adoptium Temurin unter GPL-2.0 mit Classpath Exception – genannt war sie nur in
docs/licensing_summary.txt. Jetzt mit Fassung, Lizenz, Fundort des Lizenztexts und dem Grund, warum die Classpath Exception das Copyleft von InklaraPDF fernhält. - Zwei Meldungen standen in jeder Sprache auf Deutsch:
extra_stream_startingundextra_stream_finishingfehlten in allen sechs Sprachdateien; im Code standen deutsche Ersatztexte. Wer die Oberfläche auf Englisch stellte, las während der Prüfung „Prüfungen laufen an …". Es blieb nicht bei zweien – siehe den Eintrag zur Mehrsprachigkeit weiter unten. - Formularfelder fehlten in der Seitenvorschau: An der Stelle der Knöpfe „Speichern" und „Drucken" standen weiße Flecken; in Acrobat sind es graue Schaltflächen mit Beschriftung. Für pdfium ist ein Widget kein gewöhnlicher Vermerk, sondern ein Formularelement – gezeichnet wird es erst mit einer Formular-Umgebung (
init_forms()), und die muss unmittelbar nach dem Öffnen aufgesetzt werden, vor dem ersten Zugriff auf Seitenzahl oder Seite. 29 Dateien, 105 Seiten, Pixel-Prüfsumme alt gegen neu: genau eine Seite ist anders – die mit den Knöpfen. Der Speicherschlüssel der Seitenbilder trägt dafür ein_f; ohne ihn lieferte der Plattenspeicher weiter die alten Bilder. - Die hellblauen Formularfelder auf der Seite waren unsichtbar: Sie standen die ganze Zeit im HTML – sie lagen nur hinter dem Seitenbild. Das Bild bekam am 18. August 2026
position:relative; z-index:1, damit es den grauen Ladehinweis verdeckt;.tg-feldhatte keinen eigenen Wert. Bei der Markierung fiel derselbe Fehler damals auf und wurde behoben, bei den Feldern nicht. Ein Test hält jetzt fest, dass jede Fläche über dem Seitenbild einen höherenz-indexträgt als das Bild – für die Markierung wie für die Felder. - Nach jedem <code>T*</code> saßen alle Flächen einer Seite zu tief: Im Tagbaum markierte ein Klick auf einen Abschnitt Kästen mitten im Fließtext darunter, und ein Klick ins Seitenbild traf das falsche Tag. In einer Kundendatei waren es 163 pt. Die Ursache liegt in pypdf:
TLlegt dortoperand × Schriftgröße × Maßstabab,T*multipliziert nochmals mit dem Matrix-Maßstab. Der Zeilenabstand ist nach ISO 32000-1, Tabelle 105, aber ein Maß in unskalierten Textraum-Einheiten.Td,TDundTmsind nicht betroffen – nurT*und die beiden Kurzformen'und". Gegen pdfium als unabhängigen Leser gemessen: 26 Dateien, 2796 Flächen, 95,6 % → 99,4 %, keine einzige Datei schlechter. Betrifft jede Ansicht mit Flächen: Rahmen im Tagbaum, Klick ins Seitenbild, Strukturbaum. - Schaltflächen zeigten einen erfundenen Exportwert: An „Speichern" und „Drucken" stand „BBox, Filter, FormType, Matrix, Resources, Subtype, Type" – die Schlüssel eines Form-XObjects. Eine Schaltfläche ist zwar auch
/Btn, hat aber keinen Zustand: Ihr/AP /Nist ein Aussehens-Strom, kein Verzeichnis von Zuständen. Da in pypdf jeder Strom vonDictionaryObjecterbt, hat erkeys()– die Prüfung darauf fing ihn nicht ab. Der Exportwert wird jetzt nur noch bei Kontrollkästchen und Optionsfeldern gelesen, und ein Strom wird zusätzlich als solcher erkannt. Betraf beide Ansichten, Strukturbaum wie Tagbaum – beide lesen denselben Extraktor. - Die Prüfung „Anmerkung ohne Beschreibung" meldete Kästchen, die eine haben:
/TUist ein Feld-Schlüssel und wird vererbt (ISO 32000-1, Tabelle 220): Die Kind-Widgets einer Ankreuzgruppe tragen selbst keins, ihr gemeinsames Feld trägt es. Die Prüfung las/TUnur an der Anmerkung und meldete deshalb jedes Kind-Kästchen als „ohne Beschreibung". Gesucht wird der Text jetzt über die Elternkette, höchstens acht Ebenen tief und mit Schutz gegen ein/Parent, das im Kreis zeigt. Gemessen an 27 abgenommenen Fassungen aus zwei Jahren: 70 → 5 Befunde. Die verbleibenden fünf sind echt –/Link-Anmerkungen ohne Beschreibung in drei Dateien. Vererbt wird dabei nur/TU;/Contentsund/Altgehören der Anmerkung selbst (Tabelle 164) – ein/Contentsan einem Elternknoten spräche ein Widget ohne Beschreibung sonst zu Unrecht frei. - Die Oberfläche zeigte in allen fünf Fremdsprachen Deutsch: Aufgefallen ist es auf der Dokumentationsseite: unter „Quellen" stand „BITV 2.0 / BFSG (deutsches Recht)", der ganze Block ohne Übersetzung – direkt unter dem Abschnitt, der „Mehrsprachigkeit" heißt. Der bestehende Prüfer meldete dazu null Befunde, zu Recht: Er vergleicht
de_*.yamlgegenxx_*.yaml. Ein Text, der in keiner Sprachdatei steht, weil er fest im Quelltext oder in einem Regel-YAML sitzt, fehlt symmetrisch – der Vergleich ist grün, die Ausgabe deutsch. Fünf Textquellen bedienen dieselbe Oberfläche; geprüft war eine. Gemessen wurde die Ausgabe, nicht die Tabelle. In jeder der fünf Fremdsprachen dieselben 144 Stellen: 125 Felder im Prüfschritt-Katalog – betroffen war die Hälfte des Katalogs, 52 von 104 Prüfschritten –, 15 Titel der Zusatzprüfungen und 4 Felder der DACH-Differenz-Hinweise. Dazu 41 Stellen im Frontend, die für alle Sprachen gelten, darunter einimg.alt– also genau das, was ein Screenreader vorliest. Deutsch bleibt Feld für Feld unverändert.
Geändert
- Der Fuß der Navigation ist eine Zeile kürzer: Name und Fassung stehen zusammen („InklaraPDF 3.1.0"), die eigene Zeile „Version 3.0.1" entfällt. „Neue Versionen & Updates" heißt in allen sechs Sprachen nur noch „Neue Version"; daneben steht „Über InklaraPDF".
- Der Bereich „Über InklaraPDF": Erreichbar über den Verweis im Fuß der Navigation, neben „Neue Version". Er nennt Herausgeber, Lizenz und Fassung und zeigt jeden Lizenztext, der dem Paket beiliegt: EUPL-1.2, NOTICE, MPL-2.0 (veraPDF), die Python-Bibliotheken, OFL-1.1 (Inter) und die Java-Laufzeit. Der Inhalt kommt aus dem neuen Endpunkt
-
v3.0.1 26. August 2026
Ein Fehlalarm, der Stufe 2 kippte – behoben. Und Fundstellen, an denen man ablesen kann, welche Stelle gemeint ist.
Hinzugefügt
- Die BT/ET-Kreuzung nennt jetzt Tag und Textauszug: Bisher stand dort „Seite 77 – 2× markierter Bereich kreuzt eine BT/ET-Grenze". Zwei Stellen auf einer Seite mit 40 Zeilen: damit ist nichts zu finden. Jede Kreuzung trägt jetzt Tag, MCID und
/ActualTextdes kreuzenden Bereichs mit. Der gedruckte Text wird über den vorhandenen MCID-Auflöser geholt – denselben, der den Tagbaum füllt, damit glyphweise gesetzter Text nicht als „S o g e h t ' s" erscheint. Hat der Bereich keine MCID, greift/ActualText– meist Tabulatoren und weiche Trennstriche in/Span, die über die Grenze reichen. Unsichtbare Zeichen bekommen ihren Namen, statt als leerer Auszug dazustehen. Trägt die Stelle eine MCID, aber keinen Text, wird das Umfeld genannt („zwischen ‚Methoden' und ‚restriktion'"). Gesucht wird höchstens fünf Marken weit – ein falscher Hinweis ist schlimmer als keiner. Gekürzt wird an der Wortgrenze mit „…"; mehr als drei verschiedene Stellen mit „u. a.", nie stillschweigend. - Der Prüfschritt zeigt die Zahl seiner automatischen Fundstellen, bevor man ihn aufklappt: Die Zahl stand nur innen an den Einzelschritten – ob überhaupt etwas gefunden wurde, sah man erst nach dem Öffnen. Jetzt steht die Summe am Kopf – nur die Zahl und „Fundstellen", derselbe Wortlaut wie bei allen anderen Kopf-Zählern.
Geändert
- „Verzeichniseintrag springt auf seine eigene Seite" ist keine Pflicht-Regel mehr, sondern eine Sichtprüfung (<code>S1-MAN-3c</code>): Der Grund ist ein richtiger Fall, den die Regel nicht kannte: Führt ein Inhaltsverzeichnis seinen eigenen Eintrag („Inhaltsverzeichnis … 2"), zeigt dieser zu Recht auf die Verzeichnisseite. Genau daran fiel ein korrekt gebauter Bericht durch Stufe 2 – die übrigen zwölf Verzeichnis-Links derselben Datei springen mit durchgehend gleichem Versatz richtig. Nach der Hausregel ist eine Pflicht-Regel, die ein korrektes Dokument kippt, zu streng. Gemeldet wird der Fall weiterhin – jetzt mit Seite und Wortlaut des Eintrags, sodass man ihn wiedererkennt. Vorher stand dort nur „1 Fundstelle, dokumentweit".
- Schaltknöpfe im Tagbaum zeigen jetzt, ob sie an sind: Sie setzten nur
aria-pressed– eine Vorlese-Software erfuhr den Zustand, das Auge nicht. Jetzt heller Grund und heller Rahmen, also nicht über Farbe allein unterscheidbar. - Kein Messdatum und keine Fremdversion mehr im Befundtext: Der Unterschieds-Hinweis zu „TOCI-Element verweist auf ein falsches Ziel" führte als Beleg „Nachgemessen am 24.08.2026 (DACH-Standardprogramm 26.0.0.0)". Ein Datum altert und sagt der Prüferin nichts; der Beleg lautet jetzt wie bei den anderen Notizen sachlich „Gegenprüfung
S4-DEST-1undS2-DEST-2". Die Messung selbst bleibt in der internen Dokumentation.
Behoben
- „Stufe 2 nicht erreicht" ohne einen einzigen Befund: Die neue Regel
S2-TOCI-2meldete „nicht bewertet", solange der Textanhang lief. Das Stufen-Urteil lautetalle Anforderungen erfüllt– „nicht bewertet" kippte die Stufe also wie ein Fehler, erzeugte aber keinen Befund. In der Übersicht stand „nicht erreicht", unter „Befunde anzeigen" war nichts. Ein Urteil ohne nennbaren Grund ist schlimmer als keines. Während des Nachladens gilt jetzt „kein Nachweis eines Fehlers"; sobald der Text vollständig ist, wird neu bewertet. - Eine Tabelle über mehrere Seiten galt als Punkt auf einer Seite: Die Stufe-2-Prüfung „Bildunterschrift weit von ihrer Figure/Tabelle entfernt" merkte sich nur die eigene Seitenzahl des Partner-Knotens – also die Seite, auf der die Tabelle beginnt. Steht die Unterschrift am Ende einer mehrseitigen Tabelle, meldete die Prüfung sie als „drei Seiten entfernt", obwohl sie mitten in der Tabelle steht. Belegt an einem Abschlussbericht: Tabelle auf den Seiten 68–71, Unterschrift auf 71 – und Stufe 2 fiel durch, zu Unrecht. Jetzt zählen alle Seiten, auf denen das Element Inhalt hat. Der Fehler stammt vom 17.06.2026, ist also älter als 3.0.0 – keine Folge der Verschärfungen dieser Hauptversion. Aufgefallen war er nicht, weil die Abnahme der betroffenen Datei gegen den Vorzustand verglich („identisch zum Lieferstand") statt gegen das Stufen-Urteil.
- Der Wortlaut des Verzeichniseintrags kam nie an: Die Sichtprüfung
S1-MAN-3caus 3.0.1 sollte Seite und Wortlaut nennen; der Zweig, der ihre Fundstellen baut, las den Wortlaut aber unter einem Schlüssel, den diese Befunde nicht führen (textstattbeschriftung). Er war immer leer – die Fundstelle nannte weiterhin nur die Seite. - Fehlendes schließendes Anführungszeichen am Wortlaut in der zweiten Fundstellen-Ansicht:
– „Inhaltsverzeichnis, Seite 2ohne Schluss. - Veraltete Versionsnummer im Text der Dokumentationsseite („InklaraPDF 1.4.0"): Die sechs Sprachdateien führen den Satz längst ohne Nummer; nur der Rückfalltext im HTML war stehen geblieben.
- Die BT/ET-Kreuzung nennt jetzt Tag und Textauszug: Bisher stand dort „Seite 77 – 2× markierter Bereich kreuzt eine BT/ET-Grenze". Zwei Stellen auf einer Seite mit 40 Zeilen: damit ist nichts zu finden. Jede Kreuzung trägt jetzt Tag, MCID und
-
v3.0.0 25. August 2026
Eine Hauptversion, weil das Prüfergebnis an zwei Stellen strenger wird: Dokumente, die in 2.x grün waren, können jetzt rot werden. Beide Verschärfungen sind am Bestand gegengemessen, bevor sie scharf geschaltet wurden – die abgenommene Referenz ist von keiner betroffen. Dazu: ein Tagbaum, der Alternativtext und Linkziel zeigt, eine Seitenvorschau, die zwei Drittel schneller lädt, eine CLI, die ihre Zusatzprüfungen von sich aus fährt – und ausgelieferte Texte, in denen keine Kundendaten mehr stehen.
Wichtig – strengeres Prüfergebnis
- Content-Stream-Syntax blockiert jetzt in beiden Profilen (Stufe 4): Ein Content-Stream, dessen Operator-Paare (
BT/ET,BMC/EMC,q/Q) nicht klammern, wird jetzt als PDF/UA-Fehler gewertet. Dokumente, die in 2.x noch „PDF/UA erfüllt" zeigten, können beim erneuten Prüfen rot werden. Das ist der Grund für den Versionssprung auf 3.0 – dieselbe Begründung wie bei 2.0.0, wo die fehlende Dokumentsprache von Stufe 3 auf Stufe 4 wanderte. Betroffen sind Dateien mit fehlendemET,EMCoderQ– und neu auch solche, bei denen nur die Reihenfolge nicht stimmt oder der Fehler in einem Form-XObject steckt. Gemessen an 2942 PDFs des gesamten Bestands: rot wird nur, was den Defekt tatsächlich trägt; von 31 abgenommenen Handfassungen und dem offiziell geprüften Gold-PDF wird keine einzige Datei rot. - Auch strenger – Stufe 2: zwei neue Pflicht-Regeln:
S2-TOCI-2meldet Verzeichniseinträge, die nur aus einer Seitenzahl bestehen.S2-LINK-3meldet Link-Elemente, die nichts umschließen. In 29 abgenommenen Handfassungen und 13 Prüfstücken schlägt keine der beiden an. Betroffen sind eigene Abgabefassungen mit echten Fehlern: in einer Broschüre 4 zerrissene Verzeichniseinträge und 3 leere Links, in einer Kunden-Rohdatei 18 leere Links – unabhängig am PDF nachgezählt.
Hinzugefügt
- Neu: der Tagbaum. Zum ersten Mal zeigt InklaraPDF die logische Struktur eines PDF in einer eigenen Ansicht: alle Tags mit ihrer Verschachtelung, dazu Alternativtexte, Linkziele und die Verbindung vom gedruckten Text zum jeweiligen Tag über die MCID. Alles Weitere, was in dieser Fassung unter „Tagbaum" steht (vier Ansichten, Fehler ein- und ausblenden, Alt-Text-Zeile unter der Figur, verlinktes Bild mit Linkadresse …), ist Teil dieser neuen Ansicht.
- Klammerung der Content-Streams ist ein blockierender Stufe-4-Prüfschritt (<code>S4-SYNTAX-1</code>): Die drei Operator-Paare eines Content-Streams müssen klammern: Textobjekte
BT↔ET, Marked ContentBMC/BDC↔EMCund der Grafik-Zustandq↔Q. Belegt in ISO 32000-2 §9.4.1, §8.4.2 und §14.6; über ISO 14289-1/2 §6.2 zugleich ein PDF/UA-Verstoß. Kein anderer maschineller Prüfer erkennt das: veraPDF liefert inua1,ua2,1bund2bfür kaputte und saubere Fassung dieselbe Regelliste; Matterhorn hat für Inhaltsstrom-Syntax keinen Prüfpunkt. Das DACH-Standardprogramm meldet „Operator BT not allowed" und erklärt das Dokument für nicht lesbar. - <code>S4-DEST-1</code>: Internes Sprungziel ist auflösbar – blockierend in beiden Profilen: In zehn ausgelieferten Fassungen war das gesamte Inhaltsverzeichnis nicht anklickbar – je rund 35 tote Links, fünf Tage lang unbemerkt. Ein Werkzeug hatte die Ziele von der Seite auf das Überschriften-Strukturelement umgestellt und dieses in das
/D-Array geschrieben. Belegt in ISO 32000-2 §12.3.2.2: „page is an indirect reference to a page object". Keine bisherige Prüfung meldete den Fall: alle prüfen, DASS ein Ziel da ist – keine, OB es trägt. Gegengemessen über 163 Dateien aus vier Korpora: rot wird nur, was den Defekt trägt. - <code>S2-DEST-2</code>: Inhaltsverzeichnis-Eintrag springt auf seine eigene Seite: Ein Eintrag, dessen Sprung auf der Seite landet, auf der er selbst steht, führt nirgendwohin. Nur TOCI, nicht jeder interne Link – ein Fußnoten-Verweis springt absichtlich innerhalb derselben Seite. Stufe 2, nicht Stufe 4: Die Richtigkeit eines Ziels ist keine Normfrage; ISO regelt, wie ein Ziel aussieht, nicht wohin es zeigt.
- Zwei neue Stufe-2-Regeln aus Durchsicht echter Abgabefassungen:
S2-TOCI-2(Verzeichniseintrag besteht nur aus einer Seitenzahl) undS2-LINK-3(Link-Element umschließt keinen Inhalt). Beide Befunde nennen Seite und PDF-Objektnummer, nicht nur „1 Fundstelle dokumentweit". - Zusatzprüfung „Markierter Bereich kreuzt eine BT/ET-Grenze": Die Klammerpaare
BMC/BDC↔EMCundBT↔ETmüssen ineinander liegen, nicht überlappen. Am markierten Bereich hängt die MCID, also die Brücke vom gedruckten Text zum Tagbaum. Hinweis, kein Stufen-Kriterium – 3 von 31 abgenommenen Handfassungen verletzen die Regel; nach Hausregel ist eine Pflicht-Regel, die die abgenommene Referenz verletzt, zu streng. - <code>inklara check --mit-zusatzpruefungen</code>: Den Schalter gab es bisher nur für
inklara report. Ohne ihn lief im CLI-Pfad keine der 22 Zusatzprüfungen. - Tagbaum: vier Ansichten statt drei: „Alles aufklappen" klappte bisher gefiltert auf – die Inhalts-Boxen blieben zu. Die Leiste zeigt jetzt Standardansicht, Alles aufklappen, Alles einklappen und neu Lesereihenfolge prüfen. Die Liste bleibt dabei als Ganzes zu, nicht nur ihre Punkte – vorher schob sie je Punkt eine
LI-Zeile dazwischen. - Tagbaum: Fehler ein- und ausblenden: Neuer Schalter in der Leiste, standardmäßig aus. Die Fundstelle bekommt einen rot umrandeten Tagnamen; übergeordnete Tags nur einen schmalen Strich am Aufklapp-Kästchen. Zugeordnet wird allein über einen eindeutigen Anker, nie über den Strukturpfad. Angebunden sind Verschachtelungsregeln, veraPDF und
url_text_link_findings. - veraPDF-Befunde tragen einen Anker – er stand die ganze Zeit im <code>context</code>-Pfad: In jeder Klammer steht die PDF-Objektnummer.
extract_anker()inapp/services/verapdf_failed_checks.pyliest daraus drei Ankerarten. Am 210-Seiten-Fall: 9 801 von 10 001 Befunden mit Anker, 1 342 verschiedene Fundstellen, 1 257 im Baum markiert.
Geändert
- Kundenbezüge aus allen ausgelieferten Texten entfernt: In Befund- und Regeltexten, im Changelog und in Quelltext-Kommentaren standen Namen echter Kundendokumente, eine echte Web-Adresse und ein Personenname – als Beleg für eine Messung gedacht, in einem Bericht, den ein Kunde bekommt, haben sie nichts zu suchen. Betroffen unter anderem der Hinweis „Unterschiede zum DACH-Standardprogramm" zum Thema Verzeichnis-Sprungziele in allen sechs Sprachen.
- Die CLI fährt die Zusatzprüfungen jetzt von sich aus: Bisher liefen sie im CLI-Pfad nie – und die Ausgabe sagte darüber kein Wort. Das Urteil war dabei nie falsch (die zusätzlichen Befunde sind alle vom Schweregrad
hint), unvollständig war der Bericht. Der Ausweg für sehr große Dokumente bleibt, heißt jetzt aber--ohne-zusatzpruefungenund ist die bewusste Ausnahme statt der stillen Vorgabe. - Das Zahnrad-Menü im Tagbaum ist nicht mehr zusammengedrückt: Die Breite war auf 330 px festgenagelt; ein längerer Dateiname brach mitten im Wort um oder lief hinaus. Das Menü wächst jetzt mit dem Inhalt – nach unten durch 330 px gehalten, nach oben durch die Fensterbreite.
- Die Seitenvorschau lädt rund zwei Drittel schneller: Nicht das Rendern kostete die Zeit, sondern das Schreiben des PNG. Die Zlib-Stufe steht jetzt auf 1 statt auf 6 – verlustfrei, dieselben Pixel, nur schwächer gepackt. Eine Kundendatei, Seite 1: von 809 ms auf 240 ms; bei 200 dpi Zoom von 2201 ms auf 717 ms.
- Tagbaum: Ein verlinktes Bild zeigt jetzt auch seine Linkadresse: Vorher stand dort
<Link>und sonst nichts. Umschließt der Link ein Bild, steht in dessen/Kdas<Figure>– und kein/OBJR. Die Annotation zeigt über/StructParentauf ihr Strukturelement; diesen Rückweg geht der Extraktor jetzt. - Tagbaum: Der Alternativtext steht jetzt als erste Zeile unter der Figur: Einmal, kursiv und auf hellem Grund, als schmale Vorschau. Vorher hing er an jeder inhaltslosen Zeile der Figur – bei einem Prozess-Schaubild aus zwei Dutzend Textkästchen unter einer
/Figurestand derselbe Alternativtext zwanzigmal untereinander. Dieselbe Zeile bekommtLinkundReference. - Die Klammerungsprüfung ist gehärtet: Zwei Lücken: die Reihenfolge zählt jetzt (nicht nur die Anzahl –
ET … BThatte ausgeglichene Zahlen und lief bisher durch); Form-XObjects werden mitgeprüft (bei Canva-Exporten steckt dort der ganze Inhalt). Die Prüfung läuft im Hauptlauf statt nachgelagert und ist nicht mehr abschaltbar. - Neue Texte in allen sechs Sprachen: de, en, fr, es, it, nl – Titel, Beschreibung und Reparaturhinweis der neuen Befunde, die vier neuen Reihenfolge-Meldungen, der Prüfschritt im Berichts-PDF und der Eintrag in der Prüfschritt-Dokumentation samt Hinweis auf das DACH-Standardprogramm.
- <code>ISO 14289-2</code> ist im Quellenregister eingetragen: Die Norm lag lokal vor und wurde in der Doku laufend zitiert, stand aber nie im Register.
Behoben
- Der Tagbaum zeigte <code>S o g e h t ' s :</code> statt <code>So geht's:</code>: Ein Fehler der Anzeige, nicht der Datei. Canva setzt jedes Glyph als eigenen
Tj, pypdfs Wortabstands-Heuristik setzt daraufhin zwischen jedes Glyph ein Leerzeichen._entzerre_glyphweisedreht das jetzt um. Gegenprobe über 12 694 MCID-Texte: 0 Änderungen an den Handfassungen und am Gold-PDF, 90 an den drei Canva-Flyern. - Schmale Fenster: die eingeklappte Navigation nahm der oberen Leiste ihre Form: Unter 900 px ist die Navigation eine Zeile oben mit Symbolen – die
nav-schmal-Regeln griffen trotzdem. Die Regeln gelten jetzt erst ab 901 px. - Im schmalen Fenster ließ sich die Aufteilung nicht mehr ändern: Liegen Baum und Seitenansicht übereinander, zog der Griff weiterhin die Breite – also nichts. Jetzt zieht er dort die Höhe: waagerechter Anfasser, Pfeil hoch/runter, und der Griff meldet seine Richtung (
aria-orientation). - Die Werkzeugleiste des Tagbaums war auf schmalen Fenstern aus dem Takt: Links Symbole mit 28×24, rechts umrandete Knöpfe mit 32×26 und 15-px-Schrift; „Seite 1 von 4" brach um. Unter 640 px tragen beide Seiten jetzt dasselbe Maß, und das Wort „Seite" entfällt.
- Die Standardansicht des Tagbaums war eine Ebene zu weit offen: Kommentar und Code widersprachen sich seit dem 18. August im selben Commit: Der Kommentar schrieb,
tiefe < 3klappe „eine Ebene zu weit" auf – der Code stand auf genautiefe < 3. Jetzttiefe < 2an beiden Stellen. Zwei neue Tests halten den Zustand fest. - Der Tagbaum zeigte ein <code><StructTreeRoot></code>, das es im PDF nicht gibt: Hat ein Dokument mehr als ein Wurzelkind, erzeugt der Extraktor einen synthetischen Knoten. Gezeichnet wurde er wie ein echtes Tag – und doppelt, denn die Wurzelzeile „Tags" ist der StructTreeRoot. Die Wurzelkinder hängen jetzt direkt unter „Tags".
- Der Tagbaum zeigte den internen Ablagenamen: Hochgeladene Dateien liegen unter ihrer Prüf-Nummer, also stand
cf05ade8ee974a1c.pdfin der Ansicht stattcase_2.pdf. Der Name kommt jetzt aus dem Bericht. - Der Zwischenspeicher des Tagbaums kannte die Sprachdatei nicht: Eine Textkorrektur in
locales/*_reports.yamlwäre unsichtbar geblieben. - Die Objektnummer fiel beim Schreiben des Berichts heraus: Die Verschachtelungs-Befunde führen sie intern (
notes["obj_id"]), die Serialisierung ließ sie fallen. Ohne sie findet keine Markierung ihre Zeile. - „Leere Tabellenzellen" meldete jede korrekt gebaute Zelle: Die Prüfung
S1-MAN-6las nur den Text des Zellknotens selbst. Eine Zelle trägt ihren Text aber fast immer im Kind –TD > P > "Klassenlehrkraft". Ergebnis: alle Zellen einer Tabelle standen als leer im Bericht (Gold-PDF: 858 von 915 Zellen so gebaut). Behoben mit_cell_text_deep(). - Eine gedruckte Adresse in einer Anzeige blieb stumm – die Prüfung sprang über jede <code>/Figure</code>:
find_unwrapped_urlsübersprang jeden Text in einem/Figure-Subbaum mit der Begründung „Acrobat fügt dort Auto-Links hinzu". Die Annahme trägt nicht: Eine ganzseitige Anzeige ist eine einzige/Figure, gedruckt steht eine Web-Adresse darin – und die Seite hat null Annotationen. - Das Werkzeug für die Sprachdateien löschte still, was es nicht selbst erzeugt:
tools/extract_locale_strings.pyschrieb die Zieldatei neu, statt einzupflegen. Ande_rules_stufen.yamlwaren 84 von 348 Schlüsseln weg – darunter der komplette Abschnittextramit den 16 Zusatzprüfungen. Jetzt wird zusammengeführt: Schlüssel ohne Quelle bleiben unangetastet. - In den deutschen Regeltexten standen 245 ASCII-Umlaute: „Toene", „Ueberschriften", „duerfen", „umschliessendes", „Verstoss", „faellt" – im Matterhorn-Katalog, in den veraPDF-Beschreibungen und in den Verschachtelungsregeln. 106 in nutzersichtbaren Feldern, 139 in
reasoning-Begründungen. - Fünf Sprachen behaupteten über den URL-Detektor das Gegenteil dessen, was er tut: Der deutsche Text von
S2-MORE-1wurde am 24. August richtiggestellt (nacktewww.-Formen werden erkannt) – die englische, französische, italienische, niederländische und spanische Fassung standen weiter auf „nur vollständige Schemata". Alle fünf sind nachgezogen. - Auch im Code standen deutsche Anzeigetexte in ASCII – 348 Stellen in 46 Dateien: „Nicht geprueft", „Manuelle Pruefung erforderlich", „Datei ist keine gueltige PNG." Ausgenommen blieben drei Dinge: Kommentare und Docstrings, Strings ohne Leerzeichen (Bezeichner) und die Verbotslisten (dort steht „Stufe 1 erfuellt" absichtlich neben „Stufe 1 erfüllt", weil beide Schreibweisen erkannt werden müssen).
- <code>S1-MAN-6</code> meldete Phantom-Befunde: 116 leere Tabellenzellen, wo zwei sind: Die Prüfung lief, sobald die Analyse „fertig" meldete – aber die Texte werden danach noch in den Strukturbaum gehängt (
structure_text_fill). Jede Zelle, deren Text noch nicht da war, galt als leer. Jetzt meldet die Prüfung keine Zahl, solangetext_truncatedgesetzt ist; im Bericht steht stattdessen, dass der Baum noch gefüllt wird. - Und wenn gezählt wird, sagt die Ausgabe, dass sie abschneidet:
_empty_table_cellsbrach beimax_findings=50ab und gab nur die gekappte Liste zurück – die Zahl im Bericht war die Kappungsgrenze, nicht der Befund. Jetzt zählt die Funktion weiter und nennt die Differenz als eigene letzte Fundstelle. - <code>_h_text</code> las nur EINE Ebene tief – an zwei Stellen: Dieselbe Fehlerklasse wie bei den Tabellenzellen: Eine Überschrift
H2 > P > Spanträgt ihren Text im Enkel, nicht im Kind, und blieb für die Heading-Prüfungen leer. Beide Stellen lesen jetzt über_cell_text_deeprekursiv. - Deutsche Texte schlossen ihre Anführung 27-mal mit <code>”</code> statt <code>“</code>: Fünf davon standen doppelt und waren im Bericht zu sehen: „… unangebrachte Verwendung des Strukturelements „Table"". Richtig ist innen die einfache Anführung.
Berichtigt
- Der Changelog zu 2.0.0 war an einer Stelle zu großzügig: Er führte „Neue maschinelle Prüfung ‚Content-Stream-Syntax‘ (Stufe 4)" und vermerkte, sie sei „dem Stufe-4-Bereich (maschinell, normativ) zugeordnet". Das war eine Zuordnung in der Dokumentation, nicht in der Konformitäts-Entscheidung: die Prüfung stand in keinem Katalog unter
app/rules/items/, kippte keine Stufe und lief im CLI-Pfad gar nicht. Mit 3.0.0 trifft die Angabe zu. - Zwei Angaben zu <code>S2-MORE-1</code> waren falsch: „PAC wertet es grün" – stimmt nicht: das DACH-Standardprogramm meldet es als Fehler „Link im Text hat kein Link-Element". „Nackte
www.foo.de-Schreibweisen werden bewusst ignoriert" – stimmt seit der Erweiterung des Detektors nicht mehr. Am Schweregrad ändert das nichts, der Fall bleibt eine Stufe-1-Sichtprüfung.
- Content-Stream-Syntax blockiert jetzt in beiden Profilen (Stufe 4): Ein Content-Stream, dessen Operator-Paare (
-
v2.2.0 11. August 2026
Hinzugefügt
- Zusatzprüfung „Container in Link" erkennt jetzt jedes Block-Element unter einem /Link: Bisher waren nur
Div,PartundSecterfasst, jetzt zusätzlichP,H1–H6,L,Table,BlockQuote,Caption,TOC,IndexundArt. Anlass war eine Datei mit 47 E-Mail-Links, die alsLink > Pgebaut waren: veraPDF meldete PASS, das DACH-Standardprogramm nur eine Warnung – und stürzte ab, sobald eine zweite Strukturänderung dazukam. Richtig istAbsatz > Link > Text. Das Urteil bleibt status-neutral: Bestehende Konformitätsaussagen ändern sich dadurch nicht. Die Prüfung ist voreingestellt an und in den Einstellungen abschaltbar. - Fundstellen zeigen Linkziel und Textauszug: Jede Fundstelle nennt Linkziel und Textauszug (z. B.
mailto:name@example.org), damit sie im Dokument wiederzufinden ist. - NOTICE: Inter als zweite Drittkomponente aufgeführt. Mit den Auflagen der SIL Open Font License.
Behoben
- Dunkelmodus wieder benutzbar: Zwei Variablen trugen je zwei Rollen – sobald ein Modus eine davon umkehrte, zerriss die andere.
- Hochkontrast und Sprachwahl auch unter 900 px erreichbar: Im schmalen Fenster waren beide gar nicht mehr erreichbar, weil der Leistenfuß dort ausgeblendet wurde. Beide sitzen jetzt in einer unteren Leiste.
- Elf Oberflächentexte kamen falsch an, ein Hinweisbanner war dabei kaputt: Ein Test fängt diese Sorte Fehler künftig ab.
- Hausschrift greift jetzt überall: Ein
<button>erbt sie nicht, das UA-Stylesheet setzt Arial dagegen – der Programmschriftzug lief deshalb in Arial, obwohl Inter geladen war.
Geändert
- Ablegebereich der Stapelverarbeitung nutzt jetzt dasselbe Bauteil wie die Übersicht: Er war nachgebaut und lief auseinander: halb so großes Symbol, kleinere Schrift, und beim Ziehen ein fremdes Blau statt der Programmfarbe. Hover und ein sichtbarer Fokusrahmen fehlten ganz.
- Hausschrift Inter liegt jetzt im Programm statt nur im Schriftstapel: Im Stylesheet stand sie an erster Stelle, installiert war sie auf keinem Rechner und eingebettet auch nicht – die Oberfläche lief also die ganze Zeit in der Systemschrift. Eingebunden ist die variable Fassung, weil die Oberfläche mehrere Stärken nutzt. Inter steht unter der SIL Open Font License; der Lizenztext liegt daneben und muss jedem ausgelieferten Paket beiliegen.
- Seitenleiste zeigt Zeichen und ausgeschriebenen Namen statt eines Logobildes: Das Zeichen ist eingebettet und nimmt darüber die Farbe der Leiste an – bisher blieb das Logo im Hochkontrastmodus in Teal stehen, während alles andere umschlug. Der Schriftzug ist echter Text: Er wächst beim Zoomen mit und wird vorgelesen, statt über ein Alt-Attribut angekündigt zu werden. In der schmalen Ansicht unter 900 px bleibt nur das Zeichen stehen.
Entfernt
- Tote HTML-Bericht-Erzeugung samt Vorlage und Test: Kein Programmteil rief sie auf; seit der Mehrsprachigkeit vom 23.06. war sie ohnehin defekt, weil ihre Vorlage ein Sprachobjekt erwartete, das die Funktion nie übergab. Der Bericht, den das Programm wirklich erzeugt, läuft über einen anderen Weg und ist unberührt.
- Kundennamen aus dem Quelltext-Bestand entfernt.
- Zusatzprüfung „Container in Link" erkennt jetzt jedes Block-Element unter einem /Link: Bisher waren nur
-
v2.1.3 3. Juli 2026
Behoben
- Fußnoten stehen im Strukturbaum jetzt an ihrer echten Position im Absatz: Ist eine Fußnote im Tagbaum zwischen zwei Textläufen abgelegt (Verweis mitten im Absatz, die Fußnote folgt direkt, danach der Absatz-Rest), wurde sie in der Anzeige aus dem Textfluss gezogen und ans Absatzende gehängt – die Darstellung entsprach damit nicht mehr dem Tagbaum. Jetzt wird der Absatztext um das eingebettete Element herum geteilt und die Fußnote genau an ihrer Stelle gezeigt. Ursache war, dass zwischengeschaltete Block-Elemente nicht in die geordnete Inhaltssequenz aufgenommen wurden; das übernehmen jetzt sowohl der Strukturbaum-Aufbau (
content_seq) als auch die HTML-Ausgabe (stückweise Ausgabe von Textbändern und Block-Elementen in exakter Reihenfolge). - Doppelt angezeigte Fußnote behoben: Stand der Fußnotentext bereits in der neuen verschachtelten Ausgabe, wurde er zusätzlich über den bisherigen Fußnoten-Pfad ausgegeben und erschien zweimal.
- Beschriftung der senkrechten Schienen sitzt sofort in der richtigen Höhe: Ein langer senkrechter Tagname (z. B. „Reference") blähte seine eigene Schiene mit seiner Textlänge auf und blieb dadurch höher als sein Inhalt; erst ein Umschalten im Anzeigen-Filter korrigierte die Höhe. Die Höhenberechnung leert die kürzbaren Beschriftungen jetzt zuerst, misst dann die Inhaltshöhe und kürzt anschließend – die Höhe stimmt damit schon beim ersten Anzeigen.
- Installer-Fallback-Version wieder synchron: Die Fallback-Version in
bundle/inklara-pdf.issstand noch auf 2.1.1 und wich von der Single-Source-Version inapp/branding.pyab.
Geändert
- Sprach-Marker im Strukturbaum hebt sich deutlicher ab: Er erscheint jetzt in einer eigenen, gut erkennbaren Farbe und in der kompakten, fetten Form wie der Titel-Marker (vorher größer, dünner und farblich kaum unterscheidbar von den übrigen Markern).
- Fußnoten stehen im Strukturbaum jetzt an ihrer echten Position im Absatz: Ist eine Fußnote im Tagbaum zwischen zwei Textläufen abgelegt (Verweis mitten im Absatz, die Fußnote folgt direkt, danach der Absatz-Rest), wurde sie in der Anzeige aus dem Textfluss gezogen und ans Absatzende gehängt – die Darstellung entsprach damit nicht mehr dem Tagbaum. Jetzt wird der Absatztext um das eingebettete Element herum geteilt und die Fußnote genau an ihrer Stelle gezeigt. Ursache war, dass zwischengeschaltete Block-Elemente nicht in die geordnete Inhaltssequenz aufgenommen wurden; das übernehmen jetzt sowohl der Strukturbaum-Aufbau (
-
v2.1.2 2. Juli 2026
Behoben
- Header-Hover in der Tabellenvorschau funktioniert wieder – auch in großen Dokumenten: Beim Überfahren einer Zelle werden die zugehörigen Kopfzellen (bzw. bei einer Kopfzelle die zugehörigen Datenzellen) wieder hervorgehoben. Bei großen Dokumenten werden tief liegende Teilbäume erst beim Aufklappen geladen (Lazy-Rendering); die dabei nachgeladenen Tabellen bekamen den Hover-Effekt nicht mehr, weil er nur einmal beim Laden verdrahtet wurde. Der Effekt läuft jetzt über eine zentrale Verknüpfung (Event-Delegation) und greift damit auch für nachgeladene Tabellen. Lazy-Rendering selbst bleibt unverändert.
- Formeln erscheinen im Strukturbaum jetzt inline im Absatz statt als eigener Block: Mathematische Ausdrücke (
Formula, z. B. „2 hoch n") wurden bisher als eigene Block-Zeile unter dem Absatz dargestellt, obwohl sie mitten im Satz stehen. Sie erscheinen nun an ihrer echten Satzposition im Textfluss – als kleiner Marker mit dem sichtbaren Formeltext und dem Alt-Text –, mit einem Wortabstand zum umgebenden Text. Ursache war eine feste Verdrahtung aufSpan/Linkan zwei Stellen (Strukturbaum-Aufbau und HTML-Ausgabe); beide nutzen jetzt eine gemeinsame Liste der Inline-Elemente. Der übrige Strukturbaum bleibt unverändert (gegen ein großes Testdokument mit 7.497 Knoten ohne Formeln ist die Ausgabe bit-identisch).
-
v2.1.1 30. Juni 2026
Geändert
- Tabellenvorschau im Strukturbaum zeigt Absätze und Aufzählungen einer Zelle jetzt untereinander: Bisher lief der gesamte Inhalt einer Tabellenzelle als ein Fließtext aneinander – mehrere Absätze, Listenpunkte oder „erstens, zweitens, drittens" waren nicht als getrennte Zeilen erkennbar. Die Vorschau setzt nun an echten Block-Grenzen (Absatz, Listenpunkt, Überschrift) einen Zeilenumbruch; Aufzählungsmarker bleiben bei ihrem Text. Der übrige Strukturbaum bleibt unverändert.
- Mehrere Bilder oder Tabellen unter EINER Bildunterschrift sind jetzt erlaubt: Eine Abbildung kann aus mehreren untereinander stehenden Figure-Tags bestehen, die sich eine gemeinsame Bildunterschrift und Quelle teilen. Solche Gruppen lösten bislang fälschlich den Stufe-2-Fehler „Bild + Bildunterschrift in überfülltem Container" aus. Die Prüfung zählt zusätzliche Bilder/Tabellen nicht mehr als Überfüllung; echte Fälle (Bild/Tabelle in einem Abschnitt mit fremdem Text, Überschriften, Listen) werden weiterhin gemeldet.
Mehrsprachigkeit
- Stufe-2-Befundkarten erscheinen jetzt vollständig in der gewählten Sprache: Titel und Beschreibung von Bild-/Tabellen-Container-Karten, Inhaltsverzeichnis-ohne-Link, Sammel-Fußnoten, wiederholtem Lauftext und URLs/E-Mails im Text waren fest auf Deutsch hinterlegt und erschienen daher in allen Sprachen deutsch. Sie werden nun aus den Sprachtabellen geladen (Deutsch unverändert).
-
v2.1.0 29. Juni 2026
Geändert
- Zusatzprüfung „Figure-/Note-Platzierung" erkennt jetzt auch Reference unter Caption: Steht ein Reference-Element (z. B. eine Quellenangabe) direkt unter einer Bildunterschrift (Caption), warnt das DACH-Strukturprüfprogramm „Mögliche unangebrachte Verwendung des Strukturelements Reference". Die Lage ist erlaubt, braucht aber – wie ein freistehendes Bild – das Layout-Attribut /Placement /Block. Die Prüfung meldet diese Stellen jetzt als status-neutralen Hinweis; die übrige Reference im Fließtext (unter
P/Span/Lbl) bleibt unberührt. - Sehr große Strukturbäume lassen sich jetzt öffnen: Bäume mit mehreren tausend Knoten wurden komplett aufgeklappt gerendert; der Browser konnte das nicht stemmen und blieb hängen. Große Bäume starten jetzt eingeklappt (obere Ebenen offen, Rest auf Klick) – sie öffnen sofort.
- Strukturbaum und Befunde laden bei großen Dokumenten deutlich schneller: Abbildungs-Index, sichtbare Linktexte der Befunde und der Strukturbaum-Text werden jetzt einmal bei der Analyse vorberechnet bzw. in einem eigenen Hilfsprozess aufbereitet, statt bei jedem Öffnen neu aus dem PDF gelesen zu werden. Die App bleibt während der Aufbereitung bedienbar (großes Beispiel-Dokument: Befunde-Aufbau von ~28 s auf unter 1 s).
Mehrsprachigkeit
- Kanonische PDF-Bezeichner werden nicht mehr übersetzt: Normative Tag-/Attributnamen (z. B.
Scope,Headers) bleiben in allen Sprachen gleich; in den nachträglich übersetzten Sprachen (Italienisch, Niederländisch, Spanisch, teils Französisch) waren sie versehentlich lokalisiert worden. - Oberflächen-Texte erscheinen zuverlässig in der gewählten Sprache: Die Sprachdatei wird beim Start zuerst geladen, sodass dynamisch erzeugte Texte (z. B. die Lade-Fläche, Status-Hinweise) nicht mehr kurz auf Deutsch erscheinen. Sprachtabellen werden außerdem nicht mehr vom Browser zwischengespeichert.
- Befund-Fundstellen erscheinen vollständig in der gewählten Sprache: Mehrere Fundstellen-Texte waren fest deutsch und schlugen in den anderen Sprachen durch (leere Tabellenzellen, Figure-/Note-/Reference-Platzierung, doppelte MCID, Abbildung ohne Alt-Text, TOCI/URL ohne Link sowie die Upload-Meldungen). Sie laufen jetzt über die Sprachdateien; kanonische Bezeichner (
Figure,TOCI,MCID,/Placement…) bleiben sprachneutral.
Behoben
- Manuelle Prüfung „Leere Tabellenzellen" – Fundstellen fehlten, Titel mit Anführungszeichen: Im Prüfschritt-Katalog waren typografische Anführungszeichen statt gerader verwendet. Dadurch wurde die Verknüpfung zum Detektor nicht erkannt: Es erschien nur „1 Fundstelle" ohne die konkreten Zellen (Seite, Zeile, Spalte), und Titel sowie normative Bezüge zeigten sichtbare Anführungszeichen. Behoben – die echten Zellen-Fundstellen werden wieder angezeigt.
- Manuelle Prüfung „Dokumentgliederung in Abschnitte prüfen" zeigte „1 Fundstelle" ohne Fundstelle: Bei Dokumenten, die bereits in Abschnitte (
Part/Sect/…) gegliedert sind, wird der Hinweis jetzt korrekt als unauffällig (0 Fundstellen) geführt. Fehlt die Gliederung tatsächlich, werden die betroffenen Überschriften mit Seite und Text als Fundstellen aufgelistet statt nur „dokumentweit". - „Zusätzliche Prüfungen" starteten erst beim Öffnen des Tabs und wirkten leer: Die nachgelagerten Prüfungen laufen jetzt direkt nach der Analyse im Hintergrund an (spätestens beim Aufruf der Befunde) und zeigen während des Ladens einen klaren Fortschritt bzw. „Ergebnisse werden geladen …" statt des irreführenden Hinweises „Keine Befunde im gewählten Filter".
- App hängte beim erneuten Öffnen (Befunde + Strukturbaum luden nicht): Liefen mehrere Schreibzugriffe auf die gespeicherte Analyse gleichzeitig (etwa der nun frühere Start der Zusatzprüfungen zusammen mit dem Nachladen der Strukturbaum-Texte), konnten sie sich überschreiben und die Cache-Datei beschädigen. Eine beschädigte Datei wurde als „fehlt" gewertet und bei jedem Aufruf neu durchgerechnet – die App reagierte dann scheinbar gar nicht mehr. Schreibzugriffe sind jetzt eindeutig benannt und serialisiert; zusätzlich wird pro Dokument höchstens eine Neuberechnung gleichzeitig ausgeführt.
- Strukturbaum lud bei sehr aufwändigen PDFs nicht: Die eingebettete Strukturbaum-Ansicht stellte den vollständigen Text vorab synchron sicher; bei Dokumenten, deren Textauszug ungewöhnlich lange dauert, blieb der Tab dadurch minutenlang leer. Die eingebettete Ansicht zeigt den Baum jetzt sofort und lädt die restlichen Textauszüge im Hintergrund nach. Zusätzlich wird die Textaufbereitung nicht mehr doppelt gestartet, wenn eingebettete Ansicht und HTML-Export kurz nacheinander angefordert werden. Die Textaufbereitung läuft jetzt in einem eigenen Hilfsprozess, sodass die App während der Aufbereitung großer Strukturbäume bedienbar bleibt.
- Strukturbaum als HTML-Datei exportieren hängte bei sehr aufwändigen PDFs minutenlang: Der Datei-Export stellte den vollständigen Text vorab sicher und konnte sich dabei selbst verklemmen – das ließ den Export-Knopf („Struktur wird erstellt …") minutenlang drehen. Der Export wartet jetzt nur noch kurz auf den im Hintergrund laufenden Volltext und erzeugt die Datei danach sofort. Bei einem Beispiel-Dokument sank die Wartezeit von über 2 Minuten auf unter 15 Sekunden.
- Befundliste lud bei großen Dokumenten beim ersten Öffnen langsam: Der Abbildungs-Index für die Befund-Anzeige wurde bei jedem Öffnen der Befunde neu aus dem PDF gelesen (auf großen Dokumenten viele Sekunden, währenddessen die App träge). Er wird jetzt einmal bei der Analyse vorberechnet und mitgespeichert; die Befunde lesen ihn nur noch (großes Beispiel-Dokument: Befunde-Aufbau von ~28 s auf unter 1 s).
- Zusatzprüfung „Figure-/Note-Platzierung" erkennt jetzt auch Reference unter Caption: Steht ein Reference-Element (z. B. eine Quellenangabe) direkt unter einer Bildunterschrift (Caption), warnt das DACH-Strukturprüfprogramm „Mögliche unangebrachte Verwendung des Strukturelements Reference". Die Lage ist erlaubt, braucht aber – wie ein freistehendes Bild – das Layout-Attribut /Placement /Block. Die Prüfung meldet diese Stellen jetzt als status-neutralen Hinweis; die übrige Reference im Fließtext (unter
-
v2.0.1 27. Juni 2026
Behoben
- App öffnete sich mehrfach (zusätzliche Fenster): Beim Prüfen großer Dokumente (ab 80 Seiten) mit aktivierter Zusatzprüfung „Artefakt mit Body-Inhalt" startete der parallele Seiten-Walk im gebauten Programm über die Betriebssystem-Methode
spawndas InklaraPDF-Programm neu – dabei öffneten sich ein oder mehrere zusätzliche Fenster und lokale Dienste. Die Parallel-Verarbeitung nutzt jetztfork(macOS/Linux); unter Windows fängtfreeze_support()die Hilfsprozesse sauber ab. Betraf macOS und Windows; die Prüfergebnisse selbst waren unverändert korrekt.
- App öffnete sich mehrfach (zusätzliche Fenster): Beim Prüfen großer Dokumente (ab 80 Seiten) mit aktivierter Zusatzprüfung „Artefakt mit Body-Inhalt" startete der parallele Seiten-Walk im gebauten Programm über die Betriebssystem-Methode
-
v2.0.0 26. Juni 2026
Wichtig – strengeres Prüfergebnis
- Eine fehlende natürliche Dokumentsprache wird jetzt korrekt als PDF/UA-Fehler (Stufe 4) gewertet – vorher als Strukturqualität in Stufe 3. Dokumente, die in 1.x noch „Stufe 4 erreicht / PDF/UA grün" zeigten, können beim erneuten Prüfen jetzt rot werden, wenn die Sprache nicht gesetzt ist. Das ist der Hauptgrund für den Versionssprung auf 2.0.
Hinzugefügt
- Mehrsprachige Oberfläche und Berichte (de / en / fr / it / nl / es): Alle exportierten Berichte (PDF-Stufenbericht, Befundliste, Status-Bericht, Strukturbaum, Kundenberichte) sowie Schaltflächen, Phasen- und Statusmeldungen in der Benutzeroberfläche erscheinen jetzt in der eingestellten Sprache. Die Übersetzungen für Englisch, Französisch, Italienisch, Niederländisch und Spanisch wurden KI-unterstützt erstellt; eine redaktionelle Überprüfung durch Fachleute ist willkommen.
- Neue maschinelle Prüfung „Content-Stream-Syntax" (Stufe 4): Prüft, ob die normativen Operator-Paare in den Seiten-Content-Streams ausgeglichen sind (
BMC/BDC↔EMC,BT↔ET,q↔Q; ISO 32000-2). Unausgeglichene Operatoren sind ein struktureller PDF-Syntax-Defekt; InklaraPDF meldet Seite und Operator-Typ gezielt und analysiert die Datei trotzdem vollständig. - Neue Zusatzprüfung „Form-XObject-Farbraum" (nicht-normativ): Meldet Form-XObjects, die eine Farbe ohne vorher gesetzten Farbraum verwenden – ein Robustheits- und Kompatibilitätshinweis für strenge Prüfprogramme.
- Neue Zusatzprüfung „Strukturverweis ohne Inhalt" (nicht-normativ): Meldet Strukturelemente, deren MCID-Verweis ins Leere zeigt (Inhalt existiert nicht im Content-Stream der Seite) – häufig bei seitenübergreifenden Absätzen mit nackter MCID statt /MCR mit eigenem /Pg. veraPDF und die Stufen-Prüfung erkennen das nicht; das DACH-Strukturprüfprogramm meldet eine falsche Struktur und stoppt die Vorschau. Für eine Vorlese-Software bricht hier die Lesereihenfolge.
- Nachladende Textauszüge bei großen Dokumenten: Die Textauszüge der Befunde werden nach und nach im Hintergrund nachgeladen, statt die Analyse zu blockieren – alle Auszüge erscheinen, ohne den Upload auszubremsen.
- Regressions-Absicherung: Ein automatischer Test stellt sicher, dass jede maschinelle PDF/UA-Regel weiterhin eine vollständige Beschreibung und Einstufung besitzt, damit kein Befund unbemerkt zu einem weichen Hinweis „verstummt".
Geändert
- Fehlende natürliche Sprache zählt jetzt korrekt als PDF/UA-Fehler (Stufe 4) statt als Strukturqualität (Stufe 3) – im Einklang mit der DACH-Prüfpraxis. Die Listen-, Tabellen- und Inhaltsverzeichnis-Strukturregeln derselben ISO-Klausel bleiben weiterhin Strukturqualität.
- „Content-Stream-Syntax" in der Prüfschritt-Dokumentation dem Stufe-4-Bereich (maschinell, normativ) zugeordnet.
- Deutlich schnellere Analyse großer Dokumente: Die Artefakt-Prüfung dekodiert nur noch betroffene Seiten und nutzt mehrere Prozesse parallel – auf einem 364-seitigen Testdokument rund dreimal so schnell, bei identischem Prüfergebnis.
Behoben
- Fortschrittsanzeige springt nicht mehr auf 0 % zurück: Eine Analysephase war intern nicht hinterlegt; zusätzlich feinere Zwischenschritte während der Phase.
- Doppelte Befund-Karte „Tabelle ohne TH-Header" entfernt: Der Befund erschien in Stufe 2 durch ein Routing-Versehen zweimal.
- Vier bislang unklassifizierte PDF/UA-Regeln korrekt eingestuft: Betroffen u. a. übersprungene Überschriften-Ebene und fehlender Alternativtext bei Medien-Objekten – sie erscheinen jetzt nicht mehr nur als weicher Hinweis.
- Strukturbaum-Export bei großen Dokumenten vollständig: Der HTML-/PDF-/JSON-/CSV-Export lädt jetzt vor dem Erzeugen die restlichen Textauszüge vollständig nach. Vorher konnten bei sehr großen Dokumenten die unteren Elemente ohne Textauszug erscheinen, wenn das Hintergrund-Nachladen beim Export-Klick noch nicht abgeschlossen war.
- Lade-Anzeige beim Strukturbaum-Export: Ein Lade-Schleier erscheint sofort beim Export-Klick (kein „eingefroren"-Eindruck mehr bei großen Dokumenten), und der „Als HTML öffnen"-Knopf wird im Ladezustand sofort angeboten. Der Export lässt sich per Knopf oder ESC abbrechen.
- Strukturbaum: „Phantom-Überschriften" bei seitenübergreifendem Inhalt behoben: Verwies ein Element über ein /MCR mit eigenem /Pg auf eine andere Seite, zog der Text-Resolver bisher den Text der falschen Seite (eine MCID-Nummer, die auf beiden Seiten existiert). Jetzt wird jede MCID gegen die richtige Seite aufgelöst – z. B. zeigt eine „Zusammenfassung"-Überschrift wieder ihren echten Text statt eines fremden Inhaltsverzeichnis-Eintrags.
- Strukturbaum-Einbettung zeigt keinen veralteten Teilstand mehr: Ein Cache-Buster erzwingt beim Öffnen einen frischen Stand – vorher blieb bei großen Dokumenten gelegentlich eine noch unvollständig nachgeladene Version stehen (z. B. Inhaltsverzeichnis-Einträge nur mit Seitenzahl).
Verbessert
- Strukturbaum-Einbettung großer Dokumente deutlich schneller: Bilder werden in der eingebetteten Ansicht nicht mehr in voller Auflösung als base64 eingebettet, sondern als kleine Thumbnails per
loading="lazy"nachgeladen – der Browser holt nur die sichtbaren Bilder. Auf einem 214-seitigen Dokument sinkt der HTML-Aufbau von ~36 s / 9 MB auf ~1 s / 3 MB. Der HTML-Download bettet die Bilder weiterhin ein (portable Datei).
-
v1.3.0 22. Juni 2026
Hinzugefügt
- Stapelverarbeitung (Batch): Bis zu 15 PDF-Dateien auf einmal prüfen. Pro Datei werden automatisch exportiert: der PDF/UA-Status-Bericht (identisch mit dem „Bericht exportieren"-Button auf der Übersicht-Kachel – 1-seitiger Konformitätsbericht) sowie der Stufenbericht der höchsten erreichten Stufe (Stufe 2 oder 3), sofern vorhanden. Alle Berichte landen direkt im gewählten Ausgabeordner.
- Übersichtsdateien: Am Ende jedes Stapellaufs entstehen vier Übersichtsdateien im Ausgabeordner:
Stapelverarbeitung__inklara-batch-YYYY-MM-DD.json,.csv,.htmlund.pdf– mit Dateiname, PDF/UA-Konformität, höchster Stufe sowie den Dateinamen der exportierten Berichte. - Nativer macOS-Ordner-Picker: Ausgabeordner per Betriebssystem-Dialog wählen (osascript).
- Neuer Navigationspunkt „Stapelverarbeitung": mit eigenem Stapel-Icon in der Hauptnavigation.
Verbessert
- Stapelverarbeitung – Übersichtsexport Querformat: PDF-Übersicht jetzt im Querformat A4 mit Zeilenumbruch für lange Dateinamen; Tabelle scrollt nicht mehr aus dem Seitenrand.
- Stapelverarbeitung – Farben konsistent: Fortschrittsbalken, Buttons und „Läuft"-Status in Teal (einheitlich mit dem restlichen UI).
Behoben
- Stapelverarbeitung – korrekter Bericht-Typ: Pro Datei wird jetzt der 1-seitige PDF/UA-Status-Bericht exportiert (identisch mit dem UI-Button „Bericht exportieren"), nicht mehr der mehrseitige Befundbericht. Spalte im Übersichtsexport heißt entsprechend „PDF/UA-Bericht".
- Stapelverarbeitung – Fehler-Spalte entfernt: Die Spalte „Fehler" fehlte in der Spezifikation und wurde aus allen vier Übersichtsformaten (JSON, CSV, HTML, PDF) entfernt.
- Umlaute in Stapelverarbeitungs-Ausgaben: „Uebersicht" → „Übersicht", „Laueft" → „Läuft" in allen Exportformaten und der Fortschrittsanzeige.
-
v1.2.0 20. Juni 2026
Hinzugefügt
- S1-MAN-6 automatisch vorgeprüft: leere
TD/TH-Zellen in Tabellen werden jetzt vom Detektor gefunden und mit Seite, Zeile und Spalte aufgelistet. Das BMUV-Best-Practice-Item war bisher rein manuell; es bleibt eine Sichtprüfung (Heuristik – Layout-Tabellen können legitim leere Zellen haben), aber die Fundstellen sind jetzt automatisch vorgeprüft.
Verbessert
- S1-MAN-3a (Lesereihenfolge) – Bild-Vorschau in Fundstellen: Figure-Elemente in den automatisch markierten Lesereihenfolge-Abweichungen zeigen jetzt ein Seiten-Thumbnail als Positions-Marker, analog zu Abbildungs-Befunden in anderen Prüfpunkten.
- S1-MAN-6 (Leere Tabellenzellen) – Beschreibung ohne Anführungszeichen: das BMUV-Zitat im Beschreibungstext und die Sonderzeichen im Reparatur-Hinweis werden jetzt als Fließtext dargestellt, konsistent mit allen anderen Befund-Karten.
- Fundstellen-Count für auto-vorgeprüfte Stufe-1-Items: der Akkordeon-Header zeigt jetzt direkt „N Fundstellen", ohne dass man den Eintrag aufklappen muss – aber nur wenn tatsächlich Fundstellen vorhanden sind.
- TOCI-Link-Befunde mit Textauszug: jede Fundstelle in „TOC-Einträge verweisen auf falsches Ziel" zeigt jetzt den sichtbaren Text des Inhaltsverzeichnis-Eintrags.
- Span-Check erweitert auf BlockQuote: Einstellungs-Beschreibung und Befund-Card benennen jetzt beide Elterntag-Typen (
CaptionundBlockQuote). - Art-Container ergänzt: überall wo
Part/Sect/Divals gruppierende Container aufgezählt werden, steht jetzt auchArt(PDF/UA-1-konforme Artikel-Gruppierung). - S1-HINT-10 umgebaut: der Detektor prüft jetzt ausschließlich, ob Container-Elemente (
Part/Art/Sect/Div) fehlen – unabhängig davon, ob die Überschriften alle dieselbe Ebene haben oder nicht. Titel: „Dokumentgliederung in Abschnitte prüfen" (ehemals „Überschriften-Hierarchie prüfen"), Gruppe: Layout und Sprache. - Heading-Cluster-Beschreibung: macht jetzt transparent, dass der Check eine Heuristik ist (Schwellenwert ab 3 gleichen Heading-Geschwistern), und fordert zur Sichtprüfung auf.
- Befundtitel-Sprache (Stufe 1/2/3): alle automatisch vorgeprüften Items, die Fundstellen für Fehler zeigen, beschreiben jetzt das Problem (was gefunden wurde), nicht mehr den Zielzustand (wie es korrekt wäre). Betroffen: S1-MAN-2d/2e, S1-HINT-3/5/7/8, S1-MAN-6 sowie alle 10 auto-geprüften Stufe-2-Items und 4 Stufe-3-Items.
- Strukturbaum-Suche: die Suche trifft jetzt auch Originaltext (ActualText) und Alt-Text – nicht mehr nur den Textauszug. Damit lassen sich z. B. Fußnoten-Marker und Bildunterschriften per Suchbegriff finden.
Behoben
- Suche-Buttons (↑/↓) unsichtbar im Strukturbaum: bei schmaler Ansicht (< 900 px) wurden alle Header-Buttons auf Icon-only geschaltet. Die ↑/↓-Buttons hatten kein SVG-Icon und erschienen als leere farbige Rechtecke. Jetzt erhalten beide Buttons Chevron-SVGs (▲/▼) in der richtigen Farbe für Dunkel- und Hellmodus.
- SyntaxError in extra_check_verdicts.py: typografische Anführungszeichen als Python-String-Delimiter verhinderten das Laden von PDF-Befunden komplett.
- Heading-Cluster-Card – BMUV-Bezug entfernt: Kap. 6.1 belegt Überschriften-Hierarchie, nicht aufeinanderfolgende gleiche Headings – kein valider Beleg für diese Heuristik.
- §7.1 – falscher Karten-Titel „Nicht getaggtes Bildobjekt": wenn der Text-Rebuild auf denselben Seiten tatsächlich Text gefunden hat, wurde der Card-Titel trotzdem auf „Bildobjekt" gesetzt (weil veraPDF den Content-Stream-Typ als
imagemeldet). Der Titel lautet nun korrekt „Nicht getaggter Inhalt", sobald Text-Regionen vorliegen.
- S1-MAN-6 automatisch vorgeprüft: leere
-
v1.1.1 19. Juni 2026
Verbessert
- Textauszüge in allen Befunden: wo technisch möglich, zeigt jede Fundstelle jetzt einen hervorgehobenen Textauszug (Alt-Text bei Abbildungen, Linktext, Überschriftstext, URL/E-Mail-Adresse, Kontrast-Textschnipsel u. a.). Betroffen sind alle Stufe-1/2/3/4-Befunde sowie alle Zusatzprüfungen – nicht nur einzelne Karten wie bisher. Strukturelle Befunde ohne sinnvollen Freitext (z. B. Tabellen-Schiefstand, doppelte MCID) bleiben unverändert.
- Sprach-Befund (7.2::43) klarer formuliert: Titel und Beschreibung erklären jetzt präzise, was geprüft wird (Catalog
/Langund XMPdc:language), und ordnen dem richtigen Matterhorn-Prüfpunkt (11-001) zu. - Link-Platzierung: Fundstelle zeigt jetzt den verlinkten URI, damit die betroffene Stelle ohne PDF-Öffnen identifiziert werden kann.
- Tabellen-Schiefstand: Fundstelle nennt jetzt die konkrete Seite statt „dokumentweit".
- Interne Sprungziele (Hauptteil vs. TOC): Befund-Titel „Interne Links im Hauptteil" und „Interne Links im TOC" statt zuvor gleichlautend „Interne Links im Body/TOC".
Behoben
- Strukturbaum – Caption-Farbe im Hell-Modus: Caption-Knoten wurden fälschlich in Teal statt Lila angezeigt, wenn die Hell-Palette aktiv war (CSS-Überschreibung hatte falsche Farbe).
- Strukturbaum – leere Zeile bei Caption/Note mit Kindern: wenn ein Caption- oder Note-Knoten strukturelle Kinder enthielt (z. B.
PoderLbl), wurde ein leerer Inhaltsbereich angezeigt. Erscheint nur noch, wenn tatsächlich Text vorhanden ist. - Strukturbaum – Flash beim ersten Öffnen: beim ersten Klick auf den Strukturbaum-Tab flimmerte kurz die alte native Baumansicht auf, bevor der Embed-Frame geladen war. Wird jetzt direkt unterdrückt.
- API-Start-Fehler bei figure_bbox-Befunden (latent): die interne Funktion
_figure_bbox_itemsenthielt Unicode-Anführungszeichen als Python-String-Delimiter (statt ASCII) – ein latenter SyntaxError, der den API-Start unter Python 3.9 verhindert hätte, sobald Abbildungs-Befunde ausgewertet werden.
-
v1.1.0 18. Juni 2026
Hinzugefügt
- Stufe 1 – Sichtprüfung „Lese- und Strukturreihenfolge" (S1-MAN-3a): markiert automatisch Elemente, deren physische Seite stark von der Lesereihenfolge im Tag-Baum abweicht (Hinweis auf ein verschobenes Tag, z. B. ein Bild auf Seite 7, dessen Tag zwischen Inhalten von Seite 61 hängt). Sichtprüfung – beeinflusst den Konformitätsstatus nicht.
- Stufe 2 – Bildunterschrift bei ihrer Abbildung/Tabelle: ein neuer Prüfpunkt meldet, wenn eine Bildunterschrift mehr als eine Seite von der zugehörigen Abbildung bzw. Tabelle entfernt steht (Zuordnung über den Beschriftungs-Marker „Abbildung …"/„Tabelle …").
- Vollständige deutsche Texte: alle 106 maschinellen PDF/UA-1-Prüfpunkte haben nun eine deutsche Überschrift und eine verständliche Erklärung.
- Seitenzahl im Strukturbaum: über „Anzeigen → Seitenzahl" lässt sich pro Element die jeweilige Seite einblenden, mit Farbwechsel von Seite zu Seite. So ist auf einen Blick erkennbar, ob Inhalte auf der richtigen Seite liegen.
Verbessert
- Strukturbaum-Suche überarbeitet: eigener Such-Dialog in der Werkzeugleiste mit Trefferanzeige („3 / 15") und Weiter/Zurück-Navigation; das gefundene Wort wird direkt hervorgehoben statt der ganzen Zeile, die übrigen Inhalte werden nicht mehr abgedunkelt, und die Suche bleibt auch bei großen Dokumenten flüssig.
- Methodik-Hinweis bei heuristischen Zusatzprüfungen: Prüfungen, die das Ergebnis des DACH-Standardprogramms nur näherungsweise nachbilden (TOCI-Sprungziel, getaggter Inhalt außerhalb der Seite), weisen jetzt im Befund und in der technischen Dokumentation transparent darauf hin, dass keine Norm die genaue Bewertung festlegt und das Ergebnis im Einzelfall abweichen kann. Belegte/exakte Prüfungen tragen diesen Hinweis bewusst nicht.
Behoben
- Überschriften-Sprünge (Hierarchie): Fundstelle samt Seitenzahl und Überschriftstext wird jetzt auch bei Dokumenten mit eigenen Tag-Namen (z. B. InDesign-Exporte) korrekt angezeigt – vorher fehlte dort die Fundstelle.
- Nicht getaggtes Bild am Seitenrand: ein schmales Anschnitt-Bild wird korrekt als ein einzelnes „nicht getaggtes Bildobjekt" gemeldet, statt fälschlich als mehrere Textstellen.
- Keine Platzhalter-Texte mehr: Befunde zu (noch) nicht eigens betexteten Prüfpunkten zeigen eine verständliche Meldung statt eines Entwurfshinweises.
- Notizfeld (Stufe 1): zeigt keinen technischen Platzhalter (
null) mehr, wenn keine Notiz gespeichert ist.
Geändert
- Wortlaut des Befunds zur „Sect"-Verwendung an die im DACH-Raum übliche Bezeichnung angeglichen.
- Befund „Interne Links … falsches Ziel" verständlicher benannt („Hauptteil" statt „Body") und die Beschreibung von einer doppelten Erklärung befreit.
-
v1.0.2 17. Juni 2026
Behoben – Kritisch (maschinenweite Installation)
- PDF-Analyse schlug bei Installation für alle Benutzer fehl (HTTP 500). Lade- und Zwischendateien wurden in den Installationsordner geschrieben; bei einer Installation nach
C:\Program Filesist dieser für normale Benutzer schreibgeschützt, wodurch jede Analyse scheiterte. Schreibbare Laufzeitdaten liegen jetzt unabhängig vom Installationsort im Benutzerordner~/.inklara-pdf(wie Einstellungen/Logos bereits zuvor). Damit funktioniert auch die maschinenweite Silent-Installation (/VERYSILENT /ALLUSERS). - Falsche Fehlermeldung unter Windows/Linux: Bei einem Analyse-Fehler wurde fälschlich eine macOS-Installationsanleitung (.dmg/„Programme") angezeigt. Die Meldung ist jetzt plattformabhängig.
- PDF-Analyse schlug bei Installation für alle Benutzer fehl (HTTP 500). Lade- und Zwischendateien wurden in den Installationsordner geschrieben; bei einer Installation nach
-
v1.0.1 17. Juni 2026
Behoben & Verbessert
- Strukturbaum-Ansicht (eingebettet): Anzeige-Auswahl wird nun gemerkt; jedes Attribut einzeln ausblendbar; Knoten mit Originaltext kollabiert seinen Teilbaum; „Anzeigen"-Menü öffnet nach rechts (kein Abschneiden bei schmalem Fenster); Checkboxen auch im Dunkelmodus sichtbar; Tabellen-Tags ausblendbar; Titel-Schiene kompakter (kein erzwungener Abstand, eingeklappter Part nicht mehr überhöht); sichtbarer Scrollbalken im dunklen Modus.
- TOCI-Prüfung sowie Stufe-1- und Berichts-Korrekturen.
-
v1.0.0 16. Juni 2026
Erste offizielle öffentliche Veröffentlichung. macOS signiert und notarisiert, Windows-Setup, Linux-Paket.
Für macOS (Intel) gibt es Builds nur auf Anfrage und nur für die aktuelle Version. Eine kurze Nachricht an kontakt@inklara.de genügt; frühere Intel-Versionen werden nicht nachgebaut.
Versionierungsschema.
InklaraPDF folgt Semantic Versioning, der Changelog ist nach Keep a Changelog strukturiert.
-
X.0.0MAJOR - Inkompatible Änderungen am Prüfmodell oder an der Regellogik.
-
1.X.0MINOR - Neue Prüfregeln oder neue Funktionen, abwärtskompatibel.
-
1.0.XPATCH - Fehlerkorrekturen ohne inhaltliche Regeländerungen.
Regeländerungen, die bestehende Prüfergebnisse beeinflussen, werden mindestens als MINOR-Release veröffentlicht und im Changelog explizit ausgewiesen.
Benachrichtigung über neue Versionen.
Eine Mailingliste für Versionshinweise ist in Vorbereitung. Bis dahin Vormerkung per E-Mail an kontakt@inklara.de mit dem Stichwort Versionshinweise. Die Adresse wird ausschließlich für diese Benachrichtigung verwendet.