Erklärung zur Barrierefreiheit — Whispet
1. Allgemeine Informationen
CRE8EVE Sp. z o.o. verpflichtet sich, die Barrierefreiheit der mobilen Anwendung Whispet gemäß den Anforderungen des Europäischen Barrierefreiheitsgesetzes (European Accessibility Act, Richtlinie (EU) 2019/882) sowie der Norm EN 301 549, basierend auf den WCAG 2.1-Richtlinien auf Stufe AA, sicherzustellen.
Diese Erklärung bezieht sich auf die Whispet-Anwendung, die auf der iOS-Plattform verfügbar ist.
2. Konformitätsstatus
Die Whispet-Anwendung ist teilweise konform mit WCAG 2.1 auf Stufe AA.
„Teilweise konform" bedeutet, dass einige Inhaltselemente nicht vollständig dem Barrierefreiheitsstandard entsprechen. Detaillierte Informationen zu den implementierten Funktionen und bekannten Einschränkungen findest du in den Abschnitten 3 und 4 dieses Dokuments.
3. Umgesetzte Barrierefreiheitsfunktionen
Die Whispet-Anwendung bietet folgende Barrierefreiheitsfunktionen:
3.1. Unterstützung von Screenreadern
- Alle interaktiven Elemente (Schaltflächen, Karten, Filter, Auswahlfelder, Navigation, Formulare, Datums-/Uhrzeitfelder) verfügen über lokalisierte Barrierefreiheitsbeschriftungen (
.accessibilityLabel), die von VoiceOver lesbar sind - Haustier-Avatare verfügen über lokalisierte alternative Beschreibungen (z. B. „Avatar von Luna" / „Avatar of Luna") in allen unterstützten Sprachen
- Haustierfotos in der Galerie und auf der Zeitachse verfügen über Barrierefreiheitsbeschreibungen für Screenreader
- Schwebende Aktionsschaltflächen (FAB) verfügen über Barrierefreiheitsbeschriftungen (
.accessibilityLabel) mit Funktionsbeschreibung - Listenzeilen mit Wischaktionen (
.swipeActions) enthalten zusätzliche Toolbar-/Kontextmenüsymbole, die das Auslösen der Aktionen (Bearbeiten, Löschen, Archivieren, Teilen) ohne Wischgeste ermöglichen — als barrierefreie Alternative für Screenreader-Benutzende - Medizinische Karten (Impfungen, Medikamente, Nahrung, Allergene, Besuche, Dokumente) verwenden
.accessibilityElement(children: .combine), das den Karteninhalt für Screenreader gruppiert und gleichzeitig die Interaktivität der inneren Elemente (Schaltflächen, Auswahlfelder) beibehält - Auswahlfelder (Toggle) im Auswahlmodus verfügen über lokalisierte Barrierefreiheitsbeschriftungen, die das Haustier identifizieren (z. B. „Luna auswählen")
- Das Kontextmenü (langes Drücken) verfügt über einen Barrierefreiheitshinweis (
.accessibilityHint), der über die Verfügbarkeit von Aktionen informiert, sowie über eine alternative Tap-Aktion, die das Auslösen durch Screenreader ohne lange Drückgeste ermöglicht - Gruppenfotos (Multi-Pet) verfügen über lokalisierte Barrierefreiheitsbeschriftungen, die die Anzahl der Haustiere im Foto angeben
- Synchronisierungsstatussymbole, dekorative Trenner (Divider), Navigationspfeile in den Einstellungen und dekorative Richtungssymbole sind vor Screenreadern verborgen (
.accessibilityHidden(true)) und beseitigen so unnötiges Rauschen in der Navigation - Alle dekorativen Elemente — Gradienteneffekte (Bokeh, Aurora), radiale Überlagerungen — sind in allen Themenvarianten (5 Modi × 13 Paletten) vor Screenreadern verborgen (
.accessibilityHidden(true)) - Schieberegler (Slider) in Filterformularen verfügen über Barrierefreiheitsbeschriftungen, die den gesteuerten Wert beschreiben
- Auf Gesten basierende interaktive Elemente (
.onTapGesture,.gesture) verfügen über lokalisierte Barrierefreiheitsbeschriftungen: Vorschau/Hinzufügen/Entfernen von Fotos in der Galerie und auf der Zeitachse, Link zur Futterwebsite, Vorschau von Dokumentfotos, Aktionschips für Impfungen, Futterbewertung, Auswahlchips für Datum/Uhrzeit/Häufigkeit, Scannen von QR-/Barcodes, Navigation im Dashboard (Haustier-Karussell, Profil, Zeitachse) - Bildschirme neuer Funktionen — Fotoverlauf-Import und Intelligente Haustier-Foto-Erkennung (Smart Detection) — verfügen über lokalisierte Barrierefreiheitsbeschriftungen auf allen interaktiven Elementen (Schalter, Tierartfilter, Importfortschrittsbalken, Aktionsschaltflächen) und gewährleisten so die vollständige Unterstützung durch Screenreader
3.2. Kontraste und Farben
- Zentrales Farbsystem
AppColorsmit Varianten proColorScheme(Hell/Dunkel) und einem High-Contrast-Modus — auf WCAG-konformen Kontrast überprüft - Statusfarben (Gesundheit, Gewicht, Trend, Geschlecht) verfügen über Varianten, die an Hell- und Dunkelmodus angepasst sind (
AppColors.*For(colorScheme)) - Unterstützung des Hell- und Dunkelmodus (Light/Dark Mode) mit 13 Gradientenvarianten
- Modus für hohen Kontrast (High Contrast Mode) — Details in Abschnitt 3.8
- Informationen werden nicht ausschließlich durch Farbe vermittelt — alle Status verfügen über Symbole und Textbeschriftungen (z. B. Gewichtstrendpfeile, Medikamenten-/Impfsymbole, Geschlechtssymbole)
- Ladeplatzhalter (Skeleton Loader) verwenden Themenfarben (
surfaceContainer) anstelle fest codierter Werte und gewährleisten so sowohl im Hell- als auch im Dunkelmodus einen angemessenen Kontrast - Medizinische Statusfarben (Medikamente, Impfungen, Entwurmung, Besuche) verfügen über dedizierte Text-/Symbolfarben (
foreground), die Kontrast auf farbigen Symbolhintergründen in jedem Helligkeitsmodus garantieren - Wischaktionsschaltflächen wählen automatisch die Text-/Symbolfarbe basierend auf der Hintergrundluminanz aus (
contrastText), und die Archivierungsaktion verwendet Themenfarben (outline) anstelle eines festen Graus - Symbole für leere Zustände (empty state) und Fehler verwenden Themenfarben (
onSurfaceVariant) anstelle eines festen Graus und gewährleisten so einen angemessenen Kontrast im Dunkelmodus - Foto-Platzhalterhintergründe in der Galerie verwenden Themenfarben (
surfaceContainerHighest) anstelle fest codierter Werte
3.3. Größen interaktiver Elemente
- Alle Schaltflächen haben eine minimale Berührungsfläche von 44 × 44 pt (gemäß WCAG 2.5.8 Target Size und Apple Human Interface Guidelines)
- Formularfelder haben eine Höhe, die ein bequemes Antippen gewährleistet (≥ 48 pt)
- Unterstützung der Systemeinstellungen für Textgröße (Dynamic Type) — keine Obergrenzen
- Zusätzliche Schriftskalierungsoptionen in den App-Einstellungen: 4 Stufen (0,85× / 1,0× / 1,15× / 1,3×), implementiert über
AppTypography
3.4. Struktur und Navigation
- Die Hauptnavigation (TabView, NavigationStack mit einem
enum Routemit 58 typisierten Routen) verwendet native SwiftUI-Komponenten mit integrierter Barrierefreiheit - Barrierefreiheitsbeschriftungen (
.accessibilityLabel) auf Symbolschaltflächen in der Toolbar (zurück, schließen, Menü, löschen usw.), in Bottom-Sheet-Headern, in Filterpanels, in Kontextmenüs (Menu) sowie auf Hilfssymbolen von Textfeldern - Unterstützung systemnativer iOS-Gesten (Swipe-Back, Edge-Gesten, Zwei-Finger-Zurück bei VoiceOver)
- Formularfelder verwenden
TextFieldmit über dem Feld sichtbaren nativen Beschriftungen und einem Platzhalter - Die Tab-Reihenfolge zwischen den Formularfeldern wird durch den Standard-Fokusmechanismus von SwiftUI mit nativer Unterstützung für VoiceOver und Hardwaretastaturen gewährleistet
3.5. Animationen und Bewegung
- Hauptanimationen (pulsierendes Logo, Bokeh-Effekt, Aurora, gestaffelter Eintritt, schwebende Illustration) respektieren die Systemeinstellung Reduce Motion (
@Environment(\.accessibilityReduceMotion)) — sie werden deaktiviert oder sofort beendet (108reduceMotion-Prüfungen im App-Code) - Listenelement-Animationen (staggered list) respektieren die Reduce Motion-Einstellung — die Elemente erscheinen sofort ohne Animation
3.6. Mehrsprachigkeit der Barrierefreiheitsbeschriftungen
- Barrierefreiheitsbeschriftungen (
.accessibilityLabel) sind in 6 Sprachen lokalisiert: Polnisch, Englisch, Deutsch, Spanisch, Französisch, Italienisch (308 Beschriftungen im App-Code) - Die Barrierefreiheitsbeschriftungen verwenden das Lokalisierungssystem der App (String Catalog
.xcstrings) und ändern sich mit der Oberflächensprache
3.7. Alternative Datenformate
- Das Gewichtsdiagramm verfügt über eine ausklappbare Datentabelle (data table) unterhalb des Diagramms, die alle Gewichtsdatensätze in Textform (Datum und Wert in kg) darstellt — gemäß WCAG 1.1.1 (Nicht-Text-Inhalte)
- Diagramm-Bereichschips verfügen über semantische Beschriftungen mit Informationen über den ausgewählten Bereich
3.8. Modus für hohen Kontrast (High Contrast Mode)
Die App bietet einen dedizierten Modus für hohen Kontrast, der für sehbehinderte Personen konzipiert ist und die Konformität mit dem WCAG 2.1-Kriterium 1.4.6 (Kontrast erweitert, Stufe AAA) sowie 1.4.11 (Kontrast nicht-textlicher Elemente) unterstützt.
Aktivierung: Einstellungen → Darstellung → Schalter „Hoher Kontrast". Die Einstellung wird zwischen Sitzungen gespeichert.
Kompatibilität: Der Modus für hohen Kontrast funktioniert mit jedem Themenmodus (hell, dunkel, System) und kann mit dem OLED-Modus kombiniert werden.
Durch den Modus für hohen Kontrast eingeführte Änderungen:
- Bildschirmhintergründe — einheitlich: reines Weiß (Hellmodus) oder reines Schwarz (Dunkelmodus) anstelle eines Farbgradienten
- Dekorative Effekte — deaktiviert: keine Bokeh- und Aurora-Effekte, die die Lesbarkeit für sehbehinderte Personen erschweren können
- Text — maximaler Kontrast: reines Schwarz (#000000) auf weißem Hintergrund oder reines Weiß (#FFFFFF) auf schwarzem Hintergrund
- Sekundärer Text — dunkles Grau (#333333) auf hellem Hintergrund oder helles Grau (#CCCCCC) auf dunklem Hintergrund und gewährleistet so ein Kontrastverhältnis von über 7:1
- Ränder und Umrandungen — markant, stärker als im Standardmodus (Grau #555555 auf hellem Hintergrund, #AAAAAA auf dunklem Hintergrund) — konform mit WCAG 1.4.11 (Nicht-Text-Kontrast min. 3:1)
- Glaspaneele (Glasmorphismus) — fast opak (95 % Deckkraft) anstelle halbtransparent, gewährleistet die Lesbarkeit des Inhalts ohne Störungen durch den Hintergrund
- Formularfelder — opaker weißer/dunkler Hintergrund mit markantem schwarzem/hellem Rahmen anstelle von halbtransparenten Feldern im Frosted-Glass-Stil
- Modale und Dialoge — opaker Hintergrund, reiner schwarzer/weißer Text, markante Umrandungen
- Chips und Tags — opake Hintergrundfarben anstelle von Gradient-Lerps, markante Ränder
- Gradient-Auswahlfelder — deaktiviert (ausgegraut mit Deckkraft 0,35), wenn der Modus für hohen Kontrast aktiv ist, mit einem Texthinweis zum Override
Lokalisierung: Die Beschriftungen des Modus für hohen Kontrast sind in allen 6 unterstützten Sprachen verfügbar (Polnisch, Englisch, Deutsch, Spanisch, Französisch, Italienisch).
4. Bekannte Einschränkungen
Trotz unserer Bemühungen sind die folgenden Elemente möglicherweise nicht vollständig barrierefrei:
4.1. Navigation mit externer Tastatur
- Formulare stützen sich überwiegend auf die standardmäßige Fokusreihenfolge von SwiftUI — eine explizite Fokusverwaltung (
@FocusState) wird derzeit nur in ausgewählten Textfeldern verwendet - Die Anwendung definiert keine eigenen Tastenkürzel (
.keyboardShortcut); native iOS-Gesten und die VoiceOver-Rotor-Navigation (Ein-/Zwei-Finger) bleiben verfügbar
4.2. Fotoraster
- Das Fotoraster in der Galerie (Masonry-Layout) kann aufgrund seines unregelmäßigen Layouts schwierig mit einem Screenreader zu navigieren sein
5. Maßnahmenplan
Wir arbeiten systematisch an der Verbesserung der Barrierefreiheit der Anwendung. Geplante Maßnahmen umfassen:
- Einführung einer expliziten Fokusverwaltung (
@FocusStatemit typisierten Enums) in den Hauptformularen (Haustierdaten, Klinik, Allergen, Tierarztbesuch, Futter) - Hinzufügen lokalisierter benutzerdefinierter Aktionen (
.accessibilityAction) zu Listenzeilen mit Wischaktionen, sodass Bearbeiten/Löschen/Archivieren ohne Wischgeste möglich wird - Verbesserung der Barrierefreiheit des Fotorasters in der Galerie (Abschnitt 4.2)
- Regelmäßige Tests mit dem VoiceOver-Screenreader und Tools zum Barrierefreiheits-Audit
- Überwachung der Konformität mit Aktualisierungen des WCAG-Standards
6. Feedback und Kontakt
Wenn du auf ein Problem mit der Barrierefreiheit in der Whispet-Anwendung stößt, kontaktiere uns bitte:
- E-Mail: hello@whispet.app
- Adresse: CRE8EVE Sp. z o.o., Tulipanowa 4, 72-003 Dobra, Polen
Wir bemühen uns, auf Meldungen zur Barrierefreiheit innerhalb von 14 Werktagen zu reagieren.
7. Durchsetzungsverfahren
Im Falle einer unbefriedigenden Antwort auf eine Meldung zur Barrierefreiheit hat die nutzende Person das Recht:
- Eine Beschwerde beim Präsidenten des Amtes für Wettbewerb und Verbraucherschutz (UOKiK) einzureichen — der zuständigen Behörde für die Barrierefreiheit von Produkten und Dienstleistungen im privaten Sektor gemäß Richtlinie (EU) 2019/882: https://uokik.gov.pl
- Sich an den Bürgerrechtsbeauftragten (Ombudsmann) zu wenden: https://bip.brpo.gov.pl
- Sich an den städtischen oder Bezirks-Verbraucherbeauftragten zu wenden
8. Technische Informationen
- Plattform: iOS 18+
- Framework: SwiftUI (native iOS-Barrierefreiheits-APIs —
.accessibilityLabel,.accessibilityHint,.accessibilityElement,.accessibilityAction,.accessibilityHidden,@Environment(\.accessibilityReduceMotion), Dynamic Type,@FocusState) - Zielstandard: WCAG 2.1 Stufe AA
- Bewertungsmethode: Selbstbewertung auf Grundlage der WCAG 2.1-Richtlinien, Quellcode-Audit hinsichtlich Barrierefreiheitsbeschriftungen, Kontrasten und Größen interaktiver Elemente
- Datum des letzten Audits: 3. Juni 2026
- Oberflächensprachen: Polnisch, Englisch, Deutsch, Spanisch, Französisch, Italienisch (6 Sprachen)
9. Rechtsgrundlagen
- Richtlinie (EU) 2019/882 — Europäisches Barrierefreiheitsgesetz (European Accessibility Act)
- Polnisches Gesetz vom 26. Mai 2023 über die Sicherstellung der Erfüllung der Barrierefreiheitsanforderungen bestimmter Produkte und Dienstleistungen durch Wirtschaftsteilnehmer (Dz.U. 2023 Pos. 1080) — Umsetzung der Richtlinie 2019/882 in polnisches Recht
- Norm EN 301 549 — Anforderungen an die Barrierefreiheit von IKT-Produkten und -Dienstleistungen
- WCAG 2.1 (Web Content Accessibility Guidelines) Stufe AA
Dokument aktualisiert für die Whispet-App v1.6 — 3. Juni 2026
Maßgebliche Sprachversion
Diese deutsche Übersetzung dient ausschließlich zu Informationszwecken. Bei Abweichungen oder Auslegungsfragen ist die polnische Sprachfassung des Dokuments rechtlich verbindlich. Die englische Fassung ist eine offizielle Referenzübersetzung. Im Falle eines Widerspruchs zwischen den Sprachversionen gilt folgende Rangfolge: Polnisch (verbindlich) → Englisch (Referenz) → Deutsch (informativ).