Zum Inhalt

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.