Кража фокуса - Focus stealing
В вычисление, кража фокуса это ошибка режима производится, когда программа не в фокус (например, свернутый или работающий в фоновом режиме) помещает окно на передний план и перенаправляет весь ввод с клавиатуры в это окно. Это считается раздражением или опасностью для некоторых пользователей, потому что программа может перехватить фокус, пока их внимание не находится на экране компьютера, например, при вводе текста во время чтения копии. Это приведет к тому, что все, что было набрано после того, как окно казалось, будет потеряно - или, что еще хуже, напечатанный ввод может вызвать непреднамеренный эффект во вновь сфокусированном окне. На медленных компьютерах пользователи иногда даже не вовремя предупреждаются об этом поведении, потому что соответствующее окно фактически отображается только через несколько секунд после фактического изменения фокуса.
Проблемы с безопасностью
Кража фокуса может нанести ущерб, так как пользователи могут, печатая, когда их внимание находится вне экрана, непреднамеренно соглашаться с программой, выполняющей что-то, что может нанести ущерб. Например, когда Майкрософт Виндоус появляется мастер очистки диска, пользователь может «согласиться» на удаление файлов, не подозревая, что мастер ждал ввода. Кража фокуса также может вызвать нарушения безопасности, например, когда пользователь вводит пароль, а набранный пароль появляется вместо этого в новом мгновенное сообщение окно в немаскированном поле ввода.
Альтернативы кражи фокуса
Существует ряд альтернативных методов для привлечения внимания пользователя, которые можно использовать вместо кражи фокуса:[1]
- Пульсируйте значок приложения на панели задач, оставив приложение в фоновом режиме
- Вывести сообщение в область уведомлений
- Пульсируйте дисплей по области сканирования
- Используйте структуру звукового оповещения
Затронутые системы
X Window менеджеры
Следующее оконный менеджер системы позволяют украсть фокус:
- 9wm - не проходит пусковой тест[требуется разъяснение ], акцентируя внимание на установке окон
- compiz - настраиваемый и способный пройти как тест на запуск, так и JavaScript тест[требуется разъяснение ]
- fvwm - настраиваемый и способный пройти или не пройти как пусковой тест, так и JavaScript тест
- IceWM - не проходит тест запуска, переключая внимание на недавно запущенные приложения
- ороборос - не проходит тест на запуск, фокусируется на вновь запущенных приложениях
Майкрософт Виндоус
Майкрософт Виндоус -системы используют всплывающие диалоговые окна, которые могут отвлекать внимание от текущего приложения. В версиях Microsoft Windows до Windows 7 есть пользовательская настройка, которая по умолчанию предотвращает кражу фокуса кооперативным приложением при запуске другой программы или открытии нового окна или диалогового окна.[2] Этот же метод не работает в Windows 7 и новее.[3]
Mac OS X
Системы Apple MacOS X также переключают приложения с фона на передний план, когда фоновые приложения используют всплывающие модальные диалоговые окна. Примером такого поведения является Google Chrome с использованием диалогового окна предупреждения, как описано в [4]
Веб-браузеры
Следующие веб-браузеры позволяют кражу фокуса с помощью this.focus () JavaScript средство:
- Mozilla Firefox[5]
- Debian Лед ласка
- Debian Iceape
- Хром
- Хром Край
Программы обнаружения кражи фокуса
Написаны программы для определения того, что ворует фокус.
Смотрите также
Рекомендации
- ^ Документация, выпущенная Марком Хобли через вики по специальным возможностям для компьютеров
- ^ «ForegroundLockTimeout». Microsoft TechNet. Корпорация Майкрософт. Получено 18 ноября 2015.
- ^ «Предотвращение кражи фокуса приложениями». superuser.com. Stack Exchange Inc. Получено 18 ноября 2015.
- ^ «Вкладки могут украсть фокус с помощью всплывающих окон с предупреждениями / подсказками / подтверждениями». bugs.chromium.org. Получено 25 апреля 2016.
- ^ Mozilla Focus Кража ошибок
внешняя ссылка
- Кодирование ужасов: пожалуйста, не кради мое внимание
- Microsoft PowerToys для Windows XP Утилита TweakUI имеет настройку для предотвращения кражи фокуса программами.