espera aí...

21 de março de 2019

Regras para o preenchimento automático

A autocomplicação de texto com valores conhecidos parece ser um problema fácil de resolver, mas muitos UIs entendem errado. Eu vejo isso freqüentemente o suficiente para que, ao invés de reclamar sobre eles individualmente, eu ache que eu apenas escrevesse o conjunto de regras que eles geralmente quebram.

Pode haver casos em que algumas dessas regras não são a melhor coisa a fazer, mas deve haver uma boa razão para quebrar uma dessas regras (por exemplo, algumas dessas regras não se aplicam se um campo tiver que ser preenchido com um valor de um conjunto fixo, como a lista de estados dos EUA). Seguir estas regras deve sempre resultar em pelo menos uma experiência sensata:

  • Jogos exatos sempre vêm em primeiro lugar. Se o usuário digitar uma opção exatamente, outras opções devem sempre ficar abaixo da que corresponde ao que foram digitadas.
  • Além de correspondências exatas, as correspondências de prefixo vêm em primeiro lugar. Se eu digitar “Fr”, eu quero “Fresno” e não “San Francisco”.
  • Após as correspondências de prefixo, ele pode retornar às correspondências de substring. Começar com correspondências de substring quase sempre seria a coisa errada a fazer, já que os usuários começam a digitar palavras no início, não em algum lugar no meio.
  • Se não houver correspondências de substring, pode opcionalmente retornar à correspondência de subsequência. Isso é útil apenas em alguns casos.
  • Se não houver correspondências de subsequência / substring, pode opcionalmente voltar a corresponder a correspondências. Isso raramente é necessário para fornecer.
  • As correspondências devem ser classificadas alfabeticamente.
  • Quando uma opção é o prefixo de outra, coloque a mais curta primeiro .
  • A correspondência provavelmente deve ser insensível a maiúsculas e minúsculas, a menos que haja duas opções que diferem apenas por maiúsculas e minúsculas. Nesse caso (trocadilho intencional), prefira aquele que mais se aproxima da entrada do usuário.
  • A ação para fazer uso da seleção (por exemplo, para pesquisar o termo) deve ser uma chave diferente da ação para aceitar a primeira sugestão, a menos quevocê tenha que fazer algo primeiro para começar a usar sugestões de preenchimento automático (por exemplo, pressione a seta para baixo). O usuário nunca deve ter etapas adicionais para não usar o preenchimento automático.
  • A tecla tab deve sempre aceitar a opção de preenchimento automático atual, se houver uma (se estiver destacada em uma lista suspensa ou sugerida em linha).
  • Se uma seleção de preenchimento automático estiver destacada, pressionar Enter deve sempre fazer uso dessa seleção. Ele nunca deve reverter para uma seleção padrão, mesmo se parte da página estiver sendo carregada. Se algo ainda estiver sendo carregado, é melhor ignorar a digitação do que navegar para o destino errado.
  • O preenchimento automático quase nunca deve ser ativado nas teclas pressionadas quando o campo que usa o preenchimento automático não estiver focalizado.
  • Os resultados devem chegar em <100ms no caso comum.
  • Não há problema em pausar o preenchimento automático quando o usuário está rapidamente digitando letras adicionais, mas não mostra resultados no meio da sequência de letras depois que o usuário termina de digitar. É melhor esperar mais e alterar os resultados uma vez do que mostrar resultados que parecem acabados, mas não são. (Eu admito que essa regra é bem subjetiva.)
  • Se uma opção estiver destacada, nunca a altere, mesmo que novos dados sejam carregados.

Existem alguns recursos opcionais que fazem sentido em determinados tipos de autocompletar e não em outros. Tenho certeza de que há mais nomes corretos para esses recursos do que o que listei.

  • Mostrar opções que usei antes quando focalizo o campo, mas ainda não inseri nada.
  • Autocompletar para o prefixo ambíguo mais próximo. Se eu digitar “g” e corresponder tanto a “Google” como a “GoodReads”, essa operação preencherá os dois “o” s, permitindo que eu digite “g” ou “d” para selecionar a opção desejada.
  • Correspondência multipartes. Isso é útil para o preenchimento automático de caminhos de arquivos, onde eu posso inserir “e / b / a” para preencher automaticamente “env / bin / activate”. ZSHfaz isso bem.
  • Correspondência recursiva. Como o preenchimento automático às vezes serve a um propósito duplo como uma maneira rápida de procurar opções, às vezes você deseja começar com um filtro amplo e pesquisar nesses resultados. Por exemplo, se eu digitar “.pdf” para ver todos os arquivos pdf, eu posso pressionar algumas teclas (talvez vírgula) para começar a pesquisar dentro desses resultados, embora o que eu esteja digitando realmente apareça no nome antes do que eu digitei anteriormente .
  • Correção ortográfica. Isso costuma ser útil nos mecanismos de pesquisa.
  • Aliases. Ao tentar preencher automaticamente um nome de usuário, o primeiro / último nome da pessoa pode ter permissão para completar automaticamente o seu nome de usuário. O mesmo vale para as abreviaturas do estado que sugerem o estado completo.
  • Informações adicionais nos resultados. Se você estiver preenchendo automaticamente os nomes das funções, é bom ver uma lista dos argumentos que eles tomam.
  • Sugestões sensíveis ao contexto. Isso é útil ao preencher automaticamente o código ou uma palavra (geralmente em um telefone celular), onde o contexto é muito preditivo do provável resultado.
  • Tornar possível voltar ao que escrevi depois de aceitar uma sugestão de autocompletar. (A tecla de seta para cima tende a ser uma boa maneira de permitir isso.)
Posted in Blog
Write a comment