使用者通常會一次與一個 UI 視窗互動。大致來說,「聚焦」可識別一個 UI 視窗,其中會讓使用者進行互動。
聚焦於一個檢視畫面
UI 視窗是透過 Fuchsia 檢視畫面建構,通常只有一個檢視畫面。聚焦在這些檢視畫面之間移動,而且這些檢視畫面必須連結至全域檢視區塊樹狀結構。當焦點移至檢視畫面時,系統會通知該檢視畫面已聚焦,而先前聚焦的檢視畫面會通知其聚焦。
一律會聚焦。如果聚焦的檢視畫面與檢視區塊樹狀結構中斷連線,就會失去焦點,而檢視畫面的父項會取得焦點。
UI 用戶端的焦點用途會因應用程式而異
當 UI 用戶端的檢視畫面取得焦點時,UI 用戶端就能使用該位元提高應用程式的使用者互動行為。舉例來說,這項作業可以開始閃爍遊標,表示檢視區塊已啟用、放大小工具顏色,或執行 UI 版面配置變更。
聚焦與輸入模式
部分輸入模式 (例如鍵盤和快速鍵) 會在焦點上建構其互動模型。例如,只有聚焦的檢視畫面可以與使用者的鍵盤互動。失去焦點的檢視畫面無法接收鍵盤事件。
其他輸入模式 (例如觸控和滑鼠) 在推動焦點變更時,可能會發揮更大的作用。以下提供一些範例。
為 Fuchsia 新增輸入模式時,這些模式需要進行設計,才能搭配現有的聚焦模型使用。
每項產品都會定義焦點移動的時機
Fuchsia 針對焦點的「放置位置」設有一些規則,但對於聚焦「移動」沒有太大意義。系統會利用 Focuser API 呼叫,在檢視畫面之間移動焦點,但每項產品都應定義自己的政策,決定何時應該在檢視畫面之間移動。
舉例來說,工作站類型產品可以選擇將焦點移至滑鼠遊標點擊下方的檢視畫面。或者,觸控螢幕類型產品可以選擇在最初接觸螢幕時,將焦點移至使用者手指下方的檢視區塊。或者,無障礙功能可以選擇將焦點移到檢視畫面,該檢視畫面可經由語音指令或特殊手勢執行。
每項產品都著重在提供專屬保證
透過運用聚焦規則,產品可以針對自身用途制定專屬的保證。舉例來說,工作站類型產品可能會希望確保螢幕鎖定畫面不會「外洩」鍵盤事件到鎖定對話方塊後方的任何 UI 視窗。如果 UI 視窗的檢視畫面與檢視區塊樹狀結構中斷連線,就無法接收焦點,因而無法與鍵盤互動。