Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
LanguageEspañol
Respuesta visual6 min de lectura·Actualizado Octubre 2026·Por el equipo de ExodeUI

Cómo animar errores de validación de formularios con eficacia

Aprende a animar la validación de formularios: sacudidas sutiles, transiciones de altura, sincronización con lectores de pantalla y soporte de movimiento reducido.

Resumen directo y definición

Idea clave

El movimiento eficaz de validación dirige la atención al campo con problemas sin desorientar. Una sacudida horizontal sutil (de 4 a 6 px en 300 ms) simula el rechazo físico, mientras el mensaje de error se revela suavemente. Todo mensaje debe vincularse con aria-describedby y aria-invalid para usuarios de tecnologías de asistencia.

El propósito del movimiento en la validación

Los formularios generan fricción. Cuando un usuario envía datos no válidos, el movimiento debe comunicar qué campo necesita corrección de inmediato. La sacudida horizontal comunica que la entrada no fue aceptada sin depender únicamente del color rojo, lo cual beneficia a usuarios daltónicos.

El patrón de sacudida sutil

Limita la sacudida a un recorrido pequeño amortiguado rápidamente. Tres oscilaciones a lo largo de 250 a 300 ms son suficientes. El campo debe volver a su posición de reposo neutral sin descentrarse.

  • Mantén la sacudida por debajo de 8 px de amplitud para evitar mareos
  • Usa transform: translateX() para rendimiento en GPU
  • Cambia el color del borde a la par con la sacudida
  • Desplaza el foco automáticamente al primer campo erróneo

Accesibilidad y lectores de pantalla

La animación no sustituye a la semántica. Marca el campo con aria-invalid="true" y vincula el mensaje de error mediante aria-describedby. Si el mensaje se inserta dinámicamente, usa role="alert" para que el lector lo anuncie.

Soporte para prefers-reduced-motion

Para quienes solicitan movimiento reducido, suprime la sacudida por completo. En su lugar, aplica un cambio de color inmediato en el borde e introduce el mensaje mediante un fundido rápido de opacidad sin desplazamiento.

Fragmento de implementación en producción

Implementación del componente interactivo
@keyframes subtle-shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-4px); }
  40%, 80% { transform: translateX(4px); }
}

.input-error {
  border-color: #ef4444;
  animation: subtle-shake 300ms ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  .input-error {
    animation: none;
  }
}

Principios clave para recordar

  • Usa sacudidas sutiles de menos de 8 px amortiguadas rápidamente
  • Vincula siempre el mensaje mediante aria-describedby y aria-invalid
  • Mueve el foco del teclado al primer campo con error al enviar
  • Reemplaza la sacudida por cambios de color inmediatos en movimiento reducido

Preguntas frecuentes

Fuentes

  1. Form Validation Best Practices — Nielsen Norman Group
  2. Form Controls Accessibility — W3C Web Accessibility Initiative

Guías y ejemplos relacionados

Handle form error states without breaking flow.

ExodeUI lets you design states visually with node logic and spring physics. Try the free Community plan on your next form.

Browse UI examples
Pruébalo gratis