なぜモーダル ダイアログ ボックスが悪者なのでしょうか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/361493

  •  21-08-2019
  •  | 
  •  

質問

最近の質問については、 モーダルダイアログが本当に必要なのはどんなときでしょうか?. 。なぜモーダル ダイアログ ボックスが悪者なのでしょうか?とにかく人が読まないからでしょうか?実装があまりにも不十分であることが多いからでしょうか?他に何か?

役に立ちましたか?

解決

これまでの回答の約半数は、 確認 ダイアログではなく、 モーダル ダイアログ。確認ダイアログの大部分はモーダルですが、これは 2 つの用語が同義であることを意味するものではありません。

モッドアルダイアログは、プログラムを特定のダイアログに配置するダイアログです。 モード また、開いている間はそのモードに対応しないことはできません。最も一般的な実装では、これは他のウィンドウにアクセスできないことを意味します。

これは悪です。

アドレス帳アプリケーションを考えてみましょう。アドレス帳に既存の人がいて、そのルームメイトを追加したいとします。

  • 「ユーザーの追加」ダイアログがモーダルでない場合は、データをコピーして貼り付けることで、古いレコードと新しいレコードを行き来できます。
  • 「ユーザーの追加」ダイアログがモーダルの場合、追加ダイアログが開いている間は古いレコードに対して何も行うことができません。「追加」を選択する前にコピーするものを選択できますが、1 つだけ。それ以外はすべて手動で再入力する必要があります。

まれに、ユーザーが完了するまでそのタスクから離れることを許さずに、本当に一括して実行する必要がある作業に遭遇することがあります。モーダル ダイアログはこのような場合に適しています。 しかし、このようなケースは非常にまれです。 これは基本的に、この質問で参照されている他のスレッドのポイントです。

他のヒント

人々はそれらを読んでいない、それは良いことです。あなたは人々があなたのUI周りの習慣を形成したいのですが、ポップアップで重要な選択肢を持つことだけでOKヒットユーザーを作るつもりされます。

彼らは、他のことをやってからユーザーを防ぐため、ユーザーを中断します。

あなたがメインウィンドウオフ何かをコピー&ペーストしたい場合はどう?あなたはモーダルダイアログにメッセージをコピーしたい場合は?あなたが場合を気にしないでください。

ただ、Firefoxの対IEの検索ダイアログを比較。

比較IEの「あなたは、私たちがあなたのために、このパスワードを記憶しますか?」 Firefoxのへ

最高のUIはモーダルです。最悪です。

モーダルUIは、 - 関係なく、それは、ダイアログボックス、ツールバーボタン、またはテキストプロンプトから構築されているか否かの - 限り、各モードは、それへの移行ユーザーの期待に一致するようにだけが望ましいです。予期せずモード...またはモードにプログラムの移行が情報を所有するユーザーが必要とするとき、彼は...容易に入手できていない、それはユーザーの苦難の原因となります、どちらかの前のモードに戻すかを推測するために彼を強制的に潜在的に望ましくない結果との適切なアクション。

非モーダルUIは、ツールの完全なセットです。いくつかは、いくつかのではなく、手元の仕事に関連しています。ユーザーは、正しいツールを選択すると、正しい方法でそれらを適用するために、両方の十分なスキルを持っている必要があります。非モーダルUIは、そのための良いモーダルUI(すでに手に現在のタスクに適したツール)のように最適になることはありませんが、それはまたのための悪いモーダルUI(間違ったツールとしての次善のようになることはありませんあなたの不注意の指に非難現在のタスク)。

良いモーダルUIを設計すること、特に目的のさらに広い範囲のためのユーザーの多種多様で使用されることを意図し、汎用のプログラムのために、非自明なアプリケーションのためのひどく困難な作業になることがあります。メニューシステムとダイアログボックスは大きく、非モーダルアプリケーションに小さな、タスク固有モーダルセクションを可能にするギャップを埋めることを試みます。どちらも1しかし特によくスケール、および誤使用や乱用は、多くの場合、怠惰なプログラマの最初の避難所として見られ、悪い評判でそれらを残しました。特に、ダイアログボックスは、多くの場合、プログラマの(または設計者の)アプリケーションは、のはず使用する方法のアイデアにユーザーを強制的に、またはユーザーで取り扱い困難な設計上の決定とトリッキーなエラーをパントする手段として多く使用されていますむしろ通信の彼らの同名の目標のためのより。

確かに、Webアプリケーションの台頭は、プログラムによって必要なときに入力をユーザーに促し、超線形論理を書くことに慣れているプログラマとして、そのようなこの1のような多数のフォーラム、ニュースグループ、およびQ&Aサイトで表面に、このような傾向をもたらしましたむしろ、可能な場合、ユーザーへのより...ユーザーが非直線的に移動することができ、よく趣のある迷惑は必要悪ではなく、堕落するように、この自由を制限しようとする試みを見ることができ、システムに強制されています。これらの貧しいコーダーの悲しげなwailsは、自分の周りのダウンクラッシュ来る非モーダルシステムにこの粗製のモーダル動作を強制する彼らの試みとして」ネットの周りエコー。長い彼らの残酷な「ダイアログ」の下で苦しんでいる私たちにとって、それは確かに素敵な曲です。

あなたが私の答えを読むために取得する前に、

、あなたは慎重にそれの全体は次のようなメッセージを読み取る必要があります。すべてのプロセス、サブプロセス、タスク、スレッドがあなたの答えを保留して無期限に中断されています。あなたは完全にメッセージを理解し、そしておそらく、その後、いくつかの法的なものに同意し、このすべてのすべての含意と一度、だけにして先に進むことができます。

消費者のスタイルのアプリケーションでは、彼らは多かれ少なかれ役に立たないです。それらを読んでいないユーザーは、それらを却下することを学ぶ、そして、彼らはそれらを読んで行うと、通常は混同されてしまいます。私は、ダイアログが実に怠惰なUIデザインですはい/いいえ/キャンセルだと思います。ユーザーが多くを読む必要はありませんので、ダイアログがやや優れている「ボタンは、彼らが何を言う」。

言われていること:データクリティカルなイントラネット/「企業」のアプリケーションでは、彼らは、多かれ少なかれ、必要な破壊的な行動を確認したり、許可されますが、推奨されなくてもよいの健全性チェック非標準のワークフローにするのです。

だから、私は彼らが概念的に「悪」とは思わないが、より多くの場合より、悪いUI設計の結果ます。

彼らは、ユーザーがソフトウェアの行動を指示することができるようになっていることを基本原則に違反するため、

彼らは悪です。モーダルダイアログ(一般的には、ダイアログボックスの悪形)が1つのアクションだけにユーザーを拘束します。

いくつかの答えは、それが例えばを要求する任意のポップアップだとmisapprehendているように見えますユーザーの確認。これは、アプリケーション全体またはコンピュータをtieingせずに達成することができます。それは人々がに反対していること、この動作だ。

いくつかの環境では、モーダルダイアログは、単一のアプリケーション(または多分それ以下)のコンテキストでユーザを制約します。本当に悪いモーダルダイアログは、オペレーティング・システム全体(たとえば、Windowsの場合)で、何をやってからユーザーを防ぐます。

彼らは(あなたが一度に見るために必要なすべての情報を)パラレル、シリアル(時の情報の1つのロット)といないで情報を表示しているので、

私はそれらを好きではない理由の一つは、並列にできるようになります彼らは、シリアルのように、あなたはかなりのオプションを選択するためにそれらを強制しているところを見てみたいものを選択するユーザーます。

プラスまた、彼らが(例えば、あなたが取り組んでオブジェクトからフォーカスを盗む)私は本当にやって好きではないそのコントロールのユーザーの流れを壊すという事実。彼らが戻って、彼らがやってどこで何を取得して、ダイアログボックス内の情報を無視することができるようにだからこれからの影響で、ユーザはちょうどOKヒットします。

マインドあなたはまだいくつかのケースでそれらを必要としています。

ウィキペディアの記事には苦情の良い和を持っています。

私が最初にこれを見たところ、私は覚えていないが、モーダルダイアログへのより良いアプローチは、簡単に見つけると能力「元に戻す」を使用できるようにすることが多いです。あなたは、ファイルを削除すると、Windowsエクスプローラでは、実際に両方ありません。それはすぐにファイルを削除した後、[編集]メニューは、「元に戻す削除」オプションがあり、その後、確認(モーダルダイアログ)を要求します。ごみ箱にアクセスするだけの簡単な方法は、確かに、しかし、この場合には、Microsoftは本当にただのダイアログで離れて行っている可能性があります。

ポイントビーイング、あなたは思考のビットとの対話なしで行うことが多いことができ、余分なコードのおそらくビットが、それは怠惰、またはおそらく、もっと寛大に、時間に制約のある開発者のためだけの簡単すぎる選択肢ですます。

言った、時にはあなたは本当にのダイアログをしたいです。典型的な印刷ダイアログ上のオプションのすべてについて考えてみよう。どのプリンタ?すべてのページ、またはわずか数?どのように多くのコピー?私はあなたがダイアログボックスなしでそれを行うだろうかわからない...

Noboyはそれらを読み、彼らはプログラムの流れを中断します。エラー通知として使用する場合、多くの場合、彼らはプログラム障害にprecurrsorです。ユーザーは何が起こっているかを実現時点で、メッセージが消えていると、彼らは彼らができる最善のようなメッセージを思い出すか発明して残されています。

個人的に私は、それがどのように行われるかに完全に依存だと思います。

Windowsエクスプローラを使用して、それを行う、すべてのファイルがターゲットディレクトリに存在する10個のファイルをコピーしてみます。

このような操作で本当に正解の各ファイルのための単一のモーダルダイアログです。私は、あなたが「はい、すべてに」を持って知っているが、全体ループ・システムは、異なる構築されてきたはずです。これは、1つの大きなリストに存在するすべてのファイルを集めて、「あなたは、これらのファイルをどうしたいかどう」一度尋ね、その後、私は[OK]をクリックして操作を再開する前に何をすべきかをドロップダウンリストから、ファイルごとに決定させるべきでしたます。

そして倍ダイアログボックスの多くは、単に通常のワークフローを中断します。

そして、はい、人々は、ダイアログボックスを読んでいません。ですから、ダイアログボックスを使用する必要がある場合は黄金の先端には、それを言い替えることです。

の代わりに「あなたは、データベースにこの行を削除しますか?」、あなたが求めているように、それを表現してみてください(これは右の文言されていない)の「あなたが欲しいかをのないのデータベースにこの行を削除しますか?」このように、彼らはちょうど彼らが何もしない終わるだろう、それを上取得したいユーザーからの典型的な応答である、はいヒットした場合。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top