All checks were successful
Container-Image bauen und veröffentlichen / build-and-push (push) Successful in 1m33s
Rechtsrahmen: § 13 Abs. 3 LBGG SH i. V. m. §§ 3 und 4 BITV 2.0. Eine Erklaerung "nicht barrierefrei" ersetzt die Herstellungspflicht nicht, sie dokumentiert den Stand nur voruebergehend. Farben, alle Werte gegen die WCAG-Formel nachgerechnet: - Sekundaertext 4.40:1 auf muted-Flaechen -> 4.55:1 - Rahmen von Eingabefeldern 1.24:1 -> 3:1 (WCAG 1.4.11); dekorative Trenner bleiben unveraendert - Badge-Farben scheiterten auf der eigenen 10-Prozent-Flaeche (brand 4.20, success 4.18, destructive 3.88) -> jeweils ueber 4.5 - Warnfarbe im Admin 3.11:1 -> amber-700 mit 4.90:1 Fokus war faktisch unsichtbar: Der Ring wurde durchgaengig mit halber Deckkraft gezeichnet (ring-ring/50), effektiv rund 1.5:1. Jetzt volle Deckkraft in Markenfarbe, 12 Dateien betroffen. Weiter: Sprungmarke zum Inhalt auf allen Seiten, Suchfelder beschriftet, Druck-Schaltflaechen hatten als reine Icon-Buttons gar keinen zugaenglichen Namen, Liste als echte Liste ausgezeichnet, doppelter Link je Zeile entfernt, Trefferzahl als Live-Region. Responsiv: Aussenabstaende und Kopfzeilen ab 320 Pixel, Listenzeilen brechen um. Neu nach § 4 BITV 2.0: Seiten fuer Leichte Sprache und Gebaerdensprache, im Admin pflegbar. Leer gelassen und damit noch nicht online - die Inhalte kommen vom Amt. In der Erklaerung als bekannte Luecke benannt. Geprueft mit axe-core (WCAG 2.1 A und AA) ueber alle oeffentlichen Seiten und den Adminbereich, hell und dunkel, dazu Tastaturbedienung, 200 Prozent Vergroesserung und 320 Pixel Breite: keine Verstoesse, kein waagerechter Ueberlauf. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
/**
|
||
* Die eigenständigen Seiten des Portals.
|
||
*
|
||
* Drei rechtliche Pflichtseiten sowie zwei Seiten, die § 4 BITV 2.0 von
|
||
* öffentlichen Stellen verlangt: Erläuterungen in Leichter Sprache und in
|
||
* Deutscher Gebärdensprache.
|
||
*/
|
||
export const SITE_PAGES = [
|
||
"imprint",
|
||
"privacy",
|
||
"accessibility",
|
||
"easyLanguage",
|
||
"signLanguage",
|
||
] as const
|
||
|
||
/** Bezeichner einer Seite. */
|
||
export type SitePageKey = (typeof SITE_PAGES)[number]
|
||
|
||
/** Überschrift und URL je Seite – für Fußzeile, Admin und die Seiten selbst. */
|
||
export const SITE_PAGE_META: Record<
|
||
SitePageKey,
|
||
{ title: string; short: string; path: string; hint: string }
|
||
> = {
|
||
imprint: {
|
||
title: "Impressum",
|
||
short: "Impressum",
|
||
path: "/impressum",
|
||
hint: "Anbieterkennzeichnung nach § 5 DDG",
|
||
},
|
||
privacy: {
|
||
title: "Datenschutzerklärung",
|
||
short: "Datenschutz",
|
||
path: "/datenschutz",
|
||
hint: "Datenverarbeitung durch dieses Portal selbst",
|
||
},
|
||
accessibility: {
|
||
title: "Erklärung zur Barrierefreiheit",
|
||
short: "Barrierefreiheit",
|
||
path: "/barrierefreiheit",
|
||
hint: "Pflichtangabe öffentlicher Stellen nach § 7 BITV 2.0, jährlich zu überprüfen",
|
||
},
|
||
easyLanguage: {
|
||
title: "Leichte Sprache",
|
||
short: "Leichte Sprache",
|
||
path: "/leichte-sprache",
|
||
hint: "Pflichtangabe nach § 4 BITV 2.0: wesentliche Inhalte, Navigation und Barrierefreiheitserklärung in Leichter Sprache",
|
||
},
|
||
signLanguage: {
|
||
title: "Gebärdensprache",
|
||
short: "Gebärdensprache",
|
||
path: "/gebaerdensprache",
|
||
hint: "Pflichtangabe nach § 4 BITV 2.0: dieselben Inhalte in Deutscher Gebärdensprache, üblicherweise als Video",
|
||
},
|
||
}
|
||
|
||
/** Inhalte der Seiten, wie sie API und Admin austauschen. */
|
||
export type SitePagesContent = Record<SitePageKey, string>
|
||
|
||
/** Leere Ausgangsinhalte – solange im Admin nichts gepflegt wurde. */
|
||
export const EMPTY_SITE_PAGES: SitePagesContent = {
|
||
imprint: "",
|
||
privacy: "",
|
||
accessibility: "",
|
||
easyLanguage: "",
|
||
signLanguage: "",
|
||
}
|