Focus (computing)
From Wikipedia, the free encyclopedia
In computing, the focus indicates the component of the graphical user interface which is currently selected to receive input. Text entered at the keyboard or pasted from a clipboard is sent to the component which currently has the focus.
The concept is similar to a cursor in a text-based environment. However, when considering a graphical interface, there is also a mouse cursor involved. Moving the mouse will typically move the mouse cursor without changing the focus. The focus can usually be changed by clicking on a component that can receive focus with the mouse. Many desktops also allow the focus to be changed with the keyboard. By convention, the tab key is used to move the focus to the next focusable component and shift + tab to the previous one. This feature was designed to make it easier for people that have a hard time using a mouse to use the user interface. In certain circumstances, the arrow keys can also be used to move focus.
[edit] Window focus
The behaviour of focus on one's desktop can be governed by policies in window management. On most mainstream user-interfaces, such as ones made by Microsoft and Apple, it is common to find a "focus follows click" policy (or "click to focus"), where one must click the mouse inside of the window for that window to gain focus. This also typically results in the window being raised above all other windows on screen.
Another common policy on UNIX systems using X11 is the "focus follows mouse" policy (or FFM), where the focus automatically follows the current placement of the mouse. One consequence of this policy is that no window has focus when the mouse is moved over the background with no window underneath. Thus a variant of this policy is "sloppy focus", where focus remains on the last focused window when the mouse is moved over the empty background.
The most effective policy is a subject of much debate. For new and inexperienced computer users, "focus follows mouse" could lead to easy confusion when inadvertently moving the mouse. However for more experienced users it allows greater control, especially when combined with the policy of not raising windows. For example, text can be copied from a large background window into a small foreground window (e.g a web browser or an instant messaging client) without rearranging windows (e.g using Alt+Tab to switch active windows). Focus follows mouse is only practicable on interfaces where the menu bar is embedded inside client windows. On a system such as Mac OS X with a single global menu bar at the top of the screen it can be nearly impossible to access the menus belonging to a small window placed near the bottom of the screen as, in order to use the menu bar, one must activate the window by moving the mouse pointer over it, then move the pointer to the top of the screen without passing over any other windows (and thus activating their menu bar, replacing the menus of the first window.) This difficulty can be mitigated by only raising after a delay, but that reduces the convenience of having the focus follow the mouse.
[edit] Intra-window component focus
Individual components may also have a cursor position. For instance in a text editing package, the text editing window must have the Focus so that text can be entered. When text is entered into the component, it will appear at the position of the text-cursor, which will also normally be moveable using the mouse cursor.
Which component should have the default focus, and how focus should move between components, are difficult but important problems in user interface design. Giving the wrong thing focus means that the user has to waste time moving the focus. Conversely, giving the right thing focus can significantly enhance the user experience.