# Revisión de accesibilidad WCAG 2.2 A y AA — Creasis San Pedro Fecha: 28 de octubre de 2026. Evaluador: Codex (asistencia automatizada con inspección de navegador). Alcance solicitado: sitio público ES/EN y procesos de contacto, orientación y reserva. Fuente inicial: commit 4ce71bfa8834b8443ea79cc1b87d82092174b042 (versión 89); las correcciones de esta revisión se incorporan en la siguiente publicación. ## Dictamen **Conformidad AA global no demostrada.** El incumplimiento detectado en los cuatro campos de contacto fue corregido en CitasAI y verificado en sus versiones públicas ES/EN. Siguen sin verificarse partes esenciales de reserva/orientación y pruebas con tecnologías de apoyo. No se autoriza con este informe una afirmación de cumplimiento global ni el sello AA. Esto no requiere un certificador externo obligatorio; requiere evidencia suficiente para todos los criterios aplicables y procesos completos, que esta revisión todavía no reúne. ## Método y evidencia - Inspección de código y validación de las 52 rutas propias (26 pares ES/EN), recursos, títulos, idiomas, landmarks, enlaces, ARIA y 354 apariciones de imágenes. - Navegador Chrome: muestra de Inicio, Nosotros, Servicios, Laboratorio, Tratamientos, Blog, Agendar consulta, Accesibilidad y artículo FIV a 320 px de ancho; 305 px útiles por la barra de desplazamiento del contenedor. Sin desplazamiento horizontal de página en las vistas normales observadas. El fondo decorativo de Nosotros se recorta deliberadamente dentro de su contenedor. - Medición de contraste de texto opaco en Inicio/Accesibilidad en escritorio y ocho plantillas a 320 px (Nosotros, Servicios, Laboratorio, Tratamientos, Blog, Agendar consulta, Contacto EN y Creasis). Sin candidatos bajo el umbral dentro de esa medición limitada. No cubre por sí sola todas las composiciones de fondos ni los documentos externos. - Espaciado en Inicio, Servicios, Blog y Accesibilidad a 320 px: altura de línea 1.5, espacio entre párrafos 2em, letras .12em y palabras .16em. Se detectó desbordamiento en Servicios y se corrigió la contracción del contenedor y la ruptura de palabras; revalidación en Servicios: ancho útil 305 px y scrollWidth 305 px, sin elementos desbordados. - Teclado: apertura del menú móvil y Tab reprodujeron foco en el CTA principal con la capa abierta. Corrección y pruebas de regresión: foco al primer enlace; cierre al salir de la cabecera; Escape devuelve foco. Diálogos y preferencias revisados con pruebas funcionales y muestra de navegador. - Contacto externo observado en navegador: input first_name sin autocomplete, last_name sin autocomplete, email sin autocomplete y phone con autocomplete=off. Etiquetas presentes en árbol accesible. Corregido después en el bloque HTML nativo de CitasAI: given-name, family-name, email y tel. El bloque guardado se reabrió y comparó exactamente; los cuatro atributos se verificaron en el formulario público ES/EN. La reparación no lee ni cambia respuestas, ni envía formularios. Los demás campos de procesos externos siguen pendientes. - Calendario presencial y encuesta de orientación: el navegador mostró «refused to connect» para link.creasissanpedro.com. Se observó también en la página publicada del calendario, no solo en la vista previa. Es un límite de comprobación de este navegador; no demuestra que fallen para todos los visitantes. No se completaron reservas ni se enviaron datos de pacientes. - No se ejecutó un lector de pantalla real, reconocimiento de voz ni un ensayo válido del zoom del navegador al 200/400%. El intento de atajo de zoom no cambió el viewport y se descarta como evidencia. El árbol accesible y el contenedor de 320 px no sustituyen esas pruebas. ## Correcciones propias 1. Menú móvil: foco inicial y cierre al abandonar cabecera; evita mantener contenido enfocado bajo la capa. 2. Ayuda emergente del botón de accesibilidad: retirada; conserva nombre accesible y acceso al panel. 3. Destinos pequeños: mínimo de 24 px en selectores de idioma, teléfono superior, enlaces del pie y enlaces de artículos; sin alterar las excepciones de enlaces dentro de párrafos. 4. Foco del pie: contorno blanco sobre el fondo oscuro y márgenes de desplazamiento para cabecera/aviso. 5. Servicios con espaciado ampliado: min-width:0, overflow-wrap:anywhere e hifenación de títulos, además de permitir que las columnas de contenido se contraigan. ## Matriz de los 55 criterios A/AA «Verificado en HTML/plantillas propias» se limita al alcance indicado y no equivale a que el criterio esté aprobado en todo el sitio. «No identificado» no excluye elementos de terceros. No hay porcentaje de cumplimiento. | Criterio | Nombre | Resultado | Evidencia o pendiente | | --- | --- | --- | --- | | 1.1.1 | Contenido no textual | Parcial | 354 apariciones de imágenes con atributos alternativos verificados por el validador; revisión de componentes externos y todas las alternativas contextuales pendiente. | | 1.2.1 | Solo audio y solo vídeo | No identificado en HTML propio | No se encontraron elementos audio o video en las páginas propias; no se afirma ausencia en servicios externos. | | 1.2.2 | Subtítulos grabados | No identificado en HTML propio | Sin vídeo con audio en el HTML propio. | | 1.2.3 | Audiodescripción o alternativa | No identificado en HTML propio | Sin vídeo con audio en el HTML propio. | | 1.2.4 | Subtítulos en directo | No identificado en HTML propio | Sin transmisión audiovisual propia. | | 1.2.5 | Audiodescripción grabada | No identificado en HTML propio | Sin vídeo con audio en el HTML propio. | | 1.3.1 | Información y relaciones | Parcial | Validación de landmarks, encabezados, listas, etiquetas y ARIA en 52 rutas; falta validación de todos los estados externos con tecnología de apoyo. | | 1.3.2 | Secuencia significativa | Parcial | Estructura HTML y muestra visual coherentes; lectura secuencial completa con lector de pantalla pendiente. | | 1.3.3 | Características sensoriales | Parcial | Se inspeccionó una muestra de instrucciones; no se completó la encuesta externa. | | 1.3.4 | Orientación | Parcial | Sin bloqueo de orientación en el código propio; revisión en dispositivos y servicios externos pendiente. | | 1.3.5 | Identificar propósito de entrada | Corregido y verificado en contacto ES/EN; otros procesos pendientes | Los campos first_name, last_name, email y phone exponen given-name, family-name, email y tel en el formulario público. Cambio guardado en CitasAI y comprobado después de reabrir el editor. | | 1.4.1 | Uso del color | Parcial | Filtros con aria-pressed, estados de navegación e instrucciones textuales; faltan estados externos completos. | | 1.4.2 | Control del audio | No identificado en HTML propio | Sin audio automático propio. | | 1.4.3 | Contraste mínimo | Parcial | Sin candidatos bajo el umbral en texto con colores opacos de las muestras medidas. El algoritmo no resuelve imágenes de fondo, transparencias compuestas ni widgets externos. | | 1.4.4 | Cambio de tamaño de texto | Pendiente | Preferencias funcionales verificadas; intento de zoom del navegador no cambió el viewport y no se cuenta como prueba de 200%. | | 1.4.5 | Imágenes de texto | Parcial | Contenido principal en texto HTML; marcas excluidas; revisión de todas las imágenes externas pendiente. | | 1.4.10 | Redistribución | Parcial | Muestra propia en contenedor de 320 px (305 px útiles por barra): sin desbordamiento de página normal. Falta cubrir procesos externos completos. | | 1.4.11 | Contraste no textual | Parcial | Mejorado foco del pie en blanco; no se completó medición de todos los controles, estados y gráficos externos. | | 1.4.12 | Espaciado del texto | Parcial / corregido en muestra | Detectado desbordamiento en servicios con espaciado ampliado. Corregidos min-width y ruptura de palabras. Prueba de muestra, no aprobación global. | | 1.4.13 | Contenido hover o foco | Corregido en componente propio | Retirada ayuda emergente personalizada no alcanzable con el puntero; el botón conserva su nombre accesible. Otros componentes externos pendientes. | | 2.1.1 | Teclado | Parcial / corregido | Menú mueve foco al primer enlace y se cierra al salir con el foco; pruebas de búsqueda, filtros, Escape y diálogos. Reservas externas pendientes. | | 2.1.2 | Sin trampas de teclado | Parcial | Escape y retorno de foco en diálogos propios; navegación móvil sin atrapar el foco. Falta recorrido externo completo. | | 2.1.4 | Atajos de caracteres | No identificado en código propio | No se encontraron atajos de una sola letra en el código propio. | | 2.2.1 | Tiempo ajustable | Pendiente en terceros | Sin límite de respuesta propio; no se verificaron expiraciones de calendarios ni antispam. | | 2.2.2 | Pausar, detener, ocultar | Parcial | Animaciones propias finitas y reducción de movimiento disponible; sin carrusel automático propio. Terceros pendientes. | | 2.3.1 | Tres destellos o umbral | Parcial | Sin contenido intermitente identificado en código o muestra propia; terceros sin completar. | | 2.4.1 | Evitar bloques | Verificado en plantillas propias | Enlace Saltar al contenido y main con id=contenido y tabindex=-1; falta verificación con lector de pantalla. | | 2.4.2 | Título de página | Verificado en HTML propio | 52 títulos y metadatos únicos validados. | | 2.4.3 | Orden del foco | Parcial / corregido | Antes: Tab desde menú abierto enfocaba un CTA tapado. Después: foco inicial al primer enlace y cierre al salir de la cabecera. Falta todo el recorrido externo. | | 2.4.4 | Propósito de enlaces | Parcial | Destinos y nombres de enlaces propios validados; muestra semántica revisada. Revisión completa de terceros pendiente. | | 2.4.5 | Múltiples vías | Verificado en páginas propias | Navegación compartida, enlaces contextuales y listado/búsqueda del blog; páginas de proceso exceptuadas cuando corresponda. | | 2.4.6 | Encabezados y etiquetas | Parcial | Jerarquía y campos propios revisados; formularios externos necesitan evaluación completa. | | 2.4.7 | Foco visible | Parcial / mejorado | Contorno general, galería y foco claro en pie oscuro; verificación de todos los estados externos pendiente. | | 2.4.11 | Foco no oculto | Parcial / corregido | Cierre del menú al salir, cabecera visible al recibir foco y márgenes de desplazamiento para cabecera/aviso. No probado en todos los estados externos. | | 2.5.1 | Gestos de puntero | No identificado en interfaz propia | Interacciones propias con activación simple; falta recorrido externo. | | 2.5.2 | Cancelación de puntero | Parcial | Acciones propias en click y controles nativos; falta inspección completa de terceros. | | 2.5.3 | Etiqueta en nombre | Parcial | Muestra de enlaces y botones; pendiente probar todos los controles con herramientas de voz y terceros. | | 2.5.4 | Activación por movimiento | No identificado en código propio | No usa sensores de movimiento. | | 2.5.7 | Movimientos de arrastre | No identificado en interfaz propia | Galería operable por botones y teclado; no exige arrastre propio. | | 2.5.8 | Tamaño mínimo de destino | Parcial / mejorado | Aumentados a 24 px controles de idioma, teléfono, enlaces del pie y enlaces de artículos. Las excepciones de enlaces en párrafos no se contabilizan como fallos automáticos. Terceros pendientes. | | 3.1.1 | Idioma de página | Verificado en HTML propio | Pares es-MX/en completos, 26 pares y 404; contacto observado en es-MX. | | 3.1.2 | Idioma de partes | Parcial | Selector de idiomas con lang; revisión editorial y de todos los mensajes externos pendiente. | | 3.2.1 | Al recibir foco | Parcial | Sin navegación al enfocar controles propios; galería cambia panel dentro del componente, sin cambio de contexto. Terceros pendientes. | | 3.2.2 | Al recibir entrada | Parcial | Búsqueda filtra resultados y preferencias cambian presentación; retirada de medición informa recarga. Validación externa pendiente. | | 3.2.3 | Navegación coherente | Verificado en plantillas propias | Navegación compartida por generador; cabeceras de procesos coherentes dentro de su conjunto. | | 3.2.4 | Identificación coherente | Parcial | Controles propios compartidos y traducciones validadas; externos pendientes. | | 3.2.6 | Ayuda coherente | Verificado en plantillas propias | Correo y teléfono del pie compartido y ayuda en procesos; falta comprobar accesibilidad del chat externo. | | 3.3.1 | Identificación de errores | Pendiente en terceros | No se completó validación de errores en todos los formularios y reservas externos. | | 3.3.2 | Etiquetas e instrucciones | Parcial | Contacto muestra etiquetas asociadas en árbol accesible; dos selectores de país tienen el mismo nombre. Falta revisión de todos los campos externos. | | 3.3.3 | Sugerencias ante errores | Pendiente en terceros | Falta prueba de todos los errores y sugerencias de corrección del CRM. | | 3.3.4 | Prevención de errores | Pendiente en terceros | Falta verificar revisión, corrección o reversibilidad del envío de datos y reservas. | | 3.3.7 | Entrada redundante | Pendiente en terceros | No se completaron procesos de varios pasos del CRM. | | 3.3.8 | Autenticación accesible | Pendiente en terceros | No hay login propio público. Un desafío antispam no se considera automáticamente autenticación para este criterio. Se requiere determinar aplicabilidad en los procesos completos externos. No se resolvieron desafíos. | | 4.1.2 | Nombre, función, valor | Parcial | ARIA y semántica propias comprobadas; falta lector de pantalla y todos los widgets externos. | | 4.1.3 | Mensajes de estado | Parcial | Resultados de búsqueda y preferencias propios con estados; errores y confirmaciones externas pendientes. | ## Para cerrar la evaluación La reparación de propósito de entrada de contacto ya está aplicada y verificada. Falta revisar todos los campos, pasos, errores, confirmaciones, fechas y antispam de los cuatro calendarios y las encuestas ES/EN; completar pruebas de lector de pantalla, ampliación y espaciado en estados abiertos. Registrar navegador/tecnología de apoyo, fecha, alcance y resultados. Solo tras resolver incumplimientos y pendientes aplicables se puede valorar colocar el sello con un alcance explícito. Referencias: https://www.w3.org/TR/WCAG22/ ; https://www.w3.org/WAI/test-evaluate/conformance/wcag-em/ ; https://www.w3.org/WAI/standards-guidelines/wcag/conformance-logos/ . ## Actualización tras acceder a CitasAI Se conservó el HTML nativo previo en `content/accessibility/contact-native-before.html`. Se añadió exclusivamente el bloque `creasis-contact-purpose-v1`, que aplica metadatos de autocompletado a los cuatro campos de contacto y los restaura si el proveedor vuelve a dibujarlos. No modifica valores, consentimiento, reglas, antispam, traducciones ni el código de medición. Comprobación local de valores intactos, rerender y ámbito de formulario; verificación real en ambos idiomas. El proveedor conserva el bloque exacto después de guardarlo. La vista previa oficial del calendario presencial, abierta desde CitasAI > Apariencia del widget, devolvió `Please contact the site owner for access.`. No se cambiaron calendarios ni sus permisos, no se reservaron citas y no se intentó eludir esa restricción. El acceso al editor administrativo no demuestra que se haya comprobado la reserva pública completa.