Se você é um botão, você tem uma única função

Comportamento de botão, buffering e “uma única função”

  • Muitos argumentam que um botão deve executar sua ação uma vez para cada toque que a interface reconhece (visual/háptico/áudio). Dar feedback e depois ignorar a ação é visto como uma falha central.
  • O padrão criticado: animações que bloqueiam o processamento de toques subsequentes, de modo que toques múltiplos rápidos em um botão de rotação desaparecem em parte ou totalmente.
  • Outros observam que botões muitas vezes de fato têm várias responsabilidades: comunicar o que farão, refletir o estado atual (modos alternáveis), reconhecer a entrada e, às vezes, mostrar progresso.
  • Debate sobre quando é aceitável ignorar a entrada: durante mudanças de layout, para evitar toques errados em controles deslocados, ou após ações destrutivas.

Debouncing, toques repetidos e acessibilidade

  • Vários apontam toques duplos acidentais, tremores ou “over-clicks” como problemas reais; alguns usuários podem querer que repetições sejam ignoradas uma vez que a intenção esteja “travada”.
  • Outros contrapõem que, se você fizer debouncing/ignorar toques, não deve dar feedback positivo por eles.
  • Sugestões:
    • Desativar ou “travar” visualmente um botão enquanto uma ação em andamento é concluída.
    • Oferecer opções em todo o sistema como o “Ignore Repeats” do iOS, em vez de embutir heurísticas por aplicativo.
    • Tratar estados de erro (por exemplo, senha incorreta) como interrupções rígidas que limpam a entrada em buffer.

Animações: valor vs dano

  • Há um sentimento forte de que o iOS/Android moderno abusa de animações, fazendo as UIs parecerem lentas ou sem resposta e, às vezes, bloqueando a entrada.
  • Alguns ainda veem valor quando a animação esclarece o que mudou (por exemplo, ver uma imagem girar ajuda a interpretar a orientação).
  • Princípios propostos:
    • Animações devem ser interrompíveis e nunca controlar a lógica.
    • Elas existem para apoiar a função (clareza, mascarar latência real), não como um fim em si mesmas.
    • Fornecer opções globais para “reduzir/desativar animações”.

Temas mais amplos de UX e design

  • Reclamações sobre UI flat e redesenhos constantes: mais difícil distinguir controles de conteúdo, menor contraste, usuários obrigados a reaprender interfaces.
  • Contraponto: UIs flat podem funcionar bem se os affordances básicos (botões claros, feedback, contraste, consistência) forem respeitados.
  • Softwares antigos e conjuntos simples de widgets são elogiados por serem mais rápidos e confiáveis sob restrições.

Analogias de hardware e embarcados

  • Longo subthread sobre debouncing de botões físicos, condições de corrida e como o mau tratamento de entrada causou falhas no mundo real.
  • Tema recorrente: o acoplamento rígido entre feedback e estado real é essencial; caso contrário, os usuários não conseguem confiar na interface.