Модальне вікно

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Модальність (програмування))
Перейти до навігації Перейти до пошуку

У графічному інтерфейсі користувача модальним називається вікно, що блокує роботу користувача з батьківським застосунком доти, доки користувач це вікно не закриє. У вигляді модальних переважно реалізуються діалогові вікна. Також модальні вікна часто використовуються для привернення уваги користувача до важливої події чи критичної ситуації[1].

Призначення[ред. | ред. код]

Як правило, модальні вікна застосовуються, коли вимагається:

  • Вимагати від користувача введення якої-небудь інформації, починаючи від простого «так/ні» і закінчуючи великою кількістю налаштувань або даних, необхідних для продовження роботи з батьківським вікном або застосунком;
  • Привернути увагу користувача до чогось важливого. Цей варіант часто критикується спеціалістами з ергономіки, тому що рідко це важливо настільки, щоб повністю блокувати роботу застосунку, але, тем не менше, продовжує використовуватися внаслідок того, що він набагато легший у реалізації[2][3][4];
  • Вказати користувачеві на неможливість скасування виконуваної ним дії та зажадати її підтвердження. Цей варіант також критикується, замість нього рекомендується все ж таки забезпечити можливість скасування[5].

Критика[ред. | ред. код]

Модальне вікно повністю блокує весь робочий процес доти, доки не буде закрите. Користувач може не зрозуміти, що вікно вимагає його уваги, одночасно не розуміючи, чому головне вікно програми не реагує на його дії.

Оскільки створення модальних вікон є невід'ємною можливістю будь-якого середовища з розробки графічного інтерфейсу, ці вікна продовжують використовуватися на практиці. Прихильники використання цієї техніки також вважають, що велика кількість діалогових вікон, між якими можна вільно перемикатися, може заплутати користувача, а отже, краще скоротити можливості введення до мінімуму в кожну конкретну мить часу.

Спеціалісти з ергономіки, навпаки, вважають, що в переважній більшості ситуацій обмеження свободи дій користувача та строга послідовність цих дій призводить до суттєвого зменшення зручності та засмучує користувачів[6]. Використання модальних вікон змушує користувача концентрувати свою увагу на якомусь одному аспекті завдання, тоді як на практиці він може одночасно працювати з великими об'ємами інформації, розміщеними у різних вікнах застосунку та постійно перемикатися між ними. У таких випадках використання модальних вікон призводить до зменшення ефективності роботи.

Створення вікна, модального відносно робочого стола, могло порушити доступність усієї системи в цілому. Наприклад, таку функцію було передбачено у Windows 3.x, 95 і 98, однак було прибрано з NT і подальших версій, і модальність вікна відносно системи більше не блокувала доступ до неї[7].

В усіх ОС сімейства Microsoft Windows відкрите модальне вікно повністю блокує взаємодію з батьківським вікном, в тому числі не дозволяючи змінити його розміри, перемістити в інше місце на екрані чи згорнути. У деяких випадках через недопрацювання програмного забезпечення модальні вікна при перемиканні завдань можуть опинитися позаду батьківського вікна, через що будь-яка взаємодія з програмою стає неможливою.

При великій кількості відкритих застосунків стає важко визначити батьківське вікно, особливо якщо в заголовку модального вікна недостатньо інформації для цього (наприклад, відкрито декілька однакових застосунків). Тоді для цього доводиться робити спроби взаємодії з усіма вікнами, доки не знайдеться заблоковане.

Модальні вікна в OS X[ред. | ред. код]

В OS X для подолання деяких недоліків було розроблено особливу концепцію модальних вікон[8]. На відміну від звичайних, модальні вікна OS X є частиною батьківського вікна. В OS X модальні вікна з'являються з-під заголовку батьківського вікна та прив'язані до нього, що дозволяє уникнути плутанини з визначенням батьківського вікна. При цьому модальне вікно не заважає переміщувати батьківське вікно, а також змінювати його розміри.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Quince UX patterns explorer. Modal Panel (англійською). Архів оригіналу за 27 лютого 2010. Процитовано 11 липня 2016. 
  2. Спольськи, Джоел. User Interface Design for Programmers: [Designing for People Who Have Better Things To Do With Their Lives]. Архів оригіналу за 23 липня 2016. Процитовано 11 липня 2016. 
  3. Чен, Реймонд. The default answer to every dialog box is «Cancel». Архів оригіналу за 19 червня 2004. Процитовано 11 липня 2016. 
  4. Атвуд, Джеф. Teaching Users to Read. Coding Horror. Архів оригіналу за 25 січня 2010. Процитовано 11 липня 2016. 
  5. Раскін, Аза. Never Use a Warning When you Mean Undo. A List Apart. Архів оригіналу за 2 березня 2009. Процитовано 11 липня 2016. 
  6. Купер, Алан (17 березня 2003). About Face 2.0: The Essentials of Interaction Design (англійською). Wiley. ISBN 0764526413. 
  7. How To Create a System-Modal Program/Window in Visual Basic. Microsoft Support. Архів оригіналу за 29 листопада 2014. Процитовано 11 липня 2016. 
  8. Dialogs. OS X Human Interface Guidelines. Архів оригіналу за 20 березня 2016. Процитовано 11 липня 2016.