Barrierefreiheit: Konformitätstabelle nach EN 301 549¶
Stand: 2026-09-09 · Bewertete Fassung: calServer V2 (frontend-v2/, laravel/,
report-runner/) · Art der Bewertung: Selbstbewertung des Herstellers
Dieses Dokument ist das, was eine ausschreibende Stelle üblicherweise als „VPAT" oder „Barrierefreiheitsnachweis" anfordert: eine Aussage je Klausel der EN 301 549, mit Begründung und ohne Schönfärbung. BITV 2.0 § 3 verweist auf diese Norm, ihre Klausel 9 gibt WCAG 2.1 Stufe AA wieder.
Was diese Tabelle nicht ist
Sie ist kein Prüfbericht einer unabhängigen Stelle und keine Konformitätserklärung. Ein BITV-Test durch eine akkreditierte Prüfstelle hat nicht stattgefunden. Die Angaben stammen aus einem internen Audit vom 04.09.2026 (222 Rohbefunde, 24 davon in einer Gegenprüfung widerlegt) sowie aus automatisierten Prüfungen, die im Build mitlaufen.
Kurzfassung: calServer V2 erfüllt EN 301 549 heute nicht vollständig. Wo die Lücken liegen, steht unten. Wer eine belastbare Aussage für eine Vergabe braucht, bekommt hier die Grundlage dafür, nicht den Nachweis.
Bewertungsstufen¶
| Stufe | Bedeutung |
|---|---|
| erfüllt | Die Anforderung ist umgesetzt; kein offener Befund. |
| teilweise erfüllt | Die Anforderung ist im Grundsatz umgesetzt, einzelne Stellen erfüllen sie nicht. |
| nicht erfüllt | Die Anforderung ist nicht umgesetzt oder in nennenswertem Umfang verletzt. |
| nicht anwendbar | Das Produkt hat die betreffende Funktion nicht. |
Prüfumfang¶
Bewertet: die Weboberfläche von calServer V2 (angemeldeter Bereich, Anmeldeseite, öffentliches Portal, QR-Ansichten, Rechtstexte), die API-Antworten, soweit sie Oberflächenverhalten bestimmen, und die erzeugten Ausgabedateien (PDF-Kalibrierscheine, Grid-Exporte als PDF und XLSX, ausgehende E-Mails).
Nicht bewertet: calServer V1 (httpdocs/, Yii). V1 ist eine eigene
Anwendung mit eigener Oberfläche und wird von diesem Dokument nicht abgedeckt.
Wer eine Aussage für V1 braucht, kann sie hier nicht ableiten.
Der Synchronisationsdienst (calserver-sync, SymmetricDS) läuft serverseitig
als Dienst und Kommandozeilenwerkzeug und hat keine Endnutzeroberfläche.
Klauselübersicht¶
| Klausel | Gegenstand | Bewertung | Anmerkung |
|---|---|---|---|
| 4.2 | Funktionale Leistungsmerkmale | teilweise erfüllt | Bedienung ohne Sehvermögen und ohne Maus ist durchgängig möglich; die offenen Kontrastwerte treffen die Nutzung mit eingeschränktem Sehvermögen (4.2.4). |
| 5.1 | Geschlossene Funktionalität | nicht anwendbar | Alle Oberflächen laufen im Browser mit vollem Zugang für Hilfsmittel, auch die Kiosk- und QR-Ansichten. |
| 5.2 | Aktivierung von Barrierefreiheitsfunktionen | teilweise erfüllt | Farbschema, hoher Kontrast, Schriftgröße und Reduktion von Animationen sind vor der Anmeldung erreichbar und bleiben ohne Konto erhalten. Fünf Seiten ohne Layout tragen die Schaltfläche nicht. |
| 5.3 | Biometrie | nicht anwendbar | Keine biometrische Authentifizierung. |
| 5.4 | Erhalt von Barrierefreiheitsinformationen bei Umwandlung | teilweise erfüllt | Berichts-PDFs erhalten Struktur, Sprache und Titel. Der Grid-PDF-Export verliert die Kopfzeilen-Zuordnung, weil TCPDF keinen Strukturbaum schreiben kann (siehe Klausel 10). |
| 5.5 – 5.9 | Bedienteile, Tastenwiederholung, gleichzeitige Bedienung | nicht anwendbar | Keine Hardware. |
| 6 | Zwei-Wege-Sprachkommunikation | nicht anwendbar | Nicht enthalten. |
| 7 | Videofunktionen | nicht anwendbar | Die Anwendung liefert keine zeitbasierten Medien aus. Vom Betreiber eingestellte Videos (etwa eine Erläuterung in Gebärdensprache) sind sein Inhalt und seine Verantwortung. |
| 8 | Hardware | nicht anwendbar | Reine Software. |
| 9 | Web | teilweise erfüllt | Im Einzelnen unten. |
| 10 | Nicht-Web-Dokumente | teilweise erfüllt | Berichts-PDFs sind getaggt und tragen Titel, Sprache und für jedes Bild einen Alternativtext, XLSX-Exporte Dokumenteigenschaften und eine ausgezeichnete Kopfzeile, E-Mails eine Textalternative. Offen: der Grid-PDF-Export über TCPDF. |
| 11 | Nicht-Web-Software | nicht anwendbar | Kein nativer Client, keine Desktop-Anwendung. |
| 12 | Dokumentation und Support | teilweise erfüllt | Im Einzelnen unten. |
| 13 | Vermittlungs- und Notrufdienste | nicht anwendbar | Nicht enthalten. |
Klausel 9 im Einzelnen (WCAG 2.1, Stufen A und AA)¶
Klausel 9 der EN 301 549 verweist Kriterium für Kriterium auf WCAG 2.1; 9.1.4.3 ist WCAG 1.4.3 und so fort.
Wahrnehmbarkeit¶
| Kriterium | Stufe | Bewertung | Anmerkung |
|---|---|---|---|
| 1.1.1 Nicht-Text-Inhalte | A | erfüllt | Icon-Bedienelemente tragen einen Namen; eine statische Prüfung im Build hält das fest. Alle 99 Ladeanzeigen bekommen ihren Namen aus einer zentralen Vorgabe an der Bibliothek, übersetzt und der Sprachwahl folgend; eine Aufrufstelle mit genauerem Namen behält Vorrang. Ein Messlauf gegen die laufende Anwendung hat danach noch drei namenlose Bilder gefunden, die eine Quelltextprüfung strukturell nicht sehen kann: Chart.js setzt auf seine eigene Zeichenfläche role="img", ohne Namen — direkt neben dem Rahmen, der die Textalternative trägt. Die Zeichenfläche ist jetzt für Hilfsmittel ausgeblendet. |
| 1.2.1 – 1.2.5 Zeitbasierte Medien | A/AA | nicht anwendbar | Die Anwendung liefert weder Audio noch Video aus. |
| 1.3.1 Info und Beziehungen | A | teilweise erfüllt | Beschriftung, Hilfetext, Fehlertext und Pflichtangabe werden zentral mit dem Bedienelement verknüpft; Optionsgruppen tragen einen Gruppennamen. Offen: einzelne Tabellen ohne Kopfzeilenbindung. |
| 1.3.2 Bedeutungsvolle Reihenfolge | A | erfüllt | Geprüft, ohne Befund. |
| 1.3.3 Sensorische Eigenschaften | A | erfüllt | Geprüft, ohne Befund. |
| 1.3.4 Ausrichtung | AA | erfüllt | Nichts erzwingt Quer- oder Hochformat. |
| 1.3.5 Eingabezweck bestimmen | AA | erfüllt | Anmeldung, Registrierung, Passwortstrecke und Profil tragen autocomplete-Angaben. Die übrigen Felder erheben Daten über Geräte und Kunden, nicht über die bedienende Person. |
| 1.4.1 Verwendung von Farbe | A | erfüllt | Umschaltknöpfe tragen ihren Zustand in aria-pressed, Statusknöpfe im Namen. Geprüft wurde nicht stichprobenweise: Alle Knöpfe, deren Farbe an einem Zustand hängt, sind aus dem Quelltext aufgelistet und einzeln bewertet worden — wo die Aussage schon als Text danebensteht (etwa der Hinweisstreifen „Erweiterter Filter aktiv"), blieb der Knopf unverändert. |
| 1.4.2 Audiosteuerung | A | nicht anwendbar | Kein automatisch startendes Audio. |
| 1.4.3 Kontrast (Minimum) | AA | erfüllt | 966 Klassenlisten mit fester Graustufe sind auf text-muted umgestellt, das je Modus auflöst (hell 4,76:1, dunkel 6,91:1) und im Kontrastmodus zusätzlich angehoben wird. Der statische Scan im Build steht bei null und lässt keine feste Stufe mehr zu; die Werte sind unit-getestet. Ein Messlauf mit axe gegen die laufende Anwendung fand danach noch eine Stelle, die eine Quelltextprüfung nicht sehen kann, weil sie aus dem Preset kommt: Die Beschriftung des nicht gewählten Umschalters stand bei 4,34:1. Sie steht in der Seitenleiste und über jedem Grid, ist also der Zustand, den man die meiste Zeit liest; eine Stufe dunkler bringt 6,92:1. |
| 1.4.4 Textgröße ändern | AA | erfüllt | Durchgängig relative Einheiten, kein gesperrter Zoom, zusätzlich eine Schriftskalierung bis 150 % in der Anwendung selbst. |
| 1.4.5 Bilder eines Textes | AA | erfüllt | Keine Textgrafiken. |
| 1.4.10 Reflow | AA | erfüllt | Bei 320 px gemessen, nicht geschätzt: 103 der 105 Routen des Bestands aufgerufen und auf waagerechten Überlauf geprüft — keine einzige läuft über. (Zwei Detailrouten hatten im Prüfbestand keinen Datensatz.) Das Dashboard bricht von 12 auf 6 auf 1 Spalte um, breite Tabellen scrollen in ihrem eigenen Bereich, und Dialoge mit fester Pixelbreite sind per Stylesheet auf 95 % der Fensterbreite gedeckelt. |
| 1.4.11 Nicht-Text-Kontrast | AA | teilweise erfüllt | Rahmen aller Formularfelder und der Umriss von Schaltern liegen über 3:1; die Werte sind an das Design-Token gebunden und unit-getestet. Die Kurven des Messverlaufs sind jetzt ebenfalls nachgerechnet und festgehalten: hell 4,76–5,48:1, dunkel 6,91–9,22:1; dasselbe gilt für Punkte, Grenzlinien und Unsicherheitsbalken des Toleranzdiagramms. Offen bleiben die Segmentfarben der Status-Diagramme — sie kommen aus der Statuskonfiguration des Betreibers, das Produkt wählt sie nicht und kann für sie keine 3:1 zusagen. Dort trägt die umschaltbare Datentabelle neben jedem Diagramm dieselbe Aussage. |
| 1.4.12 Textabstand | AA | erfüllt | Mit den vier vorgeschriebenen Überschreibungen (Zeilenhöhe 1,5, Zeichenabstand 0,12 em, Wortabstand 0,16 em, Absatzabstand 2 em) gegen die laufende Anwendung gemessen, auf acht Seiten quer durch die Anwendung. Gezählt wurde nur, was durch die Überschreibungen verloren geht — was schon vorher gekürzt war, ist eine Entwurfsentscheidung mit eigener Vorschau, kein Verlust. Drei Stellen verloren Text und sind behoben (Dashboard-Wähler, Spaltenauswahl, Widget-Überschrift); danach kein Verlust und kein waagerechter Überlauf. |
| 1.4.13 Inhalt bei Hover oder Fokus | AA | erfüllt | Kurzhinweise erscheinen auch bei Tastaturfokus, lassen sich mit Esc schließen, bleiben stehen, solange der Fokus steht, und lassen sich mit dem Zeiger ansteuern. Alle drei Bedingungen greifen an einer Stelle für alle Aufrufstellen, nicht je Schaltfläche. |
Bedienbarkeit¶
| Kriterium | Stufe | Bewertung | Anmerkung |
|---|---|---|---|
| 2.1.1 Tastatur | A | erfüllt | Die vier im Audit gefundenen Tastatur-Sperren sind behoben (Sichtbarkeitsschalter am Passwortfeld, Datei-Auswahlen, Expertenreiter des DCC-Exports, Modul-Aufklapper der Migration). Ziehen, Skalieren und Freihandzeichnen haben je einen gleichwertigen zweiten Weg, das Bearbeiten in der Zelle über die Detailseite. Die Spaltenbreite steht als Zahlenfeld im Spaltendialog — dieselbe Breite, die ein Zug mit der Maus schreibt, die Pfeiltasten ändern sie in Zehnerschritten, und ein leeres Feld gibt sie wieder frei. |
| 2.1.2 Keine Tastaturfalle | A | erfüllt | Geprüft, ohne Befund. |
| 2.1.4 Zeichentasten-Kurzbefehle | A | erfüllt | Einziges Kürzel ist Strg/Cmd + K, also mit Zusatztaste. |
| 2.2.1 Zeitvorgaben | A | erfüllt | Die beiden automatischen Weiterleitungen sind durch einen Link bzw. einen Knopf ersetzt. Es gibt keine Zeitvorgabe mehr. |
| 2.2.2 Pausieren, Beenden, Ausblenden | A | erfüllt | Kein selbsttätig bewegter Inhalt; Animationen folgen der Systemeinstellung und lassen sich zusätzlich im Profil abschalten. |
| 2.3.1 Dreimaliges Blitzen | A | erfüllt | Nichts blitzt. |
| 2.4.1 Blöcke umgehen | A | erfüllt | Sprunglink in beiden Layouts, benannte Landmarken. |
| 2.4.2 Seite mit Titel | A | teilweise erfüllt | Jede Route setzt einen beschreibenden Dokumenttitel; die Fehlerseite nicht. |
| 2.4.3 Fokus-Reihenfolge | A | erfüllt | Nach Navigation springt der Fokus in den Hauptbereich. Die Überlagerungen sind einzeln durchgespielt worden — Fokus hinein, Fokus gefangen, Fokus zurück zum Auslöser. PrimeVue erfüllt alle drei nur beim Dialog: Der Popover holt den Fokus nur, wenn im Inhalt ein autofocus steht (keiner der neun setzt eins), der Drawer gibt ihn beim Schließen nicht zurück. Beides ist an der Bibliothek geschlossen statt an 14 Aufrufstellen; alle neun gemessenen Überlagerungen verhalten sich jetzt gleich. |
| 2.4.4 Linkzweck (im Kontext) | A | teilweise erfüllt | Wertlinks in Tabellen tragen einen Zusatz für Screenreader. Einzelne Stellen sind offen. |
| 2.4.5 Verschiedene Wege | AA | erfüllt | Navigation, Schnellsuche und Verweise aus Listen. |
| 2.4.6 Überschriften und Beschriftungen | AA | teilweise erfüllt | Trägt für die Anwendung; für betreiberseitig gepflegte Inhalte hängt es am Betreiber. |
| 2.4.7 Fokus sichtbar | AA | teilweise erfüllt | Fokusring durchgängig vorhanden, an einzelnen Stellen kontrastarm. |
| 2.5.1 Zeigergesten | A | erfüllt | Kachel ziehen, Unterschrift zeichnen, Spalten umsortieren und Spaltenbreite ziehen haben je einen gleichwertigen zweiten Weg (Zahlenfelder, Tippen, Pfeil-Schaltflächen). |
| 2.5.2 Zeiger-Abbruch | A | teilweise erfüllt | Einzelne Flächen lösen bereits beim Drücken aus. |
| 2.5.3 Beschriftung im Namen | A | teilweise erfüllt | Regel ist dokumentiert und wird geprüft; einzelne Schaltflächen heißen zugänglich anders als sichtbar. |
| 2.5.4 Bewegungsaktivierung | A | erfüllt | Keine bewegungsgesteuerte Funktion. |
Verständlichkeit¶
| Kriterium | Stufe | Bewertung | Anmerkung |
|---|---|---|---|
| 3.1.1 Sprache der Seite | A | erfüllt | <html lang> folgt der Sprachwahl, und die Gastseiten tun es jetzt auch: Registrierung, Passwortstrecke, E-Mail-Bestätigung und Ersteinrichtung samt Passwortregeln. Der Dokumenttitel folgt mit — eine Seite gibt ihn dafür zusätzlich als Übersetzungsschlüssel an. Vor dem Eintreffen des Sprachbündels steht auf einer Gastseite kurz der englische Quelltext; das Bündel wird für öffentliche Seiten nicht blockierend geladen. |
| 3.1.2 Sprache von Teilen | AA | teilweise erfüllt | Rechtstexte werden mit der Sprache ausgezeichnet, in der sie tatsächlich vorliegen. Andere gemischtsprachige Stellen nicht. |
| 3.2.1 Bei Fokus | A | erfüllt | Kein Kontextwechsel allein durch Fokus. |
| 3.2.2 Bei Eingabe | A | erfüllt | Geprüft, ohne Befund. |
| 3.2.3 Konsistente Navigation | AA | erfüllt | Gleiche Navigation an gleicher Stelle. |
| 3.2.4 Konsistente Bezeichnung | AA | teilweise erfüllt | Einzelne gleiche Aktionen heißen unterschiedlich. |
| 3.3.1 Fehlererkennung | A | teilweise erfüllt | Formulare mit dem zentralen Vertrag melden Fehler am Feld und in einer Zusammenfassung; die Gastformulare nicht. |
| 3.3.2 Beschriftungen oder Anweisungen | A | erfüllt | Pflichtfelder tragen aria-required am Bedienelement, gesetzt von SettingField; das Sternchen ist dort Dekoration und für Hilfsmittel ausgeblendet, sonst käme „Stern" zum angesagten „erforderlich" dazu. Wo es sichtbar bleibt, steht die Erklärung über dem Formular. Eine Prüfung im Build meldet ein von Hand geschriebenes Sternchen im Klartext einer Beschriftung. |
| 3.3.3 Fehlerempfehlung | AA | erfüllt | Fehlermeldungen benennen die erwartete Eingabe. |
| 3.3.4 Fehlervermeidung | AA | teilweise erfüllt | Löschvorgänge werden bestätigt; nicht jeder folgenschwere Vorgang ist umkehrbar. |
Robustheit¶
| Kriterium | Stufe | Bewertung | Anmerkung |
|---|---|---|---|
| 4.1.1 Parsing | A | erfüllt | Mit dem Erratum zu WCAG 2.1 (September 2023) gilt das Kriterium als immer erfüllt. |
| 4.1.2 Name, Rolle, Wert | A | erfüllt | 136 Bedienelemente haben in einem gezielten Durchgang einen Namen bekommen, Umschaltknöpfe zusätzlich ihren Zustand. Eine statische Prüfung im Build verhindert Rückfälle; sie erkennt seit AP-7 auch eine Beschriftung, die auf schmalen Viewports verschwindet — das Attribut ist dann da, der Name nicht. Ein Messlauf gegen die laufende Anwendung fand danach noch zwei Stellen, an denen ein aria-label an einem Element ohne Rolle hing und damit gar nicht ankam; sie tragen jetzt role="img". |
| 4.1.3 Statusmeldungen | AA | erfüllt | Die Formulare vor der Anmeldung tragen role="status" bzw. role="alert"; die E-Mail-Bestätigung hat einen Bereich, der von Anfang an im Dokument steht. Im angemeldeten Bereich melden Toasts und die Fehlerzusammenfassung von DynamicForm. |
Klausel 10: Nicht-Web-Dokumente¶
| Anforderung | Bewertung | Anmerkung |
|---|---|---|
| 10.1.1.1 Nicht-Text-Inhalte | erfüllt | Ausgehende E-Mails führen eine Textfassung neben dem HTML — die gepflegte Alternative der Vorlage, sonst eine aus dem HTML abgeleitete. Jedes Bild eines Berichts-PDFs trägt einen Alternativtext: den der Vorlage, sonst den Namen des Elements, sonst einen Gattungsbegriff in der Berichtssprache. Wie gut der Text ist, entscheidet die Vorlage — ein Diagramm braucht seine Kernaussage, ein Barcode seinen Wert; beides weiß nur der Vorlagenautor (Master-Reports). Rein schmückende Bilder ließen sich als /Artifact ganz aus der Vorlesereihenfolge nehmen; JasperReports bietet dafür keinen Weg. |
| 10.1.3.1 Info und Beziehungen | teilweise erfüllt | Berichts-PDFs (Kalibrierscheine, Zertifikate, Etiketten) tragen einen Strukturbaum. XLSX-Exporte zeichnen die Kopfzeile als Tabellenbereich und Wiederholungszeile aus. Offen: der Grid-PDF-Export — TCPDF kann keinen Strukturbaum erzeugen (siehe unten). |
| 10.2.4.2 Dokument mit Titel | erfüllt | Berichts-PDFs tragen den Berichtsnamen, Grid-Exporte den Exportnamen; DisplayDocTitle sorgt dafür, dass der Reader ihn statt des Dateinamens anzeigt. |
| 10.3.1.1 Sprache des Dokuments | erfüllt | Berichts-PDFs übernehmen die Sprache des Auftrags, Grid-PDFs und E-Mails die der Installation. Ohne Auftragssprache wird keine gesetzt statt eine geraten. |
| 10.4.1.2 Name, Rolle, Wert | erfüllt | XLSX-Exporte tragen Dokumenteigenschaften und einen Tabellenbereich mit Kopfzeile, sodass in einer Zelle der Spaltenname angesagt wird. |
Zwei Grenzen, die benannt statt behauptet werden:
- Der Grid-PDF-Export bleibt ohne Struktur-Tags. Er läuft über TCPDF, und die Bibliothek kann keinen Strukturbaum schreiben — die Zeile dafür ist in ihrem Quelltext auskommentiert. Titel und Sprache trägt er, die Kopfzeilen-Zuordnung geht verloren. Wer eine getaggte Tabelle braucht, exportiert nach XLSX oder nimmt einen Berichts-PDF.
- XLSX kennt keine Dokumentsprache. Die Kern-Eigenschaften von OOXML haben kein Feld dafür; das ist eine Grenze des Formats, keine der Umsetzung.
Klausel 12: Dokumentation und Support¶
| Anforderung | Bewertung | Anmerkung |
|---|---|---|
| 12.1.1 Barrierefreiheits- und Kompatibilitätsmerkmale | erfüllt | Beschrieben im Handbuch unter Benutzerprofil → Darstellung und Barrierefreiheit sowie in dieser Tabelle. |
| 12.1.2 Barrierefreie Dokumentation | teilweise erfüllt | Die Dokumentation wird als HTML ausgeliefert (MkDocs Material), nicht als PDF, und ist damit im Browser skalier- und vorlesbar. Eine eigene Prüfung des Doku-Themes gegen WCAG 2.1 AA hat nicht stattgefunden; die Aussage stützt sich auf das Format, nicht auf eine Messung. |
| 12.2.2 Informationen über Barrierefreiheitsmerkmale im Support | teilweise erfüllt | Diese Tabelle und das Handbuch beantworten die Frage; ein eigener Meldeweg zur Barrierefreiheit liegt beim Betreiber (siehe unten). |
| 12.2.3 Wirksame Kommunikation | Betreiber | Der Support gegenüber den Nutzenden liegt beim Betreiber der Installation. |
| 12.2.4 Barrierefreie Dokumentation des Supports | Betreiber | Dasselbe. |
Was der Betreiber selbst verantwortet¶
Diese Tabelle bewertet das Produkt. Eine Aussage für eine konkrete Installation braucht zusätzlich:
- Eine ausgefüllte Erklärung zur Barrierefreiheit mit Kontaktstelle, Rechtsgrundlage, zuständiger Durchsetzungsstelle und Datum. calServer liefert eine Vorlage mit; siehe Rechtliche Dokumente.
- Einen Meldeweg nach § 12b BGG, über den Betroffene Barrieren melden können.
- Für öffentliche Stellen: Erläuterungen in Deutscher Gebärdensprache und in Leichter Sprache nach § 3 Abs. 2 BITV 2.0.
- Eine Bewertung eigener Anpassungen: angepasste Berichtsvorlagen, eigene Übersetzungen, eingebundene Fremdinhalte und angepasste Oberflächen sind von dieser Tabelle nicht gedeckt.
Wie diese Tabelle gepflegt wird¶
Sie wird nach jeder Änderung mit Wirkung auf die Barrierefreiheit fortgeschrieben und mindestens einmal jährlich gegen den Code geprüft. Grundlage sind:
- der interne Auditbericht vom 04.09.2026 (
docs/audit-bitv-2.0-luecken-2026-09.md), - die statische Prüfung
npm run a11y:scan, die bei jedem Pull Request läuft und deren Bestandsobergrenze nur schrumpfen darf, - der nächtliche axe-Lauf gegen WCAG 2.1 AA über die öffentlichen Seiten, das Dashboard, zwei Tabellen, die Administration und einen geöffneten Dialog, in vier Darstellungsmodi (dunkel, hoher Kontrast, 150 % Schrift, 320 px Breite).
Zur Einordnung der Werkzeuge: Eine automatisierte Prüfung findet etwa ein Drittel der tatsächlichen Barrieren. Was hier als „erfüllt" steht, ist an Codestellen belegt, nicht daraus abgeleitet, dass ein Werkzeug geschwiegen hat.