Como criar etapas em formulários longos

Estruture formulários longos em etapas lógicas, com progresso claro, navegação previsível, dados preservados e revisão acessível.

Wireframe minimalista de um formulário longo organizado em três etapas
Nível de impácto
Alto
Status
Recomendado
Nível de evidênica
Forte evidência

Contexto

Depois que a equipe decide que um formulário realmente precisa de etapas, a estrutura do fluxo passa a determinar se a pessoa entende onde está, o que falta e como corrigir o que já informou. Uma boa etapa não é apenas um pedaço visual da página: ela representa um objetivo ou grupo de decisões, mantém a relação com as demais e permite avançar, voltar, revisar e retomar sem perder dados.

Esta regra explica como estruturar um formulário multietapas. A decisão de dividir ou manter o formulário em uma página está no padrão relacionado.

Organize cada etapa em torno de um objetivo ou grupo de decisões compreensível para a pessoa, e não apenas pela quantidade de campos. Mantenha juntos os campos que dependem uns dos outros e use títulos que expliquem o resultado daquela etapa.

Quando a sequência for linear, mostre claramente a etapa atual, as etapas concluídas e o que ainda falta. Use “Etapa X de Y” somente quando o total for confiável. Em fluxos condicionais, o número de etapas pode mudar; nesse caso, não prometa uma contagem fixa que a interface não consegue manter.

Mantenha o indicador de progresso separado da navegação. O indicador orienta; os botões permitem agir. Ofereça “Voltar” e “Continuar” com posição e comportamento previsíveis, e use um rótulo específico para a ação final, como “Revisar e enviar” ou “Concluir”.

Preserve os dados ao avançar, voltar, revisar ou retomar o formulário. Permita editar etapas concluídas quando isso for seguro e mostre um resumo antes do envio quando a tarefa tiver consequências importantes.

Valide os dados no momento em que a pessoa precisa corrigi-los, associe cada erro ao campo correspondente e mantenha as respostas válidas. Uma mudança de etapa não deve apagar o trabalho já realizado nem obrigar a pessoa a descobrir novamente onde errou.

Teste o fluxo com pessoas realizando a tarefa completa. Verifique se elas entendem a ordem, reconhecem o progresso, sabem voltar, recuperam erros e conseguem retomar o preenchimento em diferentes tamanhos de tela e tecnologias assistivas.

Captura do USWDS mostrando cinco etapas, com duas concluídas, uma atual e duas futuras
Exemplo real: o USWDS diferencia etapas concluídas, atual e futuras e informa a posição no fluxo. Isso exemplifica progresso claro em um processo linear. Fonte: https://designsystem.digital.gov/components/step-indicator/

Porque isso importa?

Etapas podem reduzir a quantidade de informação visível por vez, mas também acrescentam navegação, espera e incerteza. Por isso, um formulário multietapas não é automaticamente melhor do que um formulário em uma página.

As orientações da W3C recomendam dividir formulários longos em grupos lógicos, repetir instruções relevantes e comunicar o progresso. O USWDS recomenda o indicador para fluxos lineares com pelo menos três etapas de alto nível e separa o indicador dos controles de navegação. O Carbon Design System também orienta agrupar tarefas relacionadas, manter uma relação lógica entre campos e permitir salvar, voltar e revisar.

Essa recomendação precisa ser validada no contexto. Em um estudo com 20 profissionais de saúde, um formulário de página única teve melhor usabilidade e menor tempo médio do que versões multietapas e conversacional. O estudo avaliou uma tarefa e um contexto específicos, portanto não prova que formulários de página única sejam sempre superiores; mostra que adicionar etapas sem uma razão clara pode aumentar o esforço.

Pesquisas da Baymard sobre checkout chegam a uma conclusão semelhante para o comércio eletrônico: o esforço percebido e a quantidade de campos importam mais do que a quantidade isolada de etapas. A regra, portanto, é usar cada etapa para organizar uma parte real da tarefa, e não apenas para esconder campos.

  • O fluxo tem três ou mais grupos de alto nível e uma sequência compreensível.
  • Cada etapa tem um objetivo próprio e um título curto.
  • A pessoa se beneficia de saber o que já concluiu e o que falta.
  • Existem dependências entre decisões ou dados que tornam a ordem importante.
  • O produto consegue preservar, revisar e recuperar os dados preenchidos.
  • Pesquisas ou testes confirmam que a estrutura ajuda a concluir a tarefa.
  • O formulário é curto ou tem poucas seções relacionadas.
  • A pessoa precisa comparar campos de grupos diferentes ao mesmo tempo.
  • A divisão serve apenas para esconder campos desnecessários.
  • A quantidade de etapas muda, mas a interface promete um total fixo.
  • O produto não consegue preservar, voltar ou revisar respostas.
  • O indicador de progresso é usado como único mecanismo de navegação.
  • Uma decisão que deveria ser entendida em conjunto foi fragmentada sem motivo.
Captura do Wizard do Design System GOV.BR com quatro etapas e uma etapa atual
Exemplo real: o Wizard do GOV.BR combina painel de etapas, área de conteúdo e barra de navegação. Isso exemplifica um fluxo guiado com etapas relacionadas. Fonte: https://www.gov.br/ds/components/wizard?tab=designer

Recomendações

Faça

Práticas recomendadas
  • Agrupe por objetivo.
  • Dê um título claro a cada etapa.
  • Mostre a posição no fluxo.
  • Separe indicador e navegação.
  • Preserve e permita revisar os dados.
  • Teste o fluxo real.
Wireframe de formulário multietapas com progresso claro e navegação separada
Exemplo correto: três etapas amplas e lógicas, com o progresso separado da navegação e os campos relacionados concentrados na etapa atual.

Evite

Práticas a evitar
  • Dividir por quantidade de campos.
  • Fragmentar uma decisão.
  • Prometer um total instável.
  • Apagar dados ao voltar.
  • Usar o indicador como menu.
  • Esconder campos desnecessários.
Wireframe de formulário fragmentado em muitas etapas pequenas e sem progresso claro
Exemplo incorreto: muitas etapas pequenas fragmentam o fluxo, isolam os campos e não deixam claro qual etapa está ativa.
Captura do Carbon Progress indicator mostrando estados concluído, atual, incompleto e inválido
Exemplo real: o Carbon diferencia estados concluído, atual, incompleto e inválido no indicador. Isso exemplifica comunicação de progresso e estado no fluxo. Fonte: https://carbondesignsystem.com/components/progress-indicator/usage/

Acessibilidade

Use títulos semânticos para cada etapa e faça com que a etapa atual seja identificável por texto e estrutura, não apenas por cor ou posição. Quando o total for conhecido, informe a posição no título ou no cabeçalho da etapa, como “Etapa 2 de 4”.

Em um indicador semântico, use uma lista ordenada e identifique programaticamente o item atual com aria-current="step". Essa técnica da W3C é uma forma de implementação; ela não substitui a avaliação completa de acessibilidade nem é, sozinha, um requisito da WCAG.

Mantenha instruções necessárias disponíveis em todas as etapas, identifique etapas opcionais e permita ignorá-las quando isso fizer sentido. Evite limites de tempo rígidos; quando forem indispensáveis, ofereça uma forma de extensão. Garanta que botões, erros, avanço, retorno e a mudança de etapa funcionem com teclado, zoom e leitor de tela.

Checklist

  • A etapa representa um objetivo ou grupo de decisões?
  • Os campos relacionados permanecem juntos?
  • O título informa claramente o que fazer?
  • A etapa atual é identificável sem depender de cor?
  • O progresso informa o que foi concluído e o que falta?
  • O indicador está separado dos controles de navegação?
  • É possível voltar sem perder dados?
  • As respostas podem ser revisadas antes do envio?
  • Os erros permanecem associados aos campos?
  • O fluxo foi testado com teclado, zoom e leitor de tela?

Referências

W3C WAI. Multi-page forms. Orienta dividir formulários longos por grupos lógicos, repetir instruções relevantes, comunicar o progresso e preservar a orientação entre páginas. É a principal base normativa e de acessibilidade desta regra.

W3C WAI. ARIA26: Using aria-current to indicate current items in a set. Apresenta aria-current="step" para identificar programaticamente a etapa atual. A própria W3C classifica a página como técnica de implementação, não como requisito isolado de conformidade.

U.S. Web Design System. Step indicator. Recomenda o componente para fluxos lineares com três ou mais etapas de alto nível, orienta títulos curtos, posição atual, estado concluído e navegação separada. É uma referência de implementação governamental, não uma prova universal.

IBM Carbon Design System. Forms pattern. Recomenda agrupar tarefas relacionadas, manter uma ordem lógica e permitir salvar, voltar e revisar em formulários multietapas. A fonte também ressalta que não existe uma solução única para todos os contextos.

GOV.UK Design System. Structuring forms. Orienta começar com uma informação, decisão ou pergunta por página e usar pesquisa para decidir quando combinar páginas. É uma orientação de serviço contextual, não uma regra universal.

Iftikhar et al. Comparing Single-Page, Multipage, and Conversational Digital Forms in Health Care. JMIR Human Factors, 2021. Estudo controlado com 20 profissionais de saúde comparando três formatos; a versão de página única teve melhor desempenho naquela tarefa. A amostra e o contexto são específicos, portanto o resultado serve como alerta contra a fragmentação automática.

Baymard Institute. Checkout flow UX optimization e The number of form fields in checkout. Pesquisas de checkout sobre fluxo linear, progresso, retorno e esforço de preenchimento. São evidências específicas de comércio eletrônico e devem ser transferidas para outros contextos com cautela.

Design System GOV.BR. Step e Wizard. Exemplos brasileiros de indicador de progresso e fluxo guiado, com orientações sobre uso linear, etapas condicionais, navegação e risco de perda de dados ao cancelar.

CamaraUX. Quando dividir um formulário em várias etapas. Padrão relacionado da Biblioteca, dedicado à decisão de usar página única ou etapas.

Exemplo visual real: U.S. Web Design System. Step indicator. A captura mostra estados concluído, atual e futuro, além da posição da pessoa no fluxo. Serve como referência de implementação para progresso claro e navegação separada.

Exemplo visual real: Design System GOV.BR. Wizard. A captura mostra painel de etapas, área de conteúdo e barra de navegação em um fluxo guiado. Serve como referência de estrutura para etapas dependentes e revisão.

Exemplo visual real: Carbon Design System. Progress indicator. A captura mostra estados concluído, atual, incompleto e inválido em um processo linear. Serve como referência para comunicar estado e progresso sem depender apenas de cor.

Veja também

Esta recomendação foi útil para você?