Landing pages · GUIA PRÁTICO

Como mostrar progresso em formulário de várias etapas

Informe quantas etapas existem e em qual a pessoa está.

Mostre posição e etapa em texto

Um indicador percentual sozinho não informa o que a etapa pede nem se os dados foram preservados. Apresente “Etapa 2 de 4 — Entrega”, marque a etapa atual programaticamente e atualize a informação quando a pessoa avançar ou voltar.

<ol aria-label="Etapas do formulário">
  <li>Contato</li>
  <li aria-current="step">Entrega</li>
  <li>Pagamento</li>
  <li>Revisão</li>
</ol>
<p id="progresso" role="status" aria-live="polite" aria-atomic="true">
  Etapa 2 de 4: Entrega
</p>

A lista informa o percurso completo; o texto de status anuncia a mudança uma vez. Se não for apropriado anunciar de imediato, a etapa nova ainda deve ter um título claro e receber foco após a navegação.

Atualize o fluxo sem perder dados

  1. Agrupe campos por uma tarefa, dê a cada etapa um título e preserve os valores ao voltar.
  2. Ao selecionar “Continuar”, valide somente o conjunto visível. Se houver erro, não avance: mostre o resumo, mova o foco ao resumo ou ao primeiro campo inválido e associe mensagens aos controles.
  3. Se a etapa estiver válida, mostre o próximo fieldset, atualize aria-current="step", o texto “Etapa n de total” e a barra visual, se existir.
  4. Mova o foco para o título da etapa nova (tabindex="-1") para comunicar a mudança e permitir começar a leitura daquele contexto.
  5. Em “Voltar”, preserve valores e atualize indicador/foco da mesma forma. Não marque o formulário como concluído até o servidor confirmar o envio.
  6. Se houver salvamento automático, explique quais dados são guardados, em qual dispositivo/conta e por quanto tempo; permita retomar ou limpar.

Teste o percurso inteiro

Use apenas teclado e depois leitor de tela: avanço válido, campo inválido, volta, correção, retorno, recarga, falha do servidor e sucesso. Verifique se a pessoa ouve a nova etapa sem anúncio duplicado, se o indicador visual também tem texto, se os dados permanecem e se erros não ficam em etapas ocultas. Repita em viewport pequeno e zoom aumentado.

Uma barra visual complementar deve ter valor coerente, por exemplo <progress value="2" max="4">2 de 4</progress>, mas ainda mantenha a indicação escrita e o nome acessível.

Referências

Continue por aqui