Declaración de accesibilidad — Whispet
Versión: 2.1
Fecha de entrada en vigor: 1 de marzo de 2026
Última actualización: 3 de junio de 2026
1. Información general
CRE8EVE Sp. z o.o. se compromete a garantizar la accesibilidad de la aplicación móvil Whispet de conformidad con los requisitos de la Ley Europea de Accesibilidad (European Accessibility Act, Directiva (UE) 2019/882) y de la norma EN 301 549, basada en las directrices WCAG 2.1 de nivel AA.
La presente declaración se aplica a la aplicación Whispet disponible en la plataforma iOS.
2. Estado de conformidad
La aplicación Whispet es parcialmente conforme con la norma WCAG 2.1 de nivel AA.
«Parcialmente conforme» significa que algunos elementos de contenido no son totalmente conformes con la norma de accesibilidad. Encontrarás información detallada sobre las funciones implementadas y las limitaciones conocidas en las secciones 3 y 4 del presente documento.
3. Funciones de accesibilidad implementadas
La aplicación Whispet ofrece las siguientes funciones de accesibilidad:
3.1. Compatibilidad con lectores de pantalla
- Todos los elementos interactivos (botones, tarjetas, filtros, selectores, navegación, formularios, campos de fecha/hora) cuentan con etiquetas de accesibilidad localizadas (
.accessibilityLabel) legibles por VoiceOver - Los avatares de las mascotas cuentan con descripciones alternativas localizadas (por ejemplo, «Avatar de Luna» / «Avatar of Luna») en todos los idiomas admitidos
- Las fotos de mascotas en la galería y la línea temporal cuentan con descripciones de accesibilidad para lectores de pantalla
- Los botones de acción flotantes (FAB) cuentan con etiquetas de accesibilidad (
.accessibilityLabel) con descripción de su función - Las filas de listas con acciones de deslizamiento (
.swipeActions) incluyen iconos adicionales de barra de herramientas / menú contextual que permiten invocar las acciones (editar, eliminar, archivar, compartir) sin el gesto de deslizamiento — proporcionando una alternativa accesible para los usuarios de lectores de pantalla - Las tarjetas médicas (vacunaciones, medicamentos, alimentación, alérgenos, visitas, documentos) utilizan
.accessibilityElement(children: .combine), que agrupa el contenido de la tarjeta para los lectores de pantalla manteniendo al mismo tiempo la interactividad de los elementos internos (botones, casillas de selección) - Las casillas de selección (Toggle) en modo selección cuentan con etiquetas de accesibilidad localizadas que identifican a la mascota (por ejemplo, «Seleccionar Luna»)
- El menú contextual (pulsación larga) cuenta con una pista de accesibilidad (
.accessibilityHint) que informa de la disponibilidad de acciones, así como con una acción tap alternativa que permite la activación por lector de pantalla sin el gesto de pulsación larga - Las fotos de grupo (multi-pet) cuentan con etiquetas de accesibilidad localizadas que indican el número de mascotas en la foto
- Los iconos de estado de sincronización, los separadores decorativos (Divider), las flechas de navegación en los ajustes y los iconos direccionales decorativos están ocultos para los lectores de pantalla (
.accessibilityHidden(true)), eliminando ruido innecesario en la navegación - Todos los elementos decorativos — efectos de degradado (bokeh, aurora), superposiciones radiales — están ocultos para los lectores de pantalla (
.accessibilityHidden(true)) en todas las variantes de tema (5 modos × 13 paletas) - Los deslizadores (Slider) en los formularios de filtros cuentan con etiquetas de accesibilidad que describen el valor controlado
- Los elementos interactivos basados en gestos (
.onTapGesture,.gesture) cuentan con etiquetas de accesibilidad localizadas: vista previa/adición/eliminación de fotos en la galería y la línea temporal, enlace al sitio web del alimento, vista previa de fotos de documentos, chips de acción de vacunación, valoración del alimento, chips de selección de fecha/hora/frecuencia, escaneo de códigos QR/de barras, navegación en el panel de control (carrusel de mascotas, perfil, línea temporal) - Las pantallas de las nuevas funciones — Importación del historial de fotos y Detección inteligente de fotos de mascotas (Smart Detection) — cuentan con etiquetas de accesibilidad localizadas en todos los elementos interactivos (interruptores, filtros por tipo de animal, barra de progreso de importación, botones de acción), garantizando un soporte completo por parte de los lectores de pantalla
3.2. Contrastes y colores
- Sistema central de colores
AppColorscon variantes porColorScheme(claro/oscuro) y modo High Contrast — verificado en cuanto al contraste de conformidad con WCAG - Los colores de estado (salud, peso, tendencia, sexo) cuentan con variantes adaptadas al modo claro y oscuro (
AppColors.*For(colorScheme)) - Compatibilidad con modo claro y oscuro (Light/Dark Mode) con 13 variantes de degradados
- Modo de alto contraste (High Contrast Mode) — detalles en la sección 3.8
- La información no se transmite únicamente mediante el color — todos los estados cuentan con iconos y etiquetas de texto (por ejemplo, flechas de tendencia de peso, iconos de medicamentos/vacunaciones, símbolos de sexo)
- Los elementos de carga (skeleton loaders) utilizan colores del tema (
surfaceContainer) en lugar de valores hardcoded, garantizando un contraste adecuado tanto en modo claro como oscuro - Los colores de estado médico (medicamentos, vacunaciones, desparasitación, visitas) cuentan con colores de texto/icono dedicados (
foreground) que garantizan el contraste sobre los fondos coloreados de los iconos en cada modo de luminosidad - Los botones de acción de deslizamiento (swipe actions) seleccionan automáticamente el color del texto/icono en función de la luminancia del fondo (
contrastText), y la acción de archivado utiliza colores del tema (outline) en lugar de un gris fijo - Los iconos de estados vacíos (empty state) y de errores utilizan colores del tema (
onSurfaceVariant) en lugar de un gris fijo, garantizando un contraste adecuado en modo oscuro - Los fondos de los marcadores de posición de fotos en la galería utilizan colores del tema (
surfaceContainerHighest) en lugar de valores hardcoded
3.3. Tamaños de los elementos interactivos
- Todos los botones tienen un tamaño mínimo de área táctil de 44 × 44 pt (conforme a WCAG 2.5.8 Target Size y a las Apple Human Interface Guidelines)
- Los campos de formulario tienen una altura que garantiza una pulsación cómoda (≥ 48 pt)
- Compatibilidad con los ajustes del sistema de tamaño de texto (Dynamic Type) — sin límites superiores
- Opciones adicionales de escalado de fuente en los ajustes de la aplicación: 4 niveles (0,85× / 1,0× / 1,15× / 1,3×) implementados mediante
AppTypography
3.4. Estructura y navegación
- La navegación principal (TabView, NavigationStack con un
enum Routede 58 rutas tipadas) utiliza componentes nativos SwiftUI con accesibilidad incorporada - Etiquetas de accesibilidad (
.accessibilityLabel) en los botones de iconos en la barra de herramientas (atrás, cerrar, menú, borrar, etc.), en los encabezados de bottom sheet, en los paneles de filtros, en los menús contextuales (Menu) y en los iconos auxiliares de los campos de texto - Compatibilidad con gestos del sistema iOS nativos (swipe-back, edge gestures, retroceso con dos dedos en VoiceOver)
- Los campos de formulario utilizan
TextFieldcon etiquetas nativas visibles encima del campo y un marcador de posición - El orden de tabulación entre los campos de los formularios se gestiona mediante el mecanismo de foco predeterminado de SwiftUI con soporte nativo para VoiceOver y teclados hardware
3.5. Animaciones y movimiento
- Las animaciones principales (logo pulsante, efecto bokeh, aurora, entrada escalonada, ilustración flotante) respetan el ajuste del sistema Reduce Motion (
@Environment(\.accessibilityReduceMotion)) — se desactivan o finalizan inmediatamente (108 comprobaciones dereduceMotionen el código de la aplicación) - Las animaciones de elementos de lista (staggered list) respetan el ajuste Reduce Motion — los elementos aparecen inmediatamente sin animación
3.6. Etiquetas de accesibilidad multilingües
- Las etiquetas de accesibilidad (
.accessibilityLabel) están localizadas en 6 idiomas: polaco, inglés, alemán, español, francés, italiano (308 etiquetas en el código de la aplicación) - Las etiquetas de accesibilidad utilizan el sistema de localización de la aplicación (String Catalog
.xcstrings) y cambian con el idioma de la interfaz
3.7. Formatos de datos alternativos
- El gráfico de peso cuenta con una tabla de datos (data table) desplegable debajo del gráfico, que presenta todos los registros de peso en forma de texto (fecha y valor en kg) — de conformidad con WCAG 1.1.1 (Contenido no textual)
- Los chips de rango del gráfico cuentan con etiquetas semánticas con información sobre el rango seleccionado
3.8. Modo de alto contraste (High Contrast Mode)
La aplicación ofrece un modo de alto contraste dedicado diseñado para personas con baja visión, que apoya la conformidad con el criterio WCAG 2.1 1.4.6 (Contraste mejorado, nivel AAA) y 1.4.11 (Contraste no textual).
Activación: Ajustes → Apariencia → interruptor «Alto contraste». El ajuste se recuerda entre sesiones.
Compatibilidad: El modo de alto contraste funciona con cualquier modo de tema (claro, oscuro, sistema) y puede combinarse con el modo OLED.
Cambios introducidos por el modo de alto contraste:
- Fondos de pantalla — uniformes: blanco puro (modo claro) o negro puro (modo oscuro) en lugar del degradado de colores
- Efectos decorativos — desactivados: sin efectos bokeh y aurora, que pueden dificultar la lectura a personas con baja visión
- Texto — máximo contraste: negro puro (#000000) sobre fondo blanco o blanco puro (#FFFFFF) sobre fondo negro
- Texto secundario — gris oscuro (#333333) sobre fondo claro o gris claro (#CCCCCC) sobre fondo oscuro, garantizando una ratio de contraste superior a 7:1
- Bordes y contornos — marcados, más fuertes que en el modo estándar (gris #555555 sobre fondo claro, #AAAAAA sobre fondo oscuro) — conforme a WCAG 1.4.11 (contraste no textual mín. 3:1)
- Paneles glass (glassmorphism) — casi opacos (95 % de opacidad) en lugar de semitransparentes, garantizando la legibilidad del contenido sin interferencias con el fondo
- Campos de formulario — fondo opaco blanco/oscuro con un borde negro/claro marcado en lugar de campos semitransparentes tipo frosted glass
- Modales y diálogos — fondo opaco, texto negro/blanco puro, contornos marcados
- Chips y tags — colores de fondo opacos en lugar de lerp de degradado, bordes marcados
- Selectores de degradados — desactivados (atenuados con opacidad 0,35) cuando el modo de alto contraste está activo, con texto explicativo sobre la anulación
Localización: Las etiquetas del modo de alto contraste están disponibles en los 6 idiomas admitidos (polaco, inglés, alemán, español, francés, italiano).
4. Limitaciones conocidas
A pesar de nuestros esfuerzos, los siguientes elementos pueden no ser totalmente accesibles:
4.1. Navegación con teclado externo
- Los formularios se basan principalmente en el orden de foco predeterminado de SwiftUI — la gestión explícita del foco (
@FocusState) se utiliza actualmente solo en campos de texto seleccionados - La aplicación no define atajos de teclado personalizados (
.keyboardShortcut); permanecen disponibles los gestos nativos del sistema iOS y la navegación VoiceOver (rotor, uno y dos dedos)
4.2. Cuadrícula de fotos
- La cuadrícula de fotos en la galería (masonry layout) puede ser difícil de navegar con un lector de pantalla debido a su disposición irregular
5. Plan de acción correctivo
Trabajamos sistemáticamente para mejorar la accesibilidad de la aplicación. Las acciones previstas incluyen:
- Introducción de una gestión explícita del foco (
@FocusStatecon enums tipados) en los formularios principales (datos de la mascota, clínica, alérgeno, visita veterinaria, alimento) - Añadir acciones personalizadas localizadas (
.accessibilityAction) en las filas de listas con acciones de deslizamiento, permitiendo editar/eliminar/archivar sin el gesto de deslizamiento - Mejora de la accesibilidad de la cuadrícula de fotos en la galería (sección 4.2)
- Pruebas periódicas con el lector de pantalla VoiceOver y herramientas de auditoría de accesibilidad
- Seguimiento de la conformidad con las actualizaciones de la norma WCAG
6. Comentarios y contacto
Si encuentras un problema de accesibilidad en la aplicación Whispet, contacta con nosotros:
- Correo electrónico: hello@whispet.app
- Dirección: CRE8EVE Sp. z o.o., Tulipanowa 4, 72-003 Dobra, Polonia
Nos esforzamos por responder a las notificaciones de accesibilidad en un plazo de 14 días hábiles.
7. Procedimiento de ejecución
En caso de respuesta insatisfactoria a una notificación de accesibilidad, el Usuario tiene derecho a:
- Presentar una reclamación ante el Presidente de la Oficina de Competencia y Protección del Consumidor (UOKiK) — autoridad competente en materia de accesibilidad de productos y servicios en el sector privado en virtud de la Directiva (UE) 2019/882: https://uokik.gov.pl
- Contactar con el Defensor del Pueblo (Ombudsman): https://bip.brpo.gov.pl
- Contactar con el Defensor del Consumidor municipal o de distrito
8. Información técnica
- Plataforma: iOS 18+
- Framework: SwiftUI (APIs nativas de accesibilidad de iOS —
.accessibilityLabel,.accessibilityHint,.accessibilityElement,.accessibilityAction,.accessibilityHidden,@Environment(\.accessibilityReduceMotion), Dynamic Type,@FocusState) - Norma de destino: WCAG 2.1 nivel AA
- Método de evaluación: Autoevaluación sobre la base de las directrices WCAG 2.1, auditoría del código fuente en cuanto a etiquetas de accesibilidad, contrastes y tamaños de elementos interactivos
- Fecha de la última auditoría: 3 de junio de 2026
- Idiomas de la interfaz: polaco, inglés, alemán, español, francés, italiano (6 idiomas)
9. Bases jurídicas
- Directiva (UE) 2019/882 — Ley Europea de Accesibilidad (European Accessibility Act)
- Ley polaca de 26 de mayo de 2023 sobre la garantía del cumplimiento de los requisitos de accesibilidad de determinados productos y servicios por parte de los operadores económicos (Dz.U. 2023, partida 1080) — transposición de la Directiva 2019/882 al derecho polaco
- Norma EN 301 549 — Requisitos de accesibilidad de productos y servicios TIC
- WCAG 2.1 (Web Content Accessibility Guidelines) nivel AA
Documento actualizado para la aplicación Whispet v1.6 — 3 de junio de 2026
Versión lingüística vinculante
Esta traducción al español se proporciona únicamente con fines informativos. En caso de discrepancia o duda interpretativa, la versión polaca del documento es la jurídicamente vinculante. La versión inglesa es una traducción oficial de referencia. En caso de contradicción entre las versiones lingüísticas, se aplica el siguiente orden de prioridad: polaco (vinculante) → inglés (referencia) → español (informativo).