Skip to main content

Crate a11y_rules

Crate a11y_rules 

Source
Expand description

Accessibility-Regeln, generisch über das Dokumentmodell.

Ein Regelbestand, drei Oberflächen: Build-Zeit, CI/Crawl und die laufende Seite. Welche Regeln laufen können, hängt davon ab, welche Tiers der Host bedient.

§Nicht gelaufen ist nicht bestanden

run läuft mit dem, was da ist, und hält für jede Regel fest, ob sie laufen konnte. Eine Tier-2-Regel auf einem Host ohne Semantics erzeugt keinen stillen Nicht-Befund, sondern einen Vermerk mit NotRun::CapabilityMissing.

use a11y_dom::Arena;
use a11y_rules::run;

let doc = Arena::builder()
    .open("html")
        .open("body")
            .open("img").attr("src", "logo.png").close()
        .close()
    .close()
    .build();

let report = run(&doc);

// Gefunden: kein lang, kein title, kein alt.
assert!(report.findings.iter().any(|f| f.rule_id == "images/alt-missing"));
assert!(report.findings.iter().any(|f| f.rule_id == "document/lang-missing"));

// Nicht beurteilt: die Tier-2-Regeln, weil dieser Host keine Semantik liefert.
assert_eq!(report.summary.rules_not_run, 4);

Mit einem Host, der Semantics erfüllt, laufen die über run_with_semantics mit.

Structs§

Meta
Was über eine Regel unabhängig vom Host feststeht.
SemanticsRule
Eine Regel auf Tier::Semantics — braucht Rolle und Accessible Name.
StructureRule
Eine Regel auf Tier::Structure — Tags, Attribute, Text, Hierarchie.

Functions§

run
Prüft ein Dokument, das nur Struktur liefert.
run_with_semantics
Prüft ein Dokument, das zusätzlich Rolle und Accessible Name liefert.
semantics_metas
Siehe structure_metas.
semantics_rules
Alle Tier-2-Regeln.
structure_metas
Die Deklarationen ohne Bindung an einen Host — für Werkzeuge, die den Regelbestand auflisten oder Kennungen benennen müssen, ohne ihn auszuführen.
structure_rules
Alle Tier-1-Regeln.