BarrierLab

Architektur

Schichten, Abhängigkeitsgraph und die Regeln, unter denen ein Paket hier liegt.

Grundsatz

Dieses Repository enthält Bibliotheken, keine Werkzeuge. Jeder Host — auditmysite, astro-post-audit, liveaudit, ein künftiger eigenständiger Prüfer — lebt in seinem eigenen Repository und bindet die Pakete über crates.io bzw. npm ein. Eine Bibliothek hier darf nie einen Host voraussetzen.

Schichten

L4 · Werkzeuge, eigene Repositories

L3 · Auslieferung

L2 · Berechnung

L1 · Modell

L0 · Parser und Engines

html5-parser

csp-parse

media-query-parse

xpath-eval

relax-ng

schematron-engine

a11y-dom

a11y-report

html-conform

accname

a11y-rules

a11y-perception

web-checks

a11y-wasm

auditmysite

astro-post-audit

liveaudit

Reader-Host

SchichtAufgabeRegel
L0Syntax lesen: HTML, CSP, Media Queries, XPath, RELAX NG, Schematronkeine Bewertung, keine Zugänglichkeitsbegriffe
L1Datenmodell: Baum, Befund, Konformanzein Befundmodell für alle Hosts (a11y-report)
L2Berechnung: Name, Regeln, Wahrnehmung, Prüfungenreine Funktionen über L1, browserfrei
L3Auslieferung in andere Laufzeiten (WASM)reicht durch, bewertet nicht
L4Erhebung, Orchestrierung, Ausgabeaußerhalb dieses Repositorys

Feste Regeln

  1. Abhängigkeiten nur nach unten. Kein Paket importiert ein Paket derselben oder einer höheren Schicht. Kein Host im Repository.
  2. Browserfrei bis L3. Kein chromiumoxide, keine CDP-Typen in einer öffentlichen API. Die Aufnahme im Browser bleibt Sache der Hosts; Pakete nehmen Daten entgegen, sie holen sie nicht.
  3. Intern path + version. Interne Abhängigkeiten stehen mit beidem in workspace.dependencies, damit dasselbe Manifest lokal baut und veröffentlichbar bleibt. Hosts binden ausschließlich aus der Registry ein.
  4. Adapter bewerten nicht. Was nur übersetzt (a11y-wasm), trifft keine Entscheidung über Befunde.
  5. Ein Feld gilt erst als vorhanden, wenn ein Lauf es gefüllt gesehen hat. Teuer gelernt: zwei Felder eines Snapshots waren monatelang tot, ohne dass Tests oder Lesen es zeigten.

Reihenfolge des Aufbaus

SchrittPaketWoherZustand
1a11y-report, a11y-dom, accname, a11y-rulescasoon/a11y-coreimportiert (0.10.1), Historie mitgekommen
2html-conform + html5-parser, csp-parse, media-query-parse, xpath-eval, relax-ng, schematron-engineeigene Repositoriesimportiert, =-Pins aufgelöst
3a11y-wasmcasoon/liveaudit, packages/coreimportiert, Crate + npm-Paket @casoon/a11y-wasm
4a11y-perceptioncasoon/auditmysiteimportiert (0.1.0), browserfrei, 27 Tests
5web-checksDoppelungen aus auditmysite und astro-post-auditerste Familie (robots) drin; die übrigen einzeln, jede vorher geprüft

Jeder Schritt zieht die Historie des Ursprungs mit; die alten Repositories werden danach archiviert, nicht gelöscht — veröffentlichte Pakete verweisen auf sie.

Edit this page on GitHub