コンピューティングのグラフィカルユーザーインターフェイス(GUI)では、コンポーネントは、マウスボタンのクリックやキーの押下などのイベントによってユーザーからの入力を受け取るように選択されたときにフォーカスを持ちます。 [ 1 ]特定のユーザーインターフェイス要素からフォーカスを移動させることは、その要素に関してぼかしイベントとして知られています。 [ 2 ]通常、フォーカスは、別の要素にフォーカスを与えることによって要素から取り除かれます。これは、フォーカスイベントとぼかしイベントが、異なるユーザーインターフェイス要素に関してほぼ同時に発生し、一方がフォーカスされ、もう一方が(視覚的な意味ではなく、コンピューティング的な意味で)「ぼやける」ことを意味します。
この概念は、テキストベースの環境におけるカーソルに似ています。ただし、グラフィカルインターフェースを考える場合、マウスポインタも関係してきます。マウスを動かすと、通常はフォーカスが変わらずマウスポインタが移動します。フォーカスは、マウスでフォーカスを受け取ることができるコンポーネントをクリックすることで変更できます。多くのデスクトップでは、キーボードでフォーカスを変更することもできます。慣例として、Tab ↹キーはフォーカスを次のフォーカス可能なコンポーネントに移動するために使用され、+ キーは前のコンポーネントに移動します。グラフィカルインターフェースが初めて導入されたとき、多くのコンピュータにはマウスがなかったため、この代替手段が必要でした。この機能により、マウスを使用できない人がユーザーインターフェースをより簡単に使用できるようになります。特定の状況では、矢印キーを使用してフォーカスを変更することもできます。⇧ ShiftTab ↹
デスクトップ上のフォーカスの動作は、ウィンドウ管理のポリシーによって制御できます。おそらく「フォーカス」という用語が広く採用される以前、PERQワークステーションのAccentベースのオペレーティングシステム用のSapphireウィンドウマネージャでは、フォーカスを保持しているウィンドウは「リスナー」として知られていました。[ 3 ]
MicrosoftやAppleなどの主流のユーザーインターフェースでは、「クリックにフォーカスが追従する」(または「クリックしてフォーカス」)というポリシーが一般的です。これは、ウィンドウにフォーカスを当てるには、そのウィンドウ内でマウスをクリックする必要があるというものです。また、この方式では、通常、ウィンドウが画面上の他のすべてのウィンドウよりも上に表示されます。このようなクリックフォーカス方式が使用されている場合、マウスカーソルが別のアプリケーションウィンドウ上にある場合でも、現在のアプリケーションウィンドウはフォーカスを維持し、入力を受け付け続けます。
X Window System (X11) を使用するUnixシステムでよく見られるもう 1 つのポリシーは、「フォーカスはマウスに追従する」ポリシー (FFM) です。これは、フォーカスがポインタの現在の位置に自動的に追従するポリシーです。フォーカスされたウィンドウは必ずしも前面に表示されず、一部が他のウィンドウの下に残る場合があります。このポリシーを採用しているウィンドウマネージャは通常、「自動前面表示」機能を提供しており、フォーカスが当たったときにウィンドウを前面に表示します。これは通常、設定可能な短い遅延時間の後に実行されます。フォーカス追従ポリシーの考えられる結果として、ポインタがウィンドウのない背景上を移動した場合、どのウィンドウにもフォーカスが当たらないことがあります。それ以外の場合は、フォーカスは最後に表示したウィンドウに留まります。
スロッピーフォーカスモデルは、フォローフォーカスモデルの変種です。[ 4 ]マウスポインタがメニューバーやデスクトップ領域など、どのウィンドウからも離れた場合でも、最後にフォーカスされたウィンドウによって入力が引き続き収集されます。
ウィンドウの個々のコンポーネントにも焦点位置が設定されている場合があります。例えば、テキスト編集ソフトウェアでは、テキストを入力できるように、テキスト編集ウィンドウにフォーカスが当たっている必要があります。コンポーネントにテキストを入力すると、テキストカーソルの位置にテキストが表示され、通常はマウスカーソルを使って移動できます。
どのコンポーネントにデフォルトでフォーカスを当てるべきか、またコンポーネント間でフォーカスをどのように移動させるべきかは、ユーザーインターフェース設計において難しくも重要な課題です。間違ったものにフォーカスを当ててしまうと、ユーザーはフォーカスを移動させるのに時間を浪費することになります。逆に、正しいものにフォーカスを当てることで、ユーザーエクスペリエンスを大幅に向上させることができます。