# Janela modal

Na área de design de interfaces web, uma janela modal, ou simplemente modal, é um elemento de controle gráfico subordinado à janela principal de uma aplicação.
A janela modal cria um modo que desabilita a interação do usuário com a janela principal, mas a mantém visível, com a janela modal como uma janela filha na frente dela. Os usuários devem interagir com a janela modal antes de retornar à janela mãe. Isso evita a interrupção do fluxo de trabalho na janela principal. As janelas modais às vezes são chamadas de janelas pesadas (heavy windows) ou caixas de diálogo modais (modal dialogs) porque geralmente exibem uma caixa de diálogo.
As interfaces de usuário normalmente usam janelas modais para controlar a atenção do usuário e exibir estados de emergência, embora alguns designers de interação argumentem que elas não são eficazes para esse uso.
Na Web, eles geralmente mostram imagens em detalhes, como as implementadas pelo módulo de Javascript Lightbox, ou são usadas para mostrar pop-ups.
O sistema oposto ao uso de modais é o modeless. As janelas modeless não bloqueiam a janela principal, permitindo ao usuário alternar o foco entre elas.

## Relevância e uso

O uso das janelas modais inclui:
* Chamar a atenção para informações importantes, um uso considerado ineficaz pois os usuários, bombardeados com muitas caixas de diálogo, habituam-se a simplesmente clicar em "Fechar", "Cancelar" ou "OK" sem ler ou entender a mensagem.
* Bloquear o fluxo da aplicação até que as informações necessárias sejam inseridas, como a entrada de uma senha durante o fluxo de login. Outro exemplo são as caixas de diálogo de arquivo para abrir, salvar e carregar arquivos em um site.
* Coletar do usuário as opções de configuração em uma caixa de diálogo centralizada.
* Avisar que os efeitos da ação atual são irreversíveis. Este é um padrão de interação frequente para diálogos modais, apesar de também ser criticado devido à habituação . Eles recomendam tornar a ação reversível (oferecendo uma opção "desfazer").

## Controle do fluxo de interação

Janelas modais são comuns em toolkits para interfaces gráficas de usuário para orientar o fluxo de trabalho. Alan Cooper diz que a importância de atender às questões importantes justifica a restrição da liberdade do usuário.

### Problemas

Uma janela modal bloqueia todos os outros fluxos de trabalho no programa até que a janela modal seja fechada, ao contrário das caixas de diálogo modeless que permitem que os usuários operem com outras janelas. As janelas modais têm como objetivo captar a atenção completa do usuário. Os usuários podem não reconhecer que uma janela modal requer sua atenção, o que pode levar à confusão sobre o motivo do travamento da janela principal. Em casos graves, a janela modal aparece atrás de outra janela controlada pelo mesmo programa, potencialmente deixando todo o programa sem resposta até que a modal possa ser localizada manualmente.
Em resposta aos problemas, os designers de interface tomaram medidas para tornar as janelas modais mais óbvias, por exemplo escurecendo o fundo atrás da janela ou permitindo que qualquer clique do mouse fora da janela modal force o fechamento da janela modal – um design chamado de Lightbox. Jakob Nielsen afirma que a vantagem dos diálogos modais é que eles melhoram a percepção do usuário sobre as tarefas: "Quando algo precisa ser corrigido, é melhor garantir que o usuário saiba disso".