# Finestra modale

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.

## Utilizzi notevoli
### Casi di utilizzo

Ecco alcuni casi frequenti di utilizzo delle finestre modali:
* Concentrare l'attenzione su parti essenziali di informazione. Questo utilizzo è stato pesantemente criticato come inefficace perché gli utenti sono bombardati con troppe finestre di dialogo, e sono abituati a cliccare semplicemente "Chiudi", "Annulla" o "OK" senza leggere e capire il messaggio.
* Bloccare il flusso dell'applicazione finché non viene inserita l'informazione necessaria per continuare, come ad esempio una password nell'operazione di login. Un altro esempio sono i dialoghi di apertura e di salvataggio dei file in un'applicazione.
* Raccogliere le opzioni di configurazione di un'applicazione in un unico dialogo. In questi casi, i cambiamenti sono applicati alla chiusura del dialogo, e l'accesso all'applicazione è disabilitato durante la modifica delle opzioni.
* Avvertire che gli effetti dell'azione in corso non sono reversibili. Questo è un frequente pattern di interazione utilizzato per le finestre modali, ma è anche criticato dagli esperti, che lo ritengono inefficace per proteggere l'utente dagli errori durante azioni distruttive, a causa dell'abitudine. È invece raccomandato rendere – se possibile – l'azione reversibile (fornendo ad esempio un comando "Annulla").

### "Fogli" modali in OS X

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.

## Critiche

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.

## Controllo del flusso di interazione

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.

### Interruzioni inaspettate

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.

## Raccomandazioni di design

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.