- A UI de notificações Toast não é mais recomendada no GitHub devido a problemas de acessibilidade
- A estrutura de notificação temporária que desaparece automaticamente pode correr o risco de violar critérios de acessibilidade visuais e funcionais (WCAG)
- O GitHub apresenta banners e diálogos como alternativas de feedback persistente e acessível
- Toasts também incluem vários problemas de usabilidade, como telas grandes, multitarefa e o fenômeno de ignorar banners
- Para acessibilidade e uma experiência de usuário consistente, o uso de Toasts foi descontinuado em todo o sistema de design Primer
Visão geral dos Toasts
- Toasts são pequenas janelas de notificação retangulares que aparecem por pouco tempo no canto inferior da tela, acionadas por ações do usuário ou do sistema
- Como desaparecem automaticamente após certo tempo, têm problemas inerentes de acessibilidade e usabilidade
- Por esses motivos, o GitHub recomenda formas de comunicação mais estáveis e acessíveis
Alternativas aos Toasts
- É necessário escolher a UI adequada conforme o objetivo de uso
- Notificações simples de sucesso podem ser confirmadas pela própria tela de resultado, sem feedback adicional
- Trabalhos mais complexos podem comunicar o estado de sucesso com banners ou exibição progressiva de conteúdo
- Operações com falha devem fornecer informações de erro por meio de banners ou diálogos
- No caso de envio de formulários, formulários simples não precisam de confirmação extra; formulários complexos podem usar uma página intermediária de confirmação ou um banner
- Para validação de entrada, usar os componentes de validação de formulários já existentes no Primer
- Tarefas de longa duração devem comunicar a conclusão por meio de banners ou outros canais, como e-mail e notificações push
- Quando ocorrer dessincronização de sessão, usar diálogos ou banners para informar a necessidade de recarregar
Considerações de acessibilidade (Accessibility Considerations)
- A UI de Toast pode violar vários critérios de sucesso da WCAG
- 2.2.1 Timing Adjustable (A) : deve permanecer até que o usuário a feche manualmente
- 1.3.2 Meaningful Sequence (A) : divergências entre a ordem no DOM e a ordem visual podem causar confusão para quem usa tecnologias assistivas
- 2.1.1 Keyboard (A) : deve ser possível controlar interações dentro do toast com o teclado
- 4.1.3 Status Messages (AA) : sua presença deve ser comunicada às tecnologias assistivas de forma não intrusiva
- Critérios com possibilidade adicional de violação
- 1.4.4 Resize text (AA) : ao ajustar o tamanho do texto, há risco de encobrir a tela ou causar overflow
- 1.4.10 Reflow (AA) : é necessário garantir acessibilidade por teclado quando houver rolagem horizontal
- 2.4.3 Focus Order (A) : pode haver confusão na ordem de foco
- 3.2.4 Consistent Identification (AA) : é necessário manter consistência no código
Considerações de usabilidade (Usability Considerations)
- Em telas grandes, o toast pode ficar fora do campo de visão e passar despercebido
- Com o desaparecimento automático, há risco de o usuário perder a mensagem enquanto faz outra tarefa
- Obstrução da UI: o toast pode cobrir elementos importantes, como botões na parte inferior
- Usuários com zoom na tela podem não ver toasts fora da área ampliada
- Problema de memória de trabalho: como desaparece automaticamente, não é possível revisar a informação depois
- Fenômeno de ignorar banners: com uso excessivo, usuários tendem a ignorá-los
- Inconsistência de posição: a distância física entre a UI que acionou a notificação e o toast pode gerar confusão sobre a relação entre ambos
- Fechamento incorreto: a tecla Esc pode acabar fechando também outras UIs
Materiais de referência adicionais
1 comentários
Comentários do Hacker News
toast()globalmente, há tendência de abuso, mas foi sugerido que uma estrutura comouseAlerts()é muito melhor