モーダルウィンドウ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
![]() | この記事には複数の問題があります。改善やノートページでの議論にご協力ください。
|
モーダルウィンドウ(英: modal window)は、コンピュータアプリケーションソフトウェアのユーザインタフェース設計において、何らかのウィンドウの子ウィンドウとして生成されるサブ要素のうち、ユーザーがそれに対して適切に応答しない限り、制御を親ウィンドウに戻さないもの。モーダルウィンドウはGUIシステムで、ユーザーに注意を促したり、選択肢を提示したり、緊急の状態を知らせたりする目的でよく使われる。モーダルダイアログやポップアップと呼ばれることもある[1][2]。
"modal"とは「モードを持つ」という意味であり、モーダルウィンドウが表示されている間はアプリケーションの状態が「ユーザーの応答待ちモード」になっている。対義語は"modeless"(モードレス)である。[3]
ユースケース[編集]
モーダルウィンドウは以下のような状況でよく使われる。
- この特性により、モーダルウィンドウ上の対話結果に応じてその後に実行する処理を分岐することが容易となる。
- アプリケーションの設定オプションを1つのダイアログに集約する。
- これから実行しようとしている操作は取り消すことができないことを警告する。ファイルの書き込みや削除でよく見られるが、その意図する効果(間違った操作を防ぐ)は疑問視する向きもあり、代替策もある[7]。
内部的な仕組み[編集]
モーダルウィンドウを表示すると、そのウィンドウが閉じられるまで呼び出し元に制御は返ってこない。しかしモーダルウィンドウを表示している間もイベントループ(メッセージループ)は回り続けるため、GUIがフリーズしてしまうことはない。モーダルウィンドウ表示中は通常のイベントループとは異なるモーダルループが回り、親のウィンドウに配送されるイベントが制限される。
類似要素[編集]
Microsoft Windows では、Mac OS や X Window System ベースのUNIX系システムよりもモーダルウィンドウがよく使われる[要出典]。Windows でモーダルウィンドウが使われるような状況で、それ以外の環境ではトランジェントウィンドウ (transient window) が使われる。トランジェントウィンドウはモーダルウィンドウと似たような振る舞いをし、常に親ウィンドウの前面に表示され、ウィンドウリストには出現しないが、同じアプリケーションの他のウィンドウの使用を妨げない。
利点と問題点[編集]
モーダルウィンドウは、クローズされるまでそのプログラムの他のワークフロー全体をブロックする。ユーザーはモーダルウィンドウが注意を喚起していることに気づかない場合もあり、主ウィンドウが反応しなくなったことで困惑したり、入力すべきデータが判らなくなったりするといった問題も発生する。モードの明確化という点に関しては、ダイアログ表示中に背景となる主ウィンドウの明るさを下げてコントラストをつけることで配慮している例もある(WindowsランタイムのWindows.UI.Popups.MessageDialog
や、Androidのandroid.app.AlertDialog
など)。
モーダルウィンドウに対する意見は、初期のマンマシンインタフェースにおける基本原則を想起させる。例えば、マイクロソフトは Windows 95 でウィザードを多用した[8]。
今[いつ?]もモーダルウィンドウは多くのGUIツールキットの主要部品の1つであり、よく使われる。多数のモードのないダイアログが表示されるとユーザーが混乱すると考えられているためであり、モーダルウィンドウを擁護する立場からは、ある時間内にユーザーが入力しなければならない情報の量を制限することができるという意見もある。また、モーダルウィンドウとの対話中はユーザーによって親ウィンドウを操作されることがないため、ワークフローの管理や画面遷移の実装の容易さの観点からも有用である。
一方で、ユーザインタフェースの専門家は、そのような意見に対して、ユーザーにフラストレーションを与えてまで制限を加えるのは誤りだと指摘している[9]。ユーザーは1度に1つの入力しかできず、モーダルだろうとなかろうとユーザーは常に注意していなければならない。たとえ複雑な情報であっても、それがうまく構造化された論理的設計で表現されていれば、ユーザーはそれを処理できる[要説明]。
脚注[編集]
- ^ モーダルダイアログとは|モーダルウィンドウ|modal dialog : 意味/定義 - IT用語辞典
- ^ ポップアップとは|pop-up : 意味/定義 - IT用語辞典
- ^ 【初心者向け】モーダル・ポップアップ・ダイアログの意味の違い
- ^ Joel Spolsky, User Interface Design for Programmers: Designing for People Who Have Better Things To Do With Their Lives
- ^ Raymond Chen, The Old New Thing: The default answer to every dialog box is "Cancel"
- ^ Jeff Atwood, Coding Horror: Teaching Users to Read
- ^ Aza Raskin, A List Apart: Never Use a Warning When you Mean Undo
- ^ David A. Karp, HELP WITH WINDOWS 98
- ^ Cooper, Alan (2003年3月17日). About Face 2.0: The Essentials of Interaction Design. Wiley. ISBN 0764526413
例[編集]
![]() | この節に雑多な内容が羅列されています。事項を箇条書きで列挙しただけの節は、本文として組み入れるか、または整理・除去する必要があります。(2019年4月) |
![]() |
- ThickBox - jQuery 上に構築された JavaScript のモーダルウィンドウ
- TinyBox - Prototype 上に構築された JavaScript のモーダルウィンドウ
- subModal - DHTMLのモーダルダイアログ
- Control.Modal by Live Pipe
- MOOdalBox - mootools 上のモーダルボックス
- Lightbox JS by Lokesh Dhakar
- GreyBox by Amir Salihefendic
関連項目[編集]
|