Ebook Salll · Nº 26 · Experiência de compra

Quando a espera vira dúvida.

Depois do clique, a interface precisa reconhecer a intenção, explicar a espera e confirmar apenas o que o servidor confirmou.

Leitura de 18 minutos · Pesquisa verificada · Busca, PDP, frete, carrinho e pagamento

Personagem 3D da Salll diante de um botão de elevador que não confirma o toque
O primeiro clique existiu?
O instante da dúvida

Você apertou o botão. Nada aconteceu.

O elevador pode estar vindo. O botão pode ter registrado o toque. Mas, sem luz, som ou mudança de estado, a única informação disponível é o silêncio. A mão volta. O segundo clique não nasce necessariamente de impaciência. Nasce da dúvida sobre o primeiro.

Em uma compra, essa dúvida fica cara. A busca parece quebrada. A variante troca de cor, mas conserva o preço anterior. O frete gira sem dizer o que consulta. O carrinho sobe para dois itens. O pagamento fica mudo no único momento em que repetir a ação pode duplicar uma cobrança.

Silêncio cria repetição e riscoEstado claro cria continuidade
Diagrama com bonequinhas. Acima, um botão sem resposta leva a cliques repetidos e duplicidade. Abaixo, confirmação imediata, progresso e conclusão levam a uma espera compreensível.
As duas jornadas podem levar o mesmo tempo real. A diferença é se a pessoa consegue explicar o estado e saber quando a ação terminou.
Tese central. Rapidez real importa. Feedback reduz ambiguidade, mas não apaga latência nem autoriza fingir sucesso.
01
Capítulo 1 · O número que virou lei sem ter sido testado como lei

Doherty não provou um limiar universal de 400 ms.

O relatório de Walter Doherty e Ahrvind Thadhani, publicado pela IBM em 1982, reuniu observações e estudos sobre terminais profissionais. A tese era forte: quando pessoa e computador não ficam esperando um pelo outro, a produtividade pode crescer mais do que a redução isolada do tempo da máquina sugeriria.

400
ms

Um número mais preciso que a evidência

O relatório apresenta condições de 0,25 s, 0,30 s e 0,84 s e defende respostas abaixo de um segundo. Não executa um experimento que compare 399 ms a 401 ms, nem declara 400 ms como fronteira humana universal.

O que existia

Casos em tarefas profissionais

Havia 75 sessões de 15 engenheiros, cinco profissionais num pequeno teste e observação de 390 usuários do NIH, além de casos com amostra não reportada.

Métodos mistos, muitos controles ausentes e computadores do início dos anos 1980.
O que sobrevive

Latência muda o ritmo da tarefa

A evidência histórica sustenta perseguir resposta rápida. A revisão moderna mostra que percepção, preferência e desempenho variam por tarefa, modalidade e expectativa.

“Subsegundo” é uma direção histórica, não um limiar biológico.

Miller, em 1968, propôs tempos diferentes para 17 situações conversacionais. Não eram resultados de um experimento sistemático, mas estimativas informadas. A revisão de Attig e colegas mostra por que o contexto vence o slogan: toque, arraste, escrita, consulta e tarefa complexa têm sensibilidades diferentes.

Regra editorial. Não use “lei de Doherty” para converter um contínuo dependente da tarefa em cronômetro universal.
02
Capítulo 2 · Dois relógios depois do clique

Responder não é o mesmo que terminar.

O Interaction to Next Paint, INP, mede do início de um clique, toque ou tecla até o próximo frame apresentado. A meta de até 200 ms no percentil 75 é útil para o primeiro relógio: o momento em que a página reconhece a intenção. Ela não mede o fim de um XHR nem a confirmação de frete, estoque ou pagamento.

Relógio 1

Reconhecimento

“O sistema recebeu minha ação?” Mede o paint do estado pressionado, do texto de espera ou de outro retorno visual. INP ajuda aqui.

Relógio 2

Conclusão

“O resultado verdadeiro já voltou?” Mede rede, processamento, sucesso, erro, timeout e reconciliação com o servidor.

Num experimento do Google Search, injetar de 100 a 400 ms causou entre 0,2% e 0,6% menos buscas por usuário. É evidência causal de que pequenas diferenças podem importar em busca. O desfecho não era compra, e o estudo não publicou o tamanho amostral. A magnitude não deve virar benchmark de checkout.

Separação operacional. Otimize os dois relógios. Use o primeiro para eliminar silêncio e o segundo para reduzir duração real. Um spinner rápido não compensa uma operação lenta.
03
Capítulo 3 · Quatro estados que não podem virar um só

A interface precisa dizer o que ela sabe.

“Recebi”, “estou processando”, “confirmei” e “não sei se terminou” são mensagens diferentes. Colapsá-las é a origem de muito duplo clique, duplicidade e falsa confirmação.

01Recebido

O clique entrou. O controle mudou no próximo frame. Nenhuma promessa sobre o resultado ainda.

02Processando

Há trabalho em andamento. O texto nomeia a operação e preserva contexto.

03Confirmado

O servidor devolveu o estado final. Preço, estoque, pedido ou pagamento estão conciliados.

04Falhou ou ficou desconhecido

Falha confirmada e resultado desconhecido pedem instruções diferentes.

Um timeout depois de enviar um pagamento não prova que a cobrança falhou. Pode significar apenas que a resposta não chegou. A tela precisa consultar o status antes de oferecer uma nova tentativa. Em outro extremo, “sem estoque” não pode ser o fallback de um erro de captura ou validação.

Regra de verdade. O estado mostrado nunca pode ser mais definitivo do que a evidência disponível no backend.
04
Capítulo 4 · Skeleton, spinner e progresso

O padrão certo depende de qual verdade existe.

Indicadores de progresso ajudam quando transformam incerteza em informação. No estudo de Myers com 48 voluntários, versões com indicador foram avaliadas melhor e 86,1% disseram preferi-lo. Isso não prova redução de abandono. Mostra preferência num sistema da década de 1980.

Spinner

Existe trabalho, sem estimativa

Serve para escopo curto e localizado. Em espera longa, precisa de contexto, etapa ou saída segura.

Skeleton

A estrutura final é conhecida

Ajuda a reservar layout e antecipar forma. Não deve redesenhar a página quando o conteúdo chega.

Barra determinada

Há progresso real e monotônico

Mostre percentual somente quando o backend consegue estimá-lo. Um número falso troca dúvida por decepção.

Etapas nomeadas

O processo tem fases reais

“Consultando CEP” e “Buscando transportadoras” funcionam se correspondem ao processamento real.

Skeletons não venceram de modo confiável. Um estudo acadêmico com 14 pessoas encontrou médias favoráveis ao skeleton, mas nenhuma diferença significativa. Um teste aplicado com 136 participantes encontrou pior avaliação para skeleton que para spinner e tela vazia. Os métodos são limitados e os resultados apontam em direções diferentes.

Lee, Chen e Hess testaram 1.025 pessoas e mostraram que informação temporal e distração reduzem espera percebida por caminhos diferentes. Informação reduz incerteza. Distração muda a atenção. Nenhum dos dois caminhos autoriza estimativa falsa.

Não anestesie o atraso. Primeiro reduza o tempo real. Depois escolha o feedback que explica o processo sem inventar precisão.
05
Capítulo 5 · Optimistic UI com prestação de contas

Antecipar intenção é útil. Antecipar verdade é perigoso.

Optimistic UI mostra temporariamente o estado que a pessoa tentou criar enquanto a ação acontece. A documentação do React ensina o padrão, o estado pendente e o rollback. Ela não demonstra aumento de confiança ou conversão.

Bom candidato

  • seleção visual de variante marcada como pendente;
  • item de carrinho reversível, com linha pendente;
  • favorito ou preferência de baixo risco;
  • ação com baixa taxa de falha e rollback compreensível.

Não antecipe como concluído

  • pagamento aprovado;
  • estoque reservado;
  • frete e prazo contratados;
  • pedido criado sem identificador do servidor.

A proteção também precisa existir no backend. A RFC 9110 alerta que requisições não idempotentes não devem ser repetidas automaticamente sem garantia adicional. APIs de pagamento usam chaves de idempotência para reconhecer a mesma intenção e devolver o mesmo resultado. Desabilitar o botão no navegador não resolve retry de rede, duas abas ou reenvio do cliente.

Critério de uso. Otimismo seguro tem estado pendente visível, rollback, reconciliação e idempotência. Sem esses quatro, ele é apenas certeza visual antes da hora.
06
Capítulo 6 · Uma jornada, seis aplicações

O feedback muda com o risco da etapa.

Etapa
Reconhecer
Concluir
Falha a evitar
Busca
Estado “Buscando” no próximo frame.
Contagem real, nenhum resultado ou erro.
Resultado antigo parecer novo ou tela vazia parecer quebra.
PDP
Carregar a região afetada sem bloquear tudo.
Mídia, preço ou conteúdo disponível.
Erro localizado desaparecer como dado ausente.
Variante
Seleção imediata marcada como pendente.
SKU, preço, estoque e imagem conciliados.
Preço antigo aparecer na variante nova.
Frete
CEP aceito e cálculo iniciado.
Opções, custo e prazo vinculados ao CEP.
Timeout virar “não entregamos”.
Carrinho
Linha pendente, sem sucesso definitivo.
Quantidade e total confirmados pelo servidor.
Badge subir sem persistência ou somar duas vezes.
Pagamento
“Processando pagamento” e envio protegido.
Aprovado, recusado ou desconhecido com instrução.
Fingir aprovação ou oferecer nova cobrança após timeout.

No experimento de compra simulada de Dabholkar e Sheng, 252 pessoas esperaram 3 s ou 30 s em diferentes etapas de uma reserva de viagem. Espera percebida previu melhor a intenção declarada de abandonar que o tempo objetivo. Atrasos mais cedo pareceram mais longos. O estudo não observou abandono real e usou atrasos extremos, mas reforça a necessidade de medir cada etapa, não apenas a média do site.

07
Capítulo 7 · Clique repetido não é diagnóstico pronto

O segundo clique é um pedido de investigação.

Num estudo de busca com 40 participantes, mais cliques e consultas apareceram tanto em engajamento quanto em frustração. Telemetria de “rage click” é útil para localizar episódios, não para nomear sozinha a emoção.

AntesINP e paint

O controle reconheceu o primeiro toque antes da repetição?

DuranteRequest e duplicidade

O segundo clique criou outra requisição ou foi absorvido pela mesma intenção?

DepoisResultado e saída

Houve sucesso, erro, reconciliação ou abandono durante estado pendente?

Confirmação também afeta confiança. Reynolds-McIlnay e Morrin encontraram, em quatro experimentos com interfaces de varejo simuladas, benefícios da confirmação auditiva em condições específicas. Isso não transforma som em padrão obrigatório. O áudio pode ser intrusivo e não atende quem não o ouve. Ele é reforço, nunca substituto do estado visível e programático.

Diagnóstico mínimo. Cruze repetição com latência, mudança visual, status de rede, ação no backend e resultado final. Não converta correlação de sessão em causa de abandono.
08
Capítulo 8 · Esperar também precisa ser acessível

O estado precisa existir além da animação.

A WCAG 2.2, no critério 4.1.3 Status Messages, nível AA, exige que mensagens sobre resultado, espera, progresso e erro possam ser determinadas programaticamente sem receber foco. “Buscando”, “18 resultados” e “Nenhum resultado” são exemplos do próprio material da W3C.

Leitor de tela

Anuncie mudanças úteis

Use `role="status"` ou live region adequada. Informe fase, conclusão e erro. Não anuncie cada frame nem cada ponto percentual.

Movimento

Mantenha estado sem shimmer

`prefers-reduced-motion` remove pulsação e deslocamento não essenciais. O conteúdo estático continua explicando a espera.

Foco

Não roube contexto

Mantenha o foco no controle acionado quando a atualização não muda o contexto. Erro e resultado continuam localizáveis.

Transação

Permita revisar ou confirmar

O critério 3.3.4 protege submissões financeiras com reversão, verificação ou confirmação antes do estado definitivo.

Acessibilidade não é animação alternativa. É um contrato semântico para que espera, sucesso e falha sejam compreensíveis por diferentes modalidades.
09
Capítulo 9 · Checklist para amanhã

Audite estados. Não apenas animações.

O clique aparece no próximo frame?

Meça INP e confirme que pressionado, pendente ou texto de status são pintados antes de trabalho pesado.

A tela separa recebido de concluído?

Nenhum badge, total ou mensagem de sucesso pode antecipar a confirmação do servidor.

Existe estado desconhecido?

Timeout de pagamento e falha de conexão precisam consultar status antes de oferecer nova tentativa.

O indicador diz a verdade?

Percentual representa progresso real. Etapa nomeada corresponde ao backend. Skeleton preserva a estrutura final.

Repetir é seguro?

Use idempotência e deduplicação no servidor. Botão desabilitado é só uma camada do controle.

Erro, indisponibilidade e ausência estão separados?

“Não encontrado”, “fora de estoque” e “erro de captura” nunca compartilham o mesmo estado.

A espera é programaticamente anunciada?

Status sem roubar foco, progresso nomeado e movimento reduzido preservam acesso à mesma informação.

A medição acompanha a jornada?

Cruze feedback pintado, request, repetição, reconciliação, resultado e saída por etapa.

Critério de saída. A experiência passa quando a pessoa consegue dizer o que o sistema recebeu, o que ainda processa e o que já foi confirmado.
A conclusão

O oposto da espera não é animação. É certeza operacional.

Uma interface confiável não promete que tudo será instantâneo. Ela reconhece a intenção rápido, reduz o tempo real, explica o que acontece e reserva a palavra “concluído” para quando a verdade voltou.

É assim que o primeiro clique deixa de pedir um segundo.

Fontes verificadas

Base da pesquisa

  1. Doherty, W. J., & Thadhani, A. J. (1982). The Economic Value of Rapid Response Time. Transcrição do relatório IBM.
  2. Miller, R. B. (1968). Response Time in Man-Computer Conversational Transactions. DOI.
  3. Barber, R. E., & Lucas, H. C. (1983). System Response Time, Operator Productivity, and Job Satisfaction. PDF.
  4. Attig, C. et al. (2017). System Latency Guidelines Then and Now. DOI.
  5. Google Research (2009). Speed Matters. Fonte oficial.
  6. web.dev. Interaction to Next Paint. Documentação oficial.
  7. Dabholkar, P. A., & Sheng, X. (2008). Perceptions of Download Delays. DOI.
  8. Dabholkar, P. A., & Sheng, X. (2009). The Role of Perceived Control and Gender. DOI.
  9. Myers, B. A. (1985). The Importance of Percent-Done Progress Indicators. DOI.
  10. Harrison, C. et al. (2007). Rethinking the Progress Bar. DOI.
  11. Lee, Y., Chen, A. N. K., & Hess, T. (2017). The Online Waiting Experience. DOI.
  12. Mejtoft, T. et al. (2018). The Effect of Skeleton Screens. DOI.
  13. O'Brien, H. L., Arguello, J., & Capra, R. (2016). Engaged or Frustrated? DOI.
  14. Reynolds-McIlnay, R., & Morrin, M. (2019). Increasing Shopper Trust via Auditory Confirmation. DOI.
  15. RFC 9110. HTTP Semantics. Idempotent Methods.
  16. W3C. WCAG 2.2. Status Messages, Reduced Motion e Error Prevention.

Nota de transparência: resultados de busca, sistemas profissionais e laboratórios explicam mecanismos dentro de seus métodos. Aplicações em comércio eletrônico são identificadas como recomendações ou hipóteses quando não há experimento direto. Nenhuma correlação foi apresentada como causalidade.