
Nella progettazione delle interfacce utente, una finestra modale è una finestra "figlia" che richiede all'utente di interagire con essa prima di ritornare ad operare con la finestra "madre", impedendo la prosecuzione del flusso di lavoro sulla finestra principale dell'applicazione in esecuzione. Le finestre modali sono spesso chiamate "finestre pesanti" o dialoghi modali perché spesso la finestra è una finestra di dialogo.
Le finestre modali sono comunemente usate nei sistemi GUI per ottenere l'attenzione dell'utente e per visualizzare stati di emergenza, sebbene i critici sostengono che esse siano inutili a tal scopo.
Sul web, esse sono spesso utilizzate per mostrare le immagini in dettaglio.
Ecco alcuni casi frequenti di utilizzo delle finestre modali:
Molte funzioni che verrebbero tipicamente rappresentate da finestre modali sono implementati come pannelli transitori modali, che in macOS sono chiamati "fogli" (sheets).
Le finestre transitorie si comportano in modo simile alle finestre modali: sono sempre "sopra" la finestra madre e non sono visualizzati nell'elenco delle finestre, ma non impediscono l'utilizzo delle altre finestre dell'applicazione. I fogli "scivolano" fuori dalla barra del titolo della finestra, e di solito bisogna interagire con essi prima di continuare ad usare la finestra, ma il resto dell'applicazione rimarrà utilizzabile.
Una finestra modale blocca tutto il flusso di lavoro nel programma finché essa non viene chiusa, al contrario dei dialoghi modeless che permettono agli utenti di operare con le altre finestre.
Le finestre modali sono progettate per ottenere la piena attenzione dell'utente. Gli utenti potrebbero non accorgersi che una finestra modale richiede la loro attenzione. Ciò può ingenerare confusione, perché la finestra principale non risponde ai comandi, o può anche causare la perdita dei dati inseriti dall'utente, destinati alla finestra principale.
Comunque, molti progettatori di interfacce hanno preso delle misure per rendere le finestre modali più semplici e user friendly oscurando lo sfondo dietro la finestra o facendo in modo che ogni click al di fuori della finestra modale la faccia chiudere – design chiamato Lightbox – alleviando così questi problemi. Jakob Nielsen afferma, in difesa dei dialoghi modali, che migliorano la consapevolezza dell'utente: "Quando qualcosa ha bisogno di essere sistemato, è meglio assicurarsi che l'utente lo sappia". Per raggiungere questo obiettivo, il design Lightbox fornisce un forte contrasto del dialogo sul resto dell'interfaccia. Questa tecnica è attualmente usata comunemente nello sviluppo di siti web.
Le finestre modali sono parte integrante dei toolkit GUI comuni e sono utilizzate frequentemente nel design delle interfacce. Siccome troppi dialoghi modeless attivi possono portare in confusione l'utente, i sostenitori delle finestre modali puntano a ridurre la quantità di input richiesto dall'utente nello stesso tempo. Ciò può ridurre la confusione, minimizzando l'eventualità di un errore a causa delle troppe finestre modeless aperte contemporaneamente.
L'esperto di usabilità Alan Cooper confuta queste affermazioni sostenendo che sia sbagliato restringere le azioni dell'utente per favorire l'usabilità, poiché questo frustra inutilmente l'utente stesso. L'utente inserisce il proprio input comunque un pezzo per volta, siccome l'inserimento richiede comunque una certa attenzione. Gli utenti possono gestire insiemi complessi di informazioni – purché esse vengano presentate in un design logico e ben strutturato – effettuando una lettura preliminare e concentrando la propria attenzione sullo strumento richiesto per completare un obiettivo; gli obiettivi complessi richiederanno di spostare l'attenzione continuamente da un punto all'altro.
Le finestre di avviso che appaiono all'improvviso sono i principali responsabili degli errori dovuti al cambiamento di contesto con conseguenze potenzialmente gravi. I professionisti dell'usabilità raccomandano di rendere reversibili – quando possibile – le azioni pericolose; una finestra di avviso che appare senza preavviso o che viene chiusa d'abitudine non impedirà di effettuare un'azione pericolosa. Una barra di informazione modeless è considerata preferibile ad una finestra di dialogo poiché essa non interrompe le attività dell'utente, ma permette all'utente di leggere ulteriori informazioni.
Un approccio proposto è quello di progettare ogni elemento di input come un'interazione auto-contenuta e orientata al compito da svolgere, guidata dai suoi propri requisiti piuttosto che dallo stato globale dell'applicazione. Per esempio, gli elementi obbligatori possono essere preceduti da un asterisco, gli elementi con dati non validi possono avere un bordo rosso, e così via. Con questo approccio, gli utenti traggono beneficio dal vedere più elementi alla volta: possono inserire i dati in maniera sensata, invece di avere tutti gli altri elementi bloccati finché non si completa una sequenza predefinita di inserimento dei dati.
I dialoghi modali sono parte del flusso di lavoro di un task, e si raccomanda di posizionarli al centro dell'attenzione di tale flusso. Per esempio, una finestra può essere posizionata nelle prossimità dell'elemento di controllo che la attiva.
L'utilizzo di uno sfondo scuro semi-trasparente può oscurare le informazioni nella finestra principale, dunque tale soluzione è consigliata solo nei casi dove tali informazioni possano essere fonte di distrazione.
Il design dell'interfaccia deve seguire le convenzioni standard della piattaforma usata. Microsoft Windows usa dei controlli standard per le finestre di dialogo con i pulsanti "affermativi" in basso a destra. macOS usa i "fogli" modali con i pulsanti "affermativi" a destra.