In informatica, una finestra di dialogo è un controllo grafico (widget) che permette a computer ed utente di comunicare fra loro tramite la visualizzazione di informazioni, la richiesta di comandi o entrambe.

Utilizzo La dialog box è solitamente utilizzata per fornire all'utente gli strumenti per specificare come eseguire un comando, per rispondere ad una domanda o ad un "alert". Il tipo più semplice di è l'avviso, che visualizza un messaggio e richiedere un semplice riconoscimento che il messaggio è stato letto, di solito facendo clic su "OK"; in altri casi viene richiesta una decisione su un'azione da intraprendere, facendo clic su "OK "o "Annulla". Talvolta gli avvisi sono utilizzati anche per visualizzare una "disdetta", come nel caso della chiusura sia un intenzionale o non intenzionale di un'applicazione o del sistema operativo.

Inserimento dati Le finestre di dialogo sono pensate per essere finestre piccole e transitorie che non richiedono un'interazione approfondita da parte dell'utente, quindi è importante assicurarsi che l'immissione dei dati sia efficiente. È doveroso:

Fornire valori predefiniti per controlli e campi, ove possibile. È più facile per un utente verificare le informazioni che inserirle da zero. Impostare lo stato attivo iniziale sulla prima posizione che accetta l'input dell'utente. In questo modo l'utente può iniziare a inserire i dati immediatamente, senza dover fare clic su un elemento specifico come un campo di testo o un elenco. Rendere selezionabile il testo statico. Ad esempio, l'utente dovrebbe essere in grado di copiare informazioni utili, come un messaggio di errore, un numero di serie o un indirizzo IP da incollare altrove. Verificare la presenza di errori durante l'immissione dei dati. Invece di attendere e visualizzare un avviso quando l'utente tenta di chiudere una finestra di dialogo, verificare la presenza di errori durante l'immissione dei dati in modo che l'utente possa risolvere il problema nel contesto. Quando possibile, ridurre al minimo il potenziale di input non valido. Ad esempio, utilizzare i pulsanti a comparsa per fornire scelte piuttosto che chiedere all'utente di inserire dati e utilizzare selettori di data e formattatori di numeri per garantire che le date e i numeri siano inseriti correttamente.

Utilizzare un disclosure control per fornire informazioni ulteriori. Un disclosure control nasconde informazioni o funzionalità, come le opzioni avanzate, e le rivela solo quando l'utente fa clic sul controllo. Considerare l'inclusione di un pulsante "Applica" che consenta all'utente di visualizzare in anteprima le modifiche prima di impegnarsi. Esso ha senso in una finestra di dialogo non modale per le modifiche che possono essere applicate, visualizzate in anteprima e annullate rapidamente. Le finestre di dialogo di salvataggio e altre finestre di dialogo che consentono agli utenti di apportare modifiche che non possono essere visualizzate facilmente in anteprima non dovrebbero includere un pulsante "Applica". Assicurarsi che gli elementi dell'interfaccia scalino correttamente quando una finestra di dialogo viene ridimensionata. Separare i pulsanti distruttivi dai pulsanti non distruttivi. I pulsanti distruttivi, come "Non salvare", dovrebbero essere abbastanza lontani da pulsanti sicuri, come Salva e Annulla.

Chiusura della finestra di dialogo

Fornire un pulsante predefinito solo quando l'azione più probabile dell'utente è innocua. Gli utenti a volte premono Invio semplicemente per chiudere una finestra di dialogo, senza leggerne il contenuto, quindi è fondamentale che un pulsante predefinito avvii un'azione innocua. Quando non è presente alcun pulsante predefinito, la pressione di Invio non dovrebbe avere alcun effetto; l'utente dovrebbe fare clic esplicitamente su un pulsante per chiudere la finestra di dialogo. In alternativa, quando una finestra di dialogo può provocare un'azione distruttiva, Annulla può essere impostato come pulsante predefinito. Fornire un pulsante predefinito solo quando il tasto Invio non è già utilizzato dai campi di testo nella finestra di dialogo. Avere due comportamenti per una chiave crea confusione e rende l'interfaccia meno prevedibile. L'utente potrebbe premere Invio troppe volte e attivare inavvertitamente il pulsante predefinito. Includere un pulsante Annulla che risponda alle scorciatoie da tastiera standard per l'annullamento. Un pulsante Annulla fornisce un modo chiaro e sicuro per uscire da una finestra di dialogo e riporta il computer allo stato in cui si trovava prima della visualizzazione della finestra di dialogo. Assicurarsi che la scorciatoia da tastiera Command-period e il tasto Esc (Escape) siano mappati al pulsante Annulla. Assicurarsi che un pulsante Annulla annulli tutte le modifiche applicate. Utilizzare i pulsanti Applica, OK e Annulla. Fare clic su Applica anteprime cambia ma non chiude la finestra di dialogo. Facendo clic su OK si conferma l'intenzione di accettare eventuali modifiche e si chiude la finestra di dialogo. Facendo clic su Annulla si annullano le modifiche applicate e si chiude la finestra di dialogo. Assicurarsi che le azioni di dialogo avvengano rapidamente. In generale, l'utente dovrebbe vedere risultati quasi immediati dopo aver avviato un'azione da una finestra di dialogo. Per azioni che richiedono più di un paio di secondi per essere completate, visualizzare le informazioni sull'avanzamento in modo che l'utente sappia che l'azione è stata avviata, quanto tempo impiegherà e quando sarà completata.

Classificazione Le finestre di dialogo vengono distinte in modali e non modali, a seconda se l'interazione con il software viene bloccata o meno all'inizializzazione del dialogo.

Le finestre di dialogo modali (modal, in inglese) bloccano l'esecuzione del programma che potrebbe richiedere alcune informazioni aggiuntive prima di poter continuare, o può semplicemente richiedere di confermare un'azione potenzialmente dannosa. Le finestre di dialogo modali sono generalmente considerate come cattive soluzioni di progettazione in quanto tendono a produrre errori.

Le finestre di dialogo non modali (non-modal o modeless, in inglese) vengono utilizzate quando l'informazione richiesta non è essenziale per continuare, e così la finestra può essere lasciata aperta mentre si continua a lavorare altrove. In generale, una buona progettazione del software richiede finestre di questo tipo.

Le finestre di dialogo sono classificate come "modali" o "non modali", a seconda che blocchino l'interazione con il software che ha avviato la finestra di dialogo. Il tipo di finestra di dialogo visualizzata dipende dall'interazione dell'utente desiderata.

Il tipo più semplice di finestra di dialogo è l'avviso, che visualizza un messaggio e può richiedere una conferma che il messaggio è stato letto, di solito facendo clic su "OK", o una decisione se un'azione deve procedere o meno, facendo clic su "OK "o" Annulla". Gli avvisi vengono utilizzati anche per visualizzare un "avviso di terminazione", a volte che richiede la conferma della lettura dell'avviso, in caso di chiusura intenzionale o involontaria ("arresto anomalo") di un'applicazione o del sistema operativo. (Ad esempio "Gedit ha riscontrato un errore e deve essere chiuso.") Sebbene questo sia un modello di interazione frequente per le finestre di dialogo modali,esperti di usabilità in quanto inefficaci per il suo uso previsto, che è quello di proteggere dagli errori causati da azioni distruttive, e per il quale esistono alternative migliori.

Un esempio di una finestra di dialogo è la casella delle informazioni che si trova in molti programmi software, che di solito visualizza il nome del programma, il suo numero di versione e può anche includere informazioni sul copyright.

Modeless Le finestre di dialogo modali erano originariamente concepite per avvisare gli utenti di un errore o di un altro stato del sistema che richiedeva un'azione immediata da parte dell'utente. In questi casi, era essenziale che gli utenti venissero interrotti per correggere l'errore. Pertanto, posizionare la finestra di dialogo al centro dello schermo come punto focale dell'interfaccia, lo ha reso molto efficace. Il grande vantaggio di tali finestre era che attiravano l'attenzione degli utenti e consentivano loro di riconoscere il problema e correggerlo rapidamente. Tuttavia, questo uso originale si è evoluto e successivamente le finestre di dialogo e le finestre modali vengono utilizzate in modo convincente per attirare l'attenzione dell'utente per motivi legittimi o meno legittimi. Tuttavia le finestre modali presentano una serie di svantaggi:

Richiedono un'attenzione immediata. Le finestre modali, per loro natura, sono obbligatorie e richiedono all'utente di agire immediatamente. Poiché le finestre di dialogo posizionano il sistema in una modalità diversa, gli utenti non possono continuare ciò che stanno facendo finché non riconoscono la finestra di dialogo. Interrompono il flusso di lavoro dell'utente. Le finestre di dialogo modali allontanano gli utenti dalle attività su cui stavano lavorando in primo luogo. Ogni interruzione si traduce in tempo e fatica persi, non solo perché gli utenti devono affrontare il dialogo, ma anche perché, una volta tornati ai loro compiti originali, le persone dovranno dedicare del tempo a recuperare il contesto. Inducono gli utenti a dimenticare quello che stavano facendo. Una volta che il contesto è passato a un'attività diversa, a causa del carico cognitivo aggiuntivo imposto dal dialogo modale, le persone potrebbero dimenticare alcuni dei dettagli associati all'attività originale. In tal caso, recuperare il contesto per l'attività originale potrebbe essere ancora più difficile. Inducono gli utenti a creare e ad affrontare un obiettivo aggiuntivo: chiudere la finestra di dialogo. Quando viene presentata la finestra di dialogo, vengono aggiunti passaggi aggiuntivi al flusso di lavoro dell'utente: leggere e comprendere la finestra di dialogo, quindi prendere una decisione su quella finestra di dialogo. È probabile che questo aumento del costo dell'interazione scoraggia gli utenti, a meno che il dialogo non sia ben giustificato e contenga effettivamente informazioni importanti. Bloccano il contenuto in background. Quando una finestra di dialogo viene visualizzata nella parte superiore della finestra corrente, può coprire contenuti importanti e rimuovere il contesto. Di conseguenza, potrebbe diventare più difficile rispondere alla finestra di dialogo quando la finestra di dialogo pone una domanda relativa a informazioni appena oscurate.

A causa di questi svantaggi, le finestre di dialogo modali diventano problematiche se utilizzate per attività non critiche. Per questo sono state inventate le finestre modeless.

Le finestre di dialogo non modali (modeless) vengono utilizzate quando le informazioni richieste non sono essenziali per continuare e quindi la finestra può essere lasciata aperta mentre il lavoro continua altrove. Un tipo di finestra di dialogo non modale è una barra degli strumenti separata dall'applicazione principale o che può essere scollegata dall'applicazione principale e gli elementi nella barra degli strumenti possono essere utilizzati per selezionare determinate caratteristiche o funzioni dell'applicazione.

In generale, una buona progettazione del software richiede che le finestre di dialogo siano di questo tipo, ove possibile, poiché non obbligano l'utente a una particolare modalità di funzionamento. Un esempio potrebbe essere una finestra di dialogo delle impostazioni per il documento corrente, ad esempio lo sfondo e i colori del testo. L'utente può continuare ad aggiungere testo alla finestra principale qualunque sia il colore, ma può cambiarlo in qualsiasi momento utilizzando la finestra di dialogo. Spesso la stessa funzionalità può essere realizzata dai pulsanti della barra degli strumenti nella finestra principale dell'applicazione.

System modal