Módulo 06: Design de Interfaces, UI/UX e Acessibilidade • Bloco 5: Acessibilidade, Testes & Métricas


🗺️ Mapa Conceitual do Capítulo

flowchart TD
    subgraph SAFFER["1. A Anatomia da Microinteração (Dan Saffer)"]
        TRIGGER["1. Gatilho (Manual do Usuário vs Sistema)"]
        RULES["2. Regras (Lógica de Estado e Condições)"]
        FEEDBACK["3. Feedback (Visual, Háptico e Sonoro)"]
        LOOPS["4. Loops & Modos (Persistência e Transformações)"]
        TRIGGER --> RULES --> FEEDBACK --> LOOPS
    end

    subgraph EASING["2. Física do Movimento e Curvas Bézier"]
        EASE_OUT["Ease-Out (Entrada na Tela: Rápido ➔ Suave)"]
        EASE_IN["Ease-In (Saída da Tela: Suave ➔ Acelerado)"]
        STANDARD["Standard / Ease-In-Out (Movimento Interno na Tela)"]
        SPRING["Spring Physics (Stiffness, Damping e Massa)"]
    end

    subgraph A11Y_MOTION["3. Ergonomia, Timing e Acessibilidade"]
        TIMING["Janela de Ouro: 150ms a 350ms (Acima de 400ms = Lento)"]
        VESTIBULAR["Distúrbios Vestibulares (Cinetose e Náusea de Movimento)"]
        REDUCED["Media Query: @media (prefers-reduced-motion: reduce)"]
        TIMING --> VESTIBULAR --> REDUCED
    end

    SAFFER --> EASING
    EASING --> A11Y_MOTION

    style SAFFER fill:#ede7f6,stroke:#512da8,stroke-width:1.5px
    style EASING fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
    style A11Y_MOTION fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px

💡 1. Os 4 Elementos da Microinteração (Dan Saffer)

Uma microinteração é um momento sutil e focado em torno de uma única tarefa ou funcionalidade na interface. Segundo Dan Saffer, todo detalhe interativo é estruturado por quatro componentes:

sequenceDiagram
    autonumber
    actor User as Usuário
    participant Trigger as 1. Gatilho (Trigger)
    participant Rules as 2. Regras (Rules)
    participant Feedback as 3. Feedback
    participant Loops as 4. Loops & Modos

    User->>Trigger: Clica no botão "Curtir" (Gatilho Manual)
    Trigger->>Rules: Valida autenticação e incrementa contador +1
    Rules->>Feedback: Renderiza coração saltando e cor vermelha
    Feedback->>Loops: Modifica estado do botão para "Curtido"
  1. Gatilho (Trigger): O evento que inicia o ciclo:
    • Gatilho do Usuário: Clique, toque, arrastar (swipe), passar o cursor (hover).
    • Gatilho do Sistema: Bateria fraca ($< 15\%$), chegada de uma nova notificação push ou upload de arquivo concluído.
  2. Regras (Rules): Determinam como a microinteração opera nos bastidores. São invisíveis ao usuário e ditam os limites lógicos do sistema.
  3. Feedback: A linguagem sensorial através da qual a interface comunica o sucesso da regra:
    • Visual: Mudança de cor, microanimação de ícone, expansão de um container.
    • Tátil/Háptico: Vibração de clique físico confirmada no motor de feedback háptico do smartphone.
    • Auditivo: Som sutil de confirmação de envio de mensagem.
  4. Loops e Modos (Loops & Modes): As meta-regras que governam a duração e a frequência da microinteração ao longo do tempo (ex: o que ocorre quando o usuário clica no mesmo botão pela segunda vez?).

🏎️ 2. A Física do Movimento Digital e Curvas de Aceleração

No mundo físico real, corpos dotados de massa nunca partem da inércia para a velocidade máxima em zero milissegundos, nem param abruptamente sem desaceleração. Movimentos sem desaceleração (linear) transmitem ao cérebro a sensação de rigidez mecânica antinatural.

Curva de Easing Fórmula Cubic-Bézier Comportamento Dinâmico Aplicação Canônica em UI
Ease-Out (Deceleration) cubic-bezier(0.0, 0.0, 0.2, 1) Começa com velocidade imediata e freia gradualmente no destino Entrada de Elementos: Modais, gavetas de menu (drawers) e banners surgindo
Ease-In (Acceleration) cubic-bezier(0.4, 0.0, 1, 1) Começa lento e ganha aceleração máxima antes de sumir Saída de Elementos: Modais fechando, toasts sendo dispensados da tela
Standard (Ease-In-Out) cubic-bezier(0.4, 0.0, 0.2, 1) Acelera suavemente e desacelera suavemente no fim Movimento Interno: Elementos que se reposicionam ou mudam de tamanho na mesma tela

Animações Baseadas em Física de Molas (Spring Animations):

Em interfaces móveis modernas (iOS e Android), as curvas matemáticas fixas de Bézier dão lugar a simulações de mola realistas configuradas por três grandezas físicas:

  • Rigidez (Stiffness): Quão rápido a mola tenta voltar ao estado de repouso.
  • Amortecimento (Damping): A força de atrito que dissipa a oscilação elástica.
  • Massa (Mass): O peso do componente (componentes maiores parecem mais pesados e deliberados).

⏱️ 3. Ergonomia, Duração e Acessibilidade Vestibular

A percepção de performance de um produto digital depende diretamente do timing de animação:

  • $< 100\text{ms}$: O olho humano percebe como instantâneo (útil para mudanças de estado de hover simples).
  • $150\text{ms}$ a $300\text{ms}$: A Janela de Ouro do Motion Design. Transições perceptíveis, elegantes e que não atrasam o usuário.
  • $> 400\text{ms}$: Gera a sensação de peso, lentidão e atraso operacional, frustrando usuários recorrentes.

Proteção a Distúrbios Vestibulares:

Grandes deslocamentos de tela, rotações e efeitos de profundidade com parallax podem induzir tontura, enxaqueca e náuseas em pessoas com distúrbios do sistema vestibular do ouvido interno. A diretriz WCAG 2.2 exige o respeito à preferência do sistema operacional:

/* Tokens de Transição Responsivos à Acessibilidade */
:root {
  --motion-duration-fast: 150ms;
  --motion-duration-base: 250ms;
  --motion-ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-duration-fast: 0.01ms;
    --motion-duration-base: 0.01ms;
  }
  
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}