Expand description
Gemeinsames Befund- und Berichtsmodell für Accessibility-Werkzeuge.
Ein Regelbestand bedient drei Oberflächen — Build-Zeit, CI/Crawl und die laufende Seite — mit identischen Regelkennungen und identischem JSON. Dieses Crate definiert, was dabei herauskommt.
§Zwei Achsen, nicht drei
Outcome sagt, wie sicher die Aussage ist; Severity sagt, wie
schwer das Problem wiegt. Eine dritte Achse „certainty“ gibt es bewusst
nicht — eine nur heuristisch belegbare Regel liefert Outcome::Review,
nicht Outcome::Fail mit niedriger Gewissheit.
use a11y_report::{Finding, Location, Report, Severity};
let mut report = Report::new();
// Eindeutig: das Attribut fehlt.
report.push(
Finding::fail("images/alt-missing", "Das Bild besitzt kein alt-Attribut.")
.with_severity(Severity::High)
.with_wcag(["1.1.1"])
.at(Location::file("about/index.html").with_selector("main > img:nth-child(2)")),
);
// Heuristisch: der Alt-Text ist da, aber womöglich nichtssagend.
report.push(
Finding::review("images/alt-suspicious", "Der Alt-Text sieht nach einem Dateinamen aus.")
.with_severity(Severity::Medium)
.with_wcag(["1.1.1"]),
);
let report = report.finish();
assert_eq!(report.summary.fail, 1);
assert_eq!(report.summary.review, 1);
assert_eq!(report.summary.problems(), 2);§Regeln, die nicht laufen konnten
Der Unterschied zwischen „lief und fand nichts“ und „konnte nicht laufen“
wird über RuleRun festgehalten. Ohne ihn liest sich eine Kontrastprüfung
ohne Rendering-Zugriff wie eine bestandene Prüfung.
use a11y_report::{NotRun, Report, RuleRun};
let mut report = Report::new();
report.record(
RuleRun::not_run("contrast/text", NotRun::CapabilityMissing)
.with_reason("statische Analyse liefert keine Rendering-Werte"),
);
let report = report.finish();
assert_eq!(report.summary.rules_not_run, 1);Structs§
- Evidence
- Woher ein Befund seine Tatsachenbasis hat. Macht nachvollziehbar, ob eine Aussage aus dem nativen Accessibility-Tree stammt, aus einem Attribut oder aus einer Messung — was je nach Oberfläche unterschiedlich verfügbar ist.
- Extra
- Werkzeugspezifische Beigabe an einem
FindingoderRuleRun. Nie serialisiert. - Finding
- Ein Prüfergebnis.
- Location
- Wo ein Befund sitzt. Die drei Oberflächen verorten unterschiedlich: astro-post-audit über Dateipfade, auditmysite über AXTree-Knoten, LiveAudit über den Index in seiner Arena. Alle Felder sind deshalb optional — welche gefüllt sind, hängt vom Host ab, nicht von der Regel.
- Report
- Das Gesamtergebnis eines Laufs.
- RuleRun
- Ein Ausführungsvermerk je Regel. Beantwortet „lief das überhaupt?“, während
Findingbeantwortet „was kam dabei heraus?”. - Summary
- Zählwerk über einen Befundsatz. Bewusst keine Gesamtnote: Ein aggregierter Score würde genau die Unterscheidung einebnen, für die es die vier Zustände gibt.