Fenêtre modale
# Fenêtre modale

Une fenêtre modale est, dans une interface graphique, une fenêtre qui prend le contrôle total du clavier et de l'écran. Elle est en général associée à une question à laquelle il est impératif que l'utilisateur réponde avant de poursuivre, ou de modifier quoi que ce soit.

## Types

Elles sont de deux grands types :

* modale pour l'application : seule cette application est bloquée jusqu'à la réponse ;
* modale pour le système : tout le système est bloqué jusqu'à la réponse.

## Rôle de la fenêtre modale

La fenêtre modale a pour propos :

* d'obtenir des informations de l'utilisateur. Ces informations sont nécessaires pour réaliser une opération ;
* de fournir une information à l'utilisateur. Ce dernier doit en prendre connaissance avant de pouvoir continuer à utiliser l'application.

Dans les deux cas, en général, l'utilisateur aura demandé à l'application de réaliser une opération. L'apparition d'une fenêtre modale fera immédiatement suite à cette demande.

Dans le premier cas, la fenêtre permettra à l'utilisateur de fournir les informations nécessaires pour que sa demande soit satisfaite. La réalisation de l'opération fera suite à la confirmation par l'utilisateur qu'il a saisi les données nécessaires.

Un exemple du deuxième cas, est celui où l'utilisateur fournit des données incorrectes dans la fenêtre précédente. L'utilisateur valide ses entrées dans la première fenêtre, l'application en ouvre une nouvelle pour informer l'utilisateur qu'il doit modifier les paramètres précédemment saisis afin que l'opération puisse être réalisée. L'utilisateur peut fermer la deuxième fenêtre et revient ainsi à la première. Cet exemple montre également que l'on peut "empiler" les fenêtres modales.

## Inconvénients

Les fenêtres modales sont souvent un problème pour les utilisateurs, car s'il est possible de les déplacer :

* il n'est parfois pas possible de déplacer les autres fenêtres de l'application ;
* il n'est pas possible d'effectuer quelque autre action que ce soit dans l'application, voire sur le système.

Or, l'information demandée par la fenêtre modale nécessite parfois :

* soit la consultation d'une de ces fenêtres inaccessibles ;
* soit une action sur l'application, que l'aspect modal empêche ;
* soit toute autre action d'information, si la fenêtre est modale au niveau système.
