BarrierLab

html-conform

HTML5-Konformanzprüfung ohne JVM, samt der sechs Parser darunter.

HTML5-Konformanzprüfung als Rust-Abhängigkeit, ohne JVM. Differentiell gegen den Nu Html Checker (vnu) geprüft. Dazu gehören sechs eigenständige Pakete, die die Syntax lesen, die die Prüfung braucht.

Stand

0.2.1 auf crates.io, benutzt von auditmysite (src/html_conform/) und astro-post-audit (checks/html_validation.rs). Auf main liegen Änderungen nach 0.2.1: MSRV auf 1.88, zusätzliche Befunde (img ohne alt, interaktiver Inhalt in a).

Mit dem Umzug sind die =-Pins gefallen. Vorher hing html-conform auf genaue Versionen von vier seiner sechs Abhängigkeiten, weil jede Änderung eine Release-Kaskade über sieben Repositories brauchte. Jetzt stehen sie als Workspace-Abhängigkeiten mit path und version — eine Änderung, ein Release.

Aufbau

HTML-Quelltext

html5-parser

infoset: normalisierter Baum

Inhaltsmodell, Attribute,

Tabellenintegrität

relax-ng

(Schema-Validierung)

schematron-engine

(Regeln über XPath)

xpath-eval

Attributwerte

csp-parse

media-query-parse

Befunde (Severity::Error)

PaketRolle
html5-parserWHATWG-Tokenizer und Tree-Construction, meldet Parse-Fehler mit Position
csp-parseContent-Security-Policy nach CSP3-Grammatik
media-query-parseMedia Queries Level 4
xpath-evalXPath-Auswertung
relax-ngRELAX NG, für die Schema-Seite der Prüfung
schematron-engineSchematron-Regeln über xpath-eval

Öffentliche Fläche

html_conform::check(html) liefert die Befunde. Die sechs Pakete darunter haben jeweils eine eigene, kleine API und lassen sich einzeln benutzen — xpath-eval und schematron-engine zum Beispiel auch außerhalb von HTML.

Abhängigkeiten

Nach unten: die sechs oben. Nach oben: auditmysite, astro-post-audit, künftig web-checks.

Grenzen

Kein vollständiger vnu-Ersatz. Die Prüfung ist differentiell gegen vnu abgeglichen, nicht deckungsgleich; welche Klassen fehlen, steht in docs/html-conform/. Und sie sagt nichts über Zugänglichkeit — Konformanz ist eine andere Frage als Wahrnehmbarkeit.

Edit this page on GitHub