Explore os comportamentos antes de definir a interface.
Guia rápido para designers
Sempre avalie o contexto da aplicação, mesmo com a orientação tendo um padrão. Design de interação documenta a intenção. O funcionamento deve ser verificado na implementação.
Quando usar
Use para informar termos e encontrar conteúdo.
O que desenhar
Mostre rótulo, campo, resultados e ausência de resultados. Inclua Buscar e Limpar busca quando usados.
Como se comporta
Defina se a busca ocorre ao enviar ou durante a digitação. Limpar esvazia o campo sem enviar e permite continuar editando.
O que documentar no Figma
Registre o envio, a limpeza e como comunicar resultados sem mover o foco inesperadamente nem anunciar cada tecla.
Como revisar
Confira se o objetivo e os estados são claros em telas pequenas e grandes, com ampliação. Verifique os comportamentos documentados na implementação, incluindo teclado e leitor de telas quando aplicáveis.
Orientações completas
Design de Interação
Questionamentos que devem ser feitos ao projetar componentes do tipo Input "search".
Avalie cada orientação conforme o contexto de uso do componente.
Projetando para a "não interação"
- O rótulo permanece visível e explica a finalidade do campo?
- Instruções, obrigatoriedade e limites estão disponíveis antes da entrada?
- Estados vazio, preenchido, inválido, desabilitado e somente leitura são distinguíveis sem depender apenas de cor?
Projetando para uso com mouse
- Clicar no campo ou no rótulo associado posiciona o foco para digitar?
- O foco e os controles associados têm feedback visual perceptível?
Projetando para uso com gestos
- A área de toque permite selecionar o campo e seus controles sem acionamentos acidentais?
- O teclado virtual e a ampliação permitem continuar vendo e editando o campo?
Projetando para uso com teclado
TabeShift + Tabpercorrem os controles na ordem da interface?- É possível editar e selecionar texto com os comandos nativos, sem prender o foco?
Projetando para uso com leitor de telas
- Nome, tipo, obrigatoriedade, instruções e erros são apresentados de forma compreensível?
- O rótulo está associado ao campo e permanece disponível depois de preencher?
Métodos de Interação
O campo usa type="search" e apresenta um rótulo que explica o que será pesquisado.
Interação com mouse
- Clicar no campo ou no rótulo associado coloca o foco no campo.
- Selecionar, editar, copiar e colar segue o comportamento nativo do campo.
Interação com teclado
Tabmove o foco para o campo;Shift + Tabretorna ao controle anterior.- Digitação insere texto;
setas,Home,Ende comandos de seleção e edição seguem a plataforma. Entersegue a ação de envio definida para o formulário; o campo não cria uma nova linha.
Interação com gestos
- Tocar no campo ou no rótulo permite editar com o teclado virtual.
- A seleção e edição de texto seguem os gestos disponíveis na plataforma.
Interação com teclado (ou gestos) + leitor de telas
- Ao navegar até o campo, o leitor apresenta seu rótulo e tipo, além de estados e instruções associados.
- Erros são associados ao campo e explicam como corrigir a informação; o valor digitado é preservado.
Acionar e limpar a busca
Enterenvia a pesquisa quando esse for o modo definido; o botão "Buscar", quando presente, também permite enviá-la.- O controle "Limpar busca", quando presente, esvazia o campo sem enviar o formulário e permite continuar a edição.
- Comunicar a quantidade de resultados ou a ausência deles sem deslocar o foco inesperadamente.
Gherkin
Metodologia BDD (Behavior-Driven Development ou Desenvolvimento Orientado ao Comportamento) com foco em 3 pilares: Histórias de Usuário, Critérios de Aceite e Sintaxes Gherkin (Dado (Given), Quando (When), Então (Then)).
Cenário: Considerando que estou em uma página que contém Input "search"
Navegação por teclado
- QUANDO uso a tecla
Tabpara mover o foco para o campo - O foco que VEJO é fortemente indicado visualmente
- ENTÃO, quando digito, seleciono ou edito o conteúdo com os comandos nativos
- VEJO que o valor do campo é atualizado
- E, quando uso
TabouShift + Tab, VEJO que o foco segue a ordem da página, sem ficar preso no campo
Leitor de telas para desktop
-
QUANDO uso um leitor de tela no computador (NVDA, JAWS, VoiceOver) e uso a tecla
Tabpara mover o foco para o campo, acontece o seguinte:- OUÇO o rótulo e a finalidade do campo.
- OUÇO que o componente é um campo de busca.
- OUÇO a obrigatoriedade, as instruções e os erros associados, quando existirem.
- ENTÃO, quando digito ou edito o conteúdo com os comandos nativos
- OUÇO ou percebo que posso editar o campo e que seu valor foi atualizado.
Leitor de telas para dispositivos móveis
-
QUANDO uso um leitor de tela no celular (Talkback, VoiceOver) e deslizo o dedo para focar no campo, acontece o seguinte:
- OUÇO o rótulo e a finalidade do campo.
- OUÇO que o componente é um campo de busca.
- OUÇO a obrigatoriedade, as instruções e os erros associados, quando existirem.
- ENTÃO, quando eu toco duas vezes ou uso o gesto adequado para ativar o campo e editar seu conteúdo
- OUÇO ou percebo que posso editar o campo e que seu valor foi atualizado.
Validação da entrada
- QUANDO uma entrada é rejeitada por uma regra de validação informada
- VEJO uma mensagem associada ao campo que explica como corrigir a informação
- E, quando navego até o campo com leitor de telas, OUÇO a indicação de erro e a orientação associada
- ENTÃO, quando volto a editar, VEJO que o valor foi preservado para correção
Acionamento da busca
- QUANDO informo um termo e aciono a busca conforme o modo definido
- VEJO os resultados ou uma mensagem de ausência de resultados
- E, quando uso leitor de telas, OUÇO ou percebo o retorno da busca sem deslocamento inesperado do foco
Pontos de atenção
- Usar um rótulo persistente associado ao input. Placeholder é uma dica complementar e não substitui o rótulo.
- Associar instruções e erros ao campo, por exemplo com aria-describedby, e marcar aria-invalid quando houver erro.
- Informar a obrigatoriedade e usar required quando necessário. Não comunicar erros apenas por cor.
- Manter foco visível e garantir contraste e área de interação adequados.
- Definir se a busca ocorre ao enviar ou durante a digitação. Em busca dinâmica, preservar o foco e comunicar os resultados sem anunciar cada tecla; permitir limpar e tratar resultados vazios.
Referências
Documentação do campo
Design System
- Carbon — Search open_in_new (link externo, abre em uma nova aba) — Componente específico para entrada de termos de busca.
- USWDS — Search open_in_new (link externo, abre em uma nova aba) — Campo e botão para acionar uma busca.