Dichiarazione di accessibilità — Whispet
Versione: 2.1
Data di entrata in vigore: 1° marzo 2026
Ultimo aggiornamento: 3 giugno 2026
1. Informazioni generali
CRE8EVE Sp. z o.o. si impegna a garantire l'accessibilità dell'applicazione mobile Whispet in conformità ai requisiti della Legge europea sull'accessibilità (European Accessibility Act, Direttiva (UE) 2019/882) e della norma EN 301 549, basata sulle linee guida WCAG 2.1 di livello AA.
La presente dichiarazione si applica all'applicazione Whispet disponibile sulla piattaforma iOS.
2. Stato di conformità
L'applicazione Whispet è parzialmente conforme alla norma WCAG 2.1 di livello AA.
«Parzialmente conforme» significa che alcuni elementi di contenuto non sono pienamente conformi allo standard di accessibilità. Informazioni dettagliate sulle funzionalità implementate e sulle limitazioni note sono disponibili nelle sezioni 3 e 4 del presente documento.
3. Funzionalità di accessibilità implementate
L'applicazione Whispet offre le seguenti funzionalità di accessibilità:
3.1. Supporto per screen reader
- Tutti gli elementi interattivi (pulsanti, schede, filtri, selettori, navigazione, moduli, campi data/ora) dispongono di etichette di accessibilità localizzate (
.accessibilityLabel) leggibili da VoiceOver - Gli avatar degli animali dispongono di descrizioni alternative localizzate (ad es. «Avatar di Luna» / «Avatar of Luna») in tutte le lingue supportate
- Le foto degli animali nella galleria e nella timeline dispongono di descrizioni di accessibilità per gli screen reader
- I pulsanti d'azione fluttuanti (FAB) dispongono di etichette di accessibilità (
.accessibilityLabel) con descrizione della funzione - Le righe di elenco con azioni di scorrimento (
.swipeActions) includono icone aggiuntive nella barra degli strumenti / menu contestuale che consentono di invocare le azioni (modifica, eliminazione, archiviazione, condivisione) senza il gesto di scorrimento — offrendo un'alternativa accessibile agli utenti di screen reader - Le schede mediche (vaccinazioni, farmaci, alimentazione, allergeni, visite, documenti) utilizzano
.accessibilityElement(children: .combine), che raggruppa il contenuto della scheda per gli screen reader mantenendo al contempo l'interattività degli elementi interni (pulsanti, caselle di selezione) - Le caselle di selezione (Toggle) in modalità selezione dispongono di etichette di accessibilità localizzate che identificano l'animale (ad es. «Seleziona Luna»)
- Il menu contestuale (pressione prolungata) dispone di un suggerimento di accessibilità (
.accessibilityHint) che informa sulla disponibilità delle azioni nonché di un'azione tap alternativa che consente l'attivazione tramite screen reader senza il gesto di pressione prolungata - Le foto di gruppo (multi-pet) dispongono di etichette di accessibilità localizzate che indicano il numero di animali nella foto
- Le icone di stato della sincronizzazione, i separatori decorativi (Divider), le frecce di navigazione nelle impostazioni e le icone direzionali decorative sono nascoste agli screen reader (
.accessibilityHidden(true)), eliminando rumore inutile nella navigazione - Tutti gli elementi decorativi — effetti gradiente (bokeh, aurora), sovrapposizioni radiali — sono nascosti agli screen reader (
.accessibilityHidden(true)) in tutte le varianti dei temi (5 modalità × 13 palette) - I cursori (Slider) nei moduli dei filtri dispongono di etichette di accessibilità che descrivono il valore controllato
- Gli elementi interattivi basati su gesti (
.onTapGesture,.gesture) dispongono di etichette di accessibilità localizzate: anteprima/aggiunta/rimozione foto nella galleria e nella timeline, link al sito web dell'alimento, anteprima delle foto dei documenti, chip d'azione per le vaccinazioni, valutazione dell'alimento, chip di selezione data/ora/frequenza, scansione di codici QR/codici a barre, navigazione nella dashboard (carosello degli animali, profilo, timeline) - Le schermate delle nuove funzionalità — Importazione della cronologia foto e Rilevamento intelligente delle foto degli animali (Smart Detection) — dispongono di etichette di accessibilità localizzate su tutti gli elementi interattivi (interruttori, filtri per tipo di animale, barra di avanzamento dell'importazione, pulsanti d'azione), garantendo il pieno supporto da parte degli screen reader
3.2. Contrasti e colori
- Sistema centrale di colori
AppColorscon varianti perColorScheme(chiaro/scuro) e modalità High Contrast — verificato per la conformità del contrasto alle WCAG - I colori di stato (salute, peso, tendenza, sesso) dispongono di varianti adattate alla modalità chiara e scura (
AppColors.*For(colorScheme)) - Supporto per la modalità chiara e scura (Light/Dark Mode) con 13 varianti di gradienti
- Modalità ad alto contrasto (High Contrast Mode) — dettagli nella sezione 3.8
- Le informazioni non vengono trasmesse esclusivamente tramite il colore — tutti gli stati dispongono di icone ed etichette testuali (ad es. frecce di tendenza del peso, icone di farmaci/vaccinazioni, simboli del sesso)
- Gli elementi di caricamento (skeleton loaders) utilizzano i colori del tema (
surfaceContainer) anziché valori hardcoded, garantendo un contrasto adeguato sia in modalità chiara che scura - I colori di stato medico (farmaci, vaccinazioni, sverminazione, visite) dispongono di colori dedicati per testo/icona (
foreground) che garantiscono il contrasto su sfondi colorati delle icone in ogni modalità di luminosità - I pulsanti delle azioni di scorrimento (swipe actions) selezionano automaticamente il colore del testo/icona in base alla luminanza dello sfondo (
contrastText), e l'azione di archiviazione utilizza i colori del tema (outline) anziché un grigio fisso - Le icone degli stati vuoti (empty state) e degli errori utilizzano i colori del tema (
onSurfaceVariant) anziché un grigio fisso, garantendo un contrasto adeguato in modalità scura - Gli sfondi dei segnaposto delle foto nella galleria utilizzano i colori del tema (
surfaceContainerHighest) anziché valori hardcoded
3.3. Dimensioni degli elementi interattivi
- Tutti i pulsanti hanno una dimensione minima dell'area tattile di 44 × 44 pt (in conformità a WCAG 2.5.8 Target Size e alle Apple Human Interface Guidelines)
- I campi dei moduli hanno un'altezza che garantisce un tocco confortevole (≥ 48 pt)
- Supporto per le impostazioni di sistema della dimensione del testo (Dynamic Type) — nessun limite superiore
- Ulteriori opzioni di scaling dei caratteri nelle impostazioni dell'applicazione: 4 livelli (0,85× / 1,0× / 1,15× / 1,3×) implementati tramite
AppTypography
3.4. Struttura e navigazione
- La navigazione principale (TabView, NavigationStack con un
enum Routedi 58 percorsi tipizzati) utilizza componenti nativi SwiftUI con accessibilità integrata - Etichette di accessibilità (
.accessibilityLabel) sui pulsanti icona nella barra degli strumenti (indietro, chiudi, menu, cancella, ecc.), nelle intestazioni dei bottom sheet, nei pannelli dei filtri, nei menu contestuali (Menu) nonché sulle icone ausiliarie dei campi di testo - Supporto dei gesti di sistema nativi iOS (swipe-back, edge gestures, ritorno con due dita su VoiceOver)
- I campi dei moduli utilizzano
TextFieldcon etichette native visibili sopra il campo e un segnaposto - L'ordine di tabulazione tra i campi dei moduli è gestito dal meccanismo di focus predefinito di SwiftUI con supporto nativo per VoiceOver e tastiere hardware
3.5. Animazioni e movimento
- Le animazioni principali (logo pulsante, effetto bokeh, aurora, ingresso scaglionato, illustrazione fluttuante) rispettano l'impostazione di sistema Reduce Motion (
@Environment(\.accessibilityReduceMotion)) — vengono disattivate o terminate immediatamente (108 controlli direduceMotionnel codice dell'applicazione) - Le animazioni degli elementi della lista (staggered list) rispettano l'impostazione Reduce Motion — gli elementi appaiono immediatamente senza animazione
3.6. Etichette di accessibilità multilingue
- Le etichette di accessibilità (
.accessibilityLabel) sono localizzate in 6 lingue: polacco, inglese, tedesco, spagnolo, francese, italiano (308 etichette nel codice dell'applicazione) - Le etichette di accessibilità utilizzano il sistema di localizzazione dell'applicazione (String Catalog
.xcstrings) e cambiano con la lingua dell'interfaccia
3.7. Formati di dati alternativi
- Il grafico del peso dispone di una tabella di dati (data table) espandibile sotto il grafico, che presenta tutti i record di peso in forma testuale (data e valore in kg) — in conformità a WCAG 1.1.1 (Contenuto non testuale)
- I chip dell'intervallo del grafico dispongono di etichette semantiche con informazioni sull'intervallo selezionato
3.8. Modalità ad alto contrasto (High Contrast Mode)
L'applicazione offre una modalità ad alto contrasto dedicata progettata per le persone ipovedenti, che supporta la conformità al criterio WCAG 2.1 1.4.6 (Contrasto esteso, livello AAA) e 1.4.11 (Contrasto degli elementi non testuali).
Attivazione: Impostazioni → Aspetto → interruttore «Alto contrasto». L'impostazione viene memorizzata tra le sessioni.
Compatibilità: La modalità ad alto contrasto funziona con qualsiasi modalità di tema (chiaro, scuro, sistema) e può essere combinata con la modalità OLED.
Modifiche introdotte dalla modalità ad alto contrasto:
- Sfondi degli schermi — uniformi: bianco puro (modalità chiara) o nero puro (modalità scura) anziché gradiente di colori
- Effetti decorativi — disattivati: nessun effetto bokeh e aurora, che possono ostacolare la lettura per le persone ipovedenti
- Testo — contrasto massimo: nero puro (#000000) su sfondo bianco o bianco puro (#FFFFFF) su sfondo nero
- Testo secondario — grigio scuro (#333333) su sfondo chiaro o grigio chiaro (#CCCCCC) su sfondo scuro, garantendo un rapporto di contrasto superiore a 7:1
- Bordi e contorni — marcati, più forti rispetto alla modalità standard (grigio #555555 su sfondo chiaro, #AAAAAA su sfondo scuro) — conforme a WCAG 1.4.11 (contrasto non testuale min. 3:1)
- Pannelli glass (glassmorphism) — quasi opachi (95 % di opacità) anziché semitrasparenti, garantendo la leggibilità del contenuto senza interferenze con lo sfondo
- Campi dei moduli — sfondo opaco bianco/scuro con un bordo nero/chiaro marcato anziché campi semitrasparenti tipo frosted glass
- Modali e finestre di dialogo — sfondo opaco, testo nero/bianco puro, contorni marcati
- Chip e tag — colori di sfondo opachi anziché lerp di gradiente, bordi marcati
- Selettori di gradienti — disattivati (in grigio con opacità 0,35) quando la modalità ad alto contrasto è attiva, con testo esplicativo sulla sovrascrittura
Localizzazione: Le etichette della modalità ad alto contrasto sono disponibili in tutte le 6 lingue supportate (polacco, inglese, tedesco, spagnolo, francese, italiano).
4. Limitazioni note
Nonostante i nostri sforzi, i seguenti elementi potrebbero non essere pienamente accessibili:
4.1. Navigazione con tastiera esterna
- I moduli si basano principalmente sull'ordine di focus predefinito di SwiftUI — la gestione esplicita del focus (
@FocusState) è attualmente utilizzata solo in campi di testo selezionati - L'applicazione non definisce scorciatoie da tastiera personalizzate (
.keyboardShortcut); rimangono disponibili i gesti di sistema nativi iOS e la navigazione VoiceOver (rotore, uno e due dita)
4.2. Griglia di foto
- La griglia di foto nella galleria (masonry layout) può essere difficile da navigare con uno screen reader a causa della sua disposizione irregolare
5. Piano correttivo
Lavoriamo sistematicamente al miglioramento dell'accessibilità dell'applicazione. Le azioni previste includono:
- Introduzione di una gestione esplicita del focus (
@FocusStatecon enum tipizzati) nei moduli principali (dati dell'animale, clinica, allergene, visita veterinaria, alimento) - Aggiunta di azioni personalizzate localizzate (
.accessibilityAction) alle righe di elenco con azioni di scorrimento, consentendo modifica/eliminazione/archiviazione senza il gesto di scorrimento - Miglioramento dell'accessibilità della griglia di foto nella galleria (sezione 4.2)
- Test regolari con lo screen reader VoiceOver e strumenti di audit dell'accessibilità
- Monitoraggio della conformità con gli aggiornamenti dello standard WCAG
6. Feedback e contatti
Se riscontri un problema di accessibilità nell'applicazione Whispet, contattaci:
- E-mail: hello@whispet.app
- Indirizzo: CRE8EVE Sp. z o.o., Tulipanowa 4, 72-003 Dobra, Polonia
Ci impegniamo a rispondere alle segnalazioni di accessibilità entro 14 giorni lavorativi.
7. Procedura di esecuzione
In caso di risposta insoddisfacente a una segnalazione di accessibilità, l'Utente ha il diritto di:
- Presentare un reclamo al Presidente dell'Ufficio per la concorrenza e la protezione dei consumatori (UOKiK) — autorità competente in materia di accessibilità di prodotti e servizi nel settore privato ai sensi della Direttiva (UE) 2019/882: https://uokik.gov.pl
- Contattare il Difensore civico per i diritti umani (Ombudsman): https://bip.brpo.gov.pl
- Contattare il Difensore civico dei consumatori municipale o distrettuale
8. Informazioni tecniche
- Piattaforma: iOS 18+
- Framework: SwiftUI (API native di accessibilità iOS —
.accessibilityLabel,.accessibilityHint,.accessibilityElement,.accessibilityAction,.accessibilityHidden,@Environment(\.accessibilityReduceMotion), Dynamic Type,@FocusState) - Standard di riferimento: WCAG 2.1 livello AA
- Metodo di valutazione: Autovalutazione sulla base delle linee guida WCAG 2.1, audit del codice sorgente in relazione alle etichette di accessibilità, ai contrasti e alle dimensioni degli elementi interattivi
- Data dell'ultimo audit: 3 giugno 2026
- Lingue dell'interfaccia: polacco, inglese, tedesco, spagnolo, francese, italiano (6 lingue)
9. Basi giuridiche
- Direttiva (UE) 2019/882 — Legge europea sull'accessibilità (European Accessibility Act)
- Legge polacca del 26 maggio 2023 sulla garanzia del rispetto dei requisiti di accessibilità di determinati prodotti e servizi da parte degli operatori economici (Dz.U. 2023 pos. 1080) — recepimento della Direttiva 2019/882 nel diritto polacco
- Norma EN 301 549 — Requisiti di accessibilità di prodotti e servizi ICT
- WCAG 2.1 (Web Content Accessibility Guidelines) livello AA
Documento aggiornato per l'app Whispet v1.6 — 3 giugno 2026
Versione linguistica vincolante
La presente traduzione in italiano è fornita esclusivamente a scopo informativo. In caso di discrepanze o questioni interpretative, la versione polacca del documento è quella giuridicamente vincolante. La versione inglese è una traduzione ufficiale di riferimento. In caso di contraddizione tra le versioni linguistiche, si applica il seguente ordine di priorità: polacco (vincolante) → inglese (riferimento) → italiano (informativo).