В вычислительном графическом пользовательском интерфейсе (GUI) компонент имеет фокус, когда он выбран для получения входных данных от пользователя в результате такого события, как щелчок кнопки мыши или нажатие клавиши. [1] Перемещение фокуса с определенного элемента пользовательского интерфейса называется событием размытия по отношению к этому элементу. [2] Обычно фокус снимается с элемента путем передачи фокуса другому элементу. Это означает, что события фокусировки и размытия происходят практически одновременно по отношению к различным элементам пользовательского интерфейса: один из них становится сфокусированным, а другой «размытым» (в вычислительном, а не визуальном смысле).
Эта концепция аналогична курсору в текстовой среде. Однако при рассмотрении графического интерфейса также используется указатель мыши . Перемещение мыши обычно приводит к перемещению указателя мыши без изменения фокуса. Фокус обычно можно изменить, щелкнув мышью по компоненту, который может получать фокус. Многие настольные компьютеры также позволяют менять фокус с помощью клавиатуры. По соглашению Tab ↹клавиша используется для перемещения фокуса на следующий фокусируемый компонент и + на предыдущий. Когда впервые были представлены графические интерфейсы, на многих компьютерах не было мышей, поэтому эта альтернатива была необходима. Эта функция упрощает использование пользовательского интерфейса для людей, которые не могут использовать мышь . В определенных обстоятельствах для изменения фокуса можно использовать клавиши со стрелками .⇧ ShiftTab ↹
Поведение фокуса на рабочем столе может регулироваться политиками управления окнами .
В большинстве основных пользовательских интерфейсов, например, созданных Microsoft и Apple , обычно встречается политика «фокус следует за щелчком» (или «нажмите, чтобы сфокусироваться»), при которой нужно щелкнуть мышью внутри окна для этого окна. чтобы получить фокус. Это также обычно приводит к тому, что окно поднимается над всеми другими окнами на экране. Если используется такая модель фокуса щелчка , как эта, текущее окно приложения продолжает сохранять фокус и собирать вводимые данные, даже если указатель мыши находится над другим окном приложения.
Другая распространенная политика в системах Unix , использующих X Window System (X11), — это политика «фокус следует за мышью» (или FFM), при которой фокус автоматически следует за текущим размещением указателя. Сфокусированное окно не обязательно будет поднято; его части могут оставаться под другими окнами. Оконные менеджеры с этой политикой обычно предлагают «автоподнятие», которое поднимает окно, когда оно находится в фокусе, обычно после настраиваемой короткой задержки. Возможным последствием политики следования за фокусом является то, что ни одно окно не имеет фокуса, когда указатель перемещается по фону без окна под ним; в противном случае фокус просто останется в последнем окне.
Модель небрежного фокуса — это вариант модели следящего фокуса. [3] Это позволяет продолжать собирать вводимые данные в последнем активном окне, когда указатель мыши перемещается от любого окна, например, над строкой меню или областью рабочего стола.
Отдельные компоненты окна также могут иметь фокусное положение. Например, в пакете редактирования текста окно редактирования текста должно иметь фокус, чтобы можно было вводить текст. Когда текст вводится в компонент, он появляется в позиции текстового курсора, который также обычно можно перемещать с помощью указателя мыши.
Какой компонент должен иметь фокус по умолчанию и как фокус должен перемещаться между компонентами — это сложные, но важные проблемы проектирования пользовательского интерфейса. Если сфокусироваться не на том предмете, пользователю придется тратить время на перемещение фокуса. И наоборот, правильная фокусировка на вещах может значительно улучшить пользовательский опыт.