Explore os comportamentos antes de definir a interface.
Design de Interação
Questionamentos que devem ser feitos ao se projetar componentes do tipo Dialogs.
Importante:
Dependendo do contexto de construção de
seus respectivos componentes, é possível que haja mais questionamentos, bem
como alguns dos apresentados aqui não ser necessários. A avaliação precisa
ser feita caso a caso.
Projetando para a "não interação"
- Antes de abrir o dialog é possível perceber qual ação abrirá a janela?
- O dialog é necessário para confirmar, coletar ou comunicar algo dentro do fluxo?
- O título do dialog descreve claramente sua finalidade?
Projetando para uso com mouse (qualquer dispositivo de apontamento)
- Há feedback visual ao acionar o controle que abre o dialog?
- O dialog deixa claros os controles disponíveis, como confirmar, cancelar ou fechar?
- A ação principal e a ação de cancelamento são visualmente distinguíveis?
Projetando para uso com gestos
- Controles internos possuem área tocável confortável?
- É possível fechar ou cancelar o dialog sem depender de gesto oculto?
- A leitura visual do dialog é possível sem competição com o fundo?
Projetando para uso com teclado (qualquer dispositivo que não seja de apontamento)
- Ao abrir, o foco vai para um ponto apropriado dentro do dialog?
-
TABeSHIFT+TABseguem ordem previsível? ESCfecha o dialog quando permitido?- Ao fechar, o foco retorna para o acionador ou ponto coerente do fluxo?
Projetando para uso com leitor de telas
- O dialog é anunciado com nome acessível?
- A descrição ou mensagem principal é anunciada quando necessária?
- O estado modal ou não modal é coerente com o comportamento real da interface?
Métodos de Interação
Possíveis métodos de interação em componentes do tipo Dialogs.
Importante:
Apenas os principais métodos estão
listados aqui. Componentes customizados devem ter estudos aprofundados.
Interação com mouse (qualquer dispositivo de apontamento)
- Clicar no acionador abre o dialog.
- Clicar nos controles internos executa as ações correspondentes.
- Fechamento por clique fora só deve existir quando não houver risco de perda de dados.
Interação com teclado (qualquer dispositivo que não seja de apontamento)
ENTERouSPACEaciona botões.TABnavega pelos controles disponíveis.ESCfecha o dialog quando essa ação for segura.
Interação com teclado (ou gestos) + leitor de telas
- O dialog deve ter nome acessível por título visível ou atributo apropriado.
- Dialogs modais devem impedir interação com o conteúdo de fundo.
- Alert dialogs devem comunicar mensagem e exigir resposta quando interrompem o fluxo.
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)). , Ref 2 (abre em uma nova aba).
Cenário: Considerando que estou em uma página que contém dialogs
Navegação por teclado
- QUANDO aciono o controle que abre o dialog
- VEJO que o dialog é exibido
- ENTÃO, quando uso
Tab - VEJO que o foco navega pelos controles do dialog
- ENTÃO, quando aciono confirmar, cancelar ou fechar
- VEJO que a ação correspondente acontece
Leitor de telas para desktop
-
Quando uso um leitor de tela no computador (NVDA, JAWS, VoiceOver) e
navego pelo componente
- OUÇO que o componente é um dialog quando ele é aberto.
- OUÇO seu título ou nome acessível.
- OUÇO a mensagem principal quando ela for essencial para decidir a ação.
- ENTÃO, quando interajo com o componente quando aplicável
- OUÇO ou percebo que a informação, estado, conteúdo ou ação correspondente está disponível.
Leitor de telas para dispositivos móveis
-
QUANDO uso um leitor de tela no celular (Talkback, VoiceOver) e deslizo o
dedo para navegar pelo componente, acontece o seguinte:
- OUÇO que o componente é um dialog quando ele é aberto.
- OUÇO seu título ou nome acessível.
- Consigo navegar pelos controles internos do dialog.
- ENTÃO, quando interajo com o componente quando aplicável
- OUÇO ou percebo que a informação, estado, conteúdo ou ação correspondente está disponível.
Pontos de Atenção
Pontos de atenção para se preocupar em componentes do tipo Dialogs.
- Dialog e Modal podem se sobrepor conceitualmente; esta página trata dialogs como padrão de mensagem ou decisão dentro do fluxo.
- Use alertdialog apenas quando a mensagem exigir atenção imediata e resposta da pessoa.
- Não marque um dialog como modal se o conteúdo de fundo ainda puder ser usado.
Referências
Referências adicionais sobre componentes do tipo Dialogs.
Importante:
A maior parte das referências estão na
plataforma do curso junto com as aulas citadas neste material.
Isenção de responsabilidade:
Os links indicados aqui
não são recomendações, mas apenas uma curadoria de referências onde você
pode encontrar componentes construídos. É importante ressaltar que não há
uma unificação nos formatos de construção e não há garantias de que os links
mencionados aqui cumpram todos os padrões de design. Dúvidas devem ser
direcionadas para as respectivas equipes envolvidas nas construções dos
materiais indicados. Antes de "copiar" algum modelo apresentado, leve em
consideração que todos os materiais são atualizados constantemente e que os
padrões (principalmente proprietários) podem sofrer alterações.
Padrões de Design
- W3C APG: Dialog Modal Pattern open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
- W3C APG: Alert and Message Dialogs Pattern open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
- Documentação de padrões HTML: The Dialog Element open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
Design System
- IBM Carbon - Modal open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
- Adobe Spectrum - Dialog open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
- Github Primer - Dialog open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)
- Bootstrap - Modal open_in_newlink externo - abre em uma nova janela (abre em uma nova aba)