專家
SemanticListener
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
語意供應器是一種用戶端介面,可供管理員用於啟用或停用語意更新,以及要求用戶端執行無障礙功能動作。
HitTest
要求語意提供者執行命中測試並傳回結果。
要求
名稱 | 類型 |
---|---|
local_point |
fuchsia.math/PointF
|
回應
名稱 | 類型 |
---|---|
result |
Hit
|
OnAccessibilityActionRequested
要求語意提供者在前端有節點 ID 的節點上執行無障礙功能動作。
要求
名稱 | 類型 |
---|---|
node_id |
uint32
|
action |
Action
|
回應
名稱 | 類型 |
---|---|
handled |
bool
|
OnSemanticsModeChanged
回呼會通知用戶端是否要將更新內容傳送至語意樹狀結構。呼叫 update_enabled = false 時,語意管理員會清除所有狀態。 如果使用 update_enabled = true 呼叫,用戶端應傳送目前語意樹狀結構的完整狀態。
要求
名稱 | 類型 |
---|---|
updates_enabled |
bool
|
回應
<EMPTY>
SemanticTree
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
更新特定檢視區塊語意樹狀結構的介面。您可以新增、更新或刪除節點。由於更新的大小可能會超過 FIDL 傳輸限制,用戶端負責將變更拆成多項更新,並刪除符合這些限制的呼叫。完整更新推送結束時,必須呼叫修訂函式,以告知更新已結束。
用戶端可能會在呼叫 CommitUpdates() 之前,對 UpdateSemanticNodes(...) 或 DeleteSemanticNodes(...) 進行多次呼叫,並且必須等待語意管理員回覆 CommitUpdates() 方法,以瞭解更新是否已處理完畢。這可讓用戶端將一組變更 (例如重新計算的語意樹狀圖) 拆分為語意樹狀結構至與 FIDL 相容的區塊,但一次修訂所有變更。
如果語意管理員從用戶端收到不一致的狀態 (例如樹狀結構無效或無法辨識的父項節點 ID),伺服器就會關閉管道。用戶端負責重新連線,並從頭重新傳送狀態。
CommitUpdates
使用 UpdateSemanticNodes 和 DeleteSemanticNodes,對與檢視表相關聯的節點樹狀結構提交待處理的變更。系統會按照接收順序處理更新。如果提交的更新導致樹狀結構中的樹狀結構 (例如缺少根節點或週期等),語意管理員會關閉管道。
要求
<EMPTY>
回應
<EMPTY>
DeleteSemanticNodes
告知根目錄從下一個修訂版本的語意樹狀結構中移除含有 node_id 的節點。
要求
名稱 | 類型 |
---|---|
node_ids |
vector<uint32>[2048]
|
SendSemanticEvent
傳送與這個樹狀結構相關的語意事件。這會立即套用,且不會等待 CommitUpdates()。呼叫端會負責在已修訂的節點上觸發事件。系統會叫用傳回回呼,確認已收到事件。
要求
名稱 | 類型 |
---|---|
semantic_event |
SemanticEvent
|
回應
<EMPTY>
UpdateSemanticNodes
將全新/更新節點傳送至根層級,以新增至下一個修訂版本的快取。
要求
名稱 | 類型 |
---|---|
nodes |
vector<Node>[2048]
|
SemanticsManager
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
用於管理檢視畫面連線的介面,用於收集有關目前 UI 狀態的語意資訊。
此管理程式可讓用戶端註冊為檢視畫面的語意供應器。回傳語意管理員提供的介面,可更新、修訂和刪除該檢視畫面的語意樹狀結構中的資訊。如果語意管理員發生錯誤,系統會關閉管道、刪除任何相關聯的資料,並透過用戶端重新註冊。
RegisterViewForSemantics
要求
名稱 | 類型 |
---|---|
view_ref |
fuchsia.ui.views/ViewRef
|
listener |
SemanticListener
|
semantic_tree_request |
server_end<SemanticTree>
|
表情符號
動作嚴格
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
代表可套用至節點的動作。
名稱 | 值 | 說明 |
---|---|---|
預設 |
1 |
與元素相關聯的預設動作。 |
次要 |
2 |
與元素相關聯的次要動作。這可能對應長按 (觸控螢幕) 或按一下滑鼠右鍵 (滑鼠)。 |
SET_FOCUS |
3 |
將焦點移至這個元素 (輸入/無無障礙功能)。 |
SET_VALUE |
4 |
設定元素的值。 |
SHOW_ON_SCREEN |
5 |
捲動節點即可顯示。 |
決策 |
6 |
將滑桿減少一個步驟值。步驟大小是由執行此動作的語意節點擁有者定義。舉例來說,音量滑桿可能想製作步驟 1、2、3,而時間滑桿可能讓每個步驟改變都略過 30 秒。 |
成效增幅 |
7 |
將滑桿往一個步驟值遞增。步驟大小是由執行此動作的語意節點擁有者定義。舉例來說,音量滑桿可能想製作步驟 1、2、3,而時間滑桿可能讓每個步驟改變都略過 30 秒。 |
CheckedState 嚴格
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
代表 UI 核取方塊的狀態。
名稱 | 值 | 說明 |
---|---|---|
NONE |
1 |
未輸入資料或元素不是核取方塊時使用。 |
已勾選 |
2 |
已勾選 |
已取消檢查 |
3 |
已取消勾選 |
混合 |
4 |
未確定狀態 |
EnabledState strict
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
代表元素的啟用/停用狀態。
名稱 | 值 | 說明 |
---|---|---|
已啟用 |
1 |
已啟用元素。 |
已停用 |
2 |
元素已停用。 |
不確定 |
3 |
未確定狀態。 |
LabelOrigin strict 標籤來源
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
標籤的可能來源。
名稱 | 值 | 說明 |
---|---|---|
單位化 |
1 |
節點尚無標籤。 |
屬性 |
2 |
這個元素在執行階段 UI 中的屬性會明確設定標籤。例如包含 aria 標籤的元素。 |
ATTRIBUTE_EMPTY |
3 |
執行階段 UI 中的這項元素屬性會明確將標籤設為空白。 |
字幕 |
4 |
這個標籤是表格類元素的說明文字。由於部分輔助技術具有處理資料表的特殊模式,執行階段應針對這類來源標記其標籤,讓使用者瞭解在資料表模式中瀏覽資料表的內容。例如,<caption> HTML 標記會設定標籤。 |
內容 |
5 |
這個節點會從應用程式顯示的內容收到其標籤。舉例來說,網頁中的文字會成為這個節點的標籤。 |
預留位置 |
6 |
一個元素可接收使用者輸入的值,並提供建議輸入內容。例如 HTML 輸入欄位中的預留位置屬性。 |
RELATED_ELEMENT |
7 |
其他元素提供此元素的標籤。例如透過 aria 標籤來新增。 |
TITLE |
8 |
這個元素的標籤會以視覺化工具提示表示。例如來自 <title> HTML 標記。 |
值 |
9 |
標籤取自使用者輸入的值。 |
角色嚴格
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
代表 UI 中元素的角色。
名稱 | 值 | 說明 |
---|---|---|
不明 |
1 |
這個角色代表了角色目前不支援的元素。 |
按鈕 |
2 |
畫面中可點選/啟用的內容,且只有單一函式。 |
標頭 |
3 |
標題文字,例如 HTML 中標記為 <h1> 的內容。 |
IMAGE |
4 |
圖片或圖形。 |
TEXT_FIELD |
5 |
可接收文字輸入內容的欄位。 |
防滑 |
6 |
滑桿,例如影片的音量滑桿或時間滑桿。 |
連結 |
7 |
連結,例如網頁上的連結。 |
CHECK_BOX |
8 |
可切換的核取方塊。 |
RADIO_BUTTON |
9 |
用來從一組選項中選取選項的圓形按鈕。 |
飯店清單 |
10 |
用於代表清單的角色。 |
LIST_ELEMENT |
11 |
這個角色用於代表清單中的元素,包括標記及其內容。例如,標記 <li> 的元素,或具備 ARIA 清單項目角色的元素。 |
LIST_ELEMENT_MARKER |
12 |
用於代表清單標記的角色 (例如項目符號、數字、羅馬數字等)。 |
STATIC_TEXT |
13 |
這個角色代表不可變更的文字。 |
TOGGLE_SWITCH |
14 |
用於代表切換鈕的角色。 |
表格 |
15 |
這個角色用來代表元素表格。 |
GRID |
16 |
用於代表格線的角色。例如具有 aria-grid 角色的元素。 |
TABLE_ROW |
17 |
用來代表資料表資料列的角色。 |
儲存格 |
18 |
這個角色用來代表表格或格線中的儲存格。 |
COLUMN_HEADER |
19 |
用於代表欄標題的角色。例如含有 HTML 標記 <th> 的元素。 |
ROW_GROUP |
20 |
用於代表 aria-rowgroup 類似元素的角色。 |
段落 |
21 |
這個角色用於代表一段文字。 |
SEARCH_BOX |
22 |
|
TEXT_FIELD_WITH_COMBO_BOX |
23 |
|
ROW_HEADER |
24 |
ToggledState strict
類型:uint32
定義於 fuchsia.accessibility.semantics/node.fidl
代表 UI 切換鈕的狀態。
名稱 | 值 | 說明 |
---|---|---|
開啟 |
1 |
切換按鈕已設為開啟。 |
關閉 |
2 |
切換按鈕目前為關閉狀態。 |
不確定 |
3 |
切換鈕處於「不確定」狀態。 |
資料表
AnnounceEvent
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
公告事件是指將訊息傳送至 Semantic Tree,以告知應用程式某些全域狀態的變更。由於這則公告可能會幹擾輔助技術,因此應單獨使用。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
message |
string[16384]
|
說明應用程式變更的訊息。這則訊息應以應用程式所用的語言進行本地化。 |
屬性
定義於 fuchsia.accessibility.semantics/node.fidl
屬性是描述元素的重要屬性。與狀態不同,屬性在元素的生命週期中不會變更。例如:含有標籤屬性「ok」的按鈕不應變更為「cancel」,因為按鈕並非相同元素。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
label |
string[16384]
|
元素的主要標籤。如果超過 MAX_LABEL_SIZE,則用戶端會負責截斷標籤。 |
2 |
secondary_label |
string[16384]
|
元素的次要標籤。如果超過 MAX_LABEL_SIZE,則用戶端會負責截斷標籤。 |
3 |
secondary_action_description |
string[16384]
|
節點中次要動作 (即長按或按一下滑鼠右鍵) 應執行的動作說明。 |
4 |
range |
RangeAttributes
|
如果元素是滑桿 / 範圍控制項,就會填入範圍屬性。 |
5 |
set |
SetAttributes
|
如果元素屬於某些類型的集合,系統會填入設定屬性。舉例來說,相關的圓形按鈕是同一組按鈕的一部分。 |
6 |
list_attributes |
SetAttributes
|
如果節點有「LIST」角色,則應填寫清單屬性。請注意,只需填入 |
7 |
list_element_attributes |
SetAttributes
|
如果節點具有 LIST_ELEMENT 角色,且從具備「LIST」角色的節點繼承,則應填寫清單元素屬性。請注意,只應填入 |
8 |
hierarchical_level |
uint32
|
元素的階層層級。舉例來說,HTML 內的標頭可以是第 1 級到第 6 級,也可以是 Markdown。 |
9 |
table_attributes |
TableAttributes
|
元素是表格時,系統會填入表格屬性。 |
10 |
label_origin |
LabelOrigin
|
此元素的標籤來源。 |
11 |
is_keyboard_key |
bool
|
元素是否屬於虛擬鍵盤。例如螢幕小鍵盤上的按鍵。 |
12 |
table_row_attributes |
TableRowAttributes
|
元素是表格列時,表格列的屬性就會填入資料。 |
13 |
table_cell_attributes |
TableCellAttributes
|
表格儲存格屬性會在元素為表格儲存格時填入。 |
Hit
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
在檢視畫面的語意樹狀結構上(例如 Flutter/Chrome) 實作的命中測試結果,並傳送至無障礙功能。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
node_id |
uint32
|
代表特定 UI 中節點的專屬 ID。系統會假設 0 為根節點,也是樹狀結構的唯一進入點。如果未命中,node_id 就不會填入。 |
2 |
path_from_root |
vector<uint32>[256]
|
按照順序排列的節點 ID 清單,代表從根節點到命中節點的路徑。 |
節點
定義於 fuchsia.accessibility.semantics/node.fidl
節點代表介面中的語意元素。這可以是按鈕、文字欄位、核取方塊,或是具有相關語意意義的任何元素,以便輔助技術瞭解目前的 UI。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
node_id |
uint32
|
代表特定 UI 中節點的專屬 ID。系統會假設零為根節點和樹狀結構的唯一進入點。不允許使用森林。 |
2 |
role |
Role
|
這個元素的角色,例如按鈕、核取方塊等。 |
3 |
states |
States
|
這個物件的狀態表格,例如已勾選、可編輯等。 |
4 |
attributes |
Attributes
|
這個節點的屬性表格。 |
5 |
actions |
vector<Action>[100]
|
可對這個節點執行的動作清單。 |
6 |
child_ids |
vector<uint32>[20000]
|
這個節點的子項 ID 清單,按週遊順序列出。提供語意樹狀結構資訊的執行階段,會負責確保樹狀結構不包含週期。每個節點只能有一個父項。 |
7 |
location |
fuchsia.ui.gfx/BoundingBox
|
此元素的本機定界框。 |
8 |
transform |
fuchsia.ui.gfx/mat4
|
將這個節點的座標空間轉換為其容器空間。4x4 的大小 以便與視覺網頁相容這個矩陣必須包含下列格式 [ Sx 0 0 Tx ] [ 0 Sy 0 Ty ] [ 0 0 Sz Tz ] [ 0 0 0 1 ] 其中 Sx、Sy 和 Sz 是縮放係數,而 Tx、Ty、Tz 則是 x、y 和 z 元件的轉譯因數。 |
9 |
container_id |
uint32
|
這個節點上祖系的節點 ID,用來做為 |transform| 的目標。如果沒有,系統會將此解讀為這個節點的父項。 |
10 |
node_to_container_transform |
fuchsia.ui.gfx/mat4
|
注意:我們已淘汰 將這個節點的座標空間轉換為其容器空間。如果已設定 此外,如果已設定 4x4 解析度,與視覺網頁相容。這個矩陣必須格式如下: [ Sx 0 0 Tx ] [ 0 Sy 0 Ty ] [ 0 0 Sz Tz ] [ 0 0 0 1 ] 其中 Sx、Sy 和 Sz 是縮放係數,而 Tx、Ty、Tz 則是 x、y 和 z 元件的轉譯因數。 |
RangeAttributes
定義於 fuchsia.accessibility.semantics/node.fidl
滑桿 / 範圍控制項屬性。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
min_value |
float32
|
範圍控制項元素可使用的最小值。 |
2 |
max_value |
float32
|
範圍控制項元素可使用的最大值。 |
3 |
step_delta |
float32
|
叫用 DECREMENT 或 INCREMENT 動作時,元素的步驟差異值。 |
SetAttributes
定義於 fuchsia.accessibility.semantics/node.fidl
設定屬性,控制元素與同一組合中其他元素的連線方式。舉例來說,HTML 中包含相同名稱屬性的一組圓形按鈕屬於同一個組合。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
size |
uint32
|
資料集的大小。 |
2 |
index |
uint32
|
資料集中的元素索引,從一個索引開始。 |
3 |
set_element_ids |
vector<uint32>[100]
|
此組合中其他元素的節點 ID。 |
狀態
定義於 fuchsia.accessibility.semantics/node.fidl
狀態是元素的動態屬性,可能會因使用者動作或自動化程序而變更。因此,它們與重要時間點的屬性 (也就是變化頻率) 不同。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
checked |
bool
|
不再使用 |
2 |
checked_state |
CheckedState
|
核取方塊狀態。這個欄位與 ToggledState 互斥。 |
3 |
selected |
bool
|
表示目前已選取該元素。 |
5 |
value |
string[16384]
|
使用者輸入的元素值 (如適用)。如果超過 MAX_VALUE_SIZE,則用戶端會負責截斷。 |
6 |
range_value |
float32
|
如果元素是滑桿或範圍控制項,則此欄位會包含目前值。請注意,這與上述的值欄位不同,因為這個值是由用戶端產生,並由使用者調整。 |
7 |
viewport_offset |
fuchsia.ui.gfx/vec2
|
如果元素是可捲動的可視區域,這個欄位會包含這個節點座標空間中要套用至子項的 x 和 y 偏移值。您可以利用這個偏移設定,安排子項在可視區域中的位置,反映元素目前的捲動情形。這些值沒有限制,沒有限制。 |
8 |
toggled_state |
ToggledState
|
切換鈕的狀態。只有在元素是切換切換元素且與 CheckedState 互斥時,才需要設定這個欄位。 |
9 |
focusable |
bool
|
指出此元素是否可在 UI 中聚焦。請注意,這並非 11y 的焦點,而是輸入焦點。 |
10 |
has_input_focus |
bool
|
這個元素是否具有輸入焦點。這與系統焦點相對應。只能設定一個元素的值。如果多個節點將這個值設為「true」,系統將無法判定行為。 |
11 |
enabled_state |
EnabledState
|
具有啟用/停用狀態的元素狀態。 新增時間:15
|
TableAttributes
定義於 fuchsia.accessibility.semantics/node.fidl
控製表格儲存格節點解讀方式的屬性。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
column_span |
uint32
|
這個表格儲存格橫跨的欄數。 已淘汰 - 改為在儲存格節點使用 TableCellAttributes |
2 |
row_span |
uint32
|
這個表格儲存格橫跨的列數。 已淘汰 - 改為在儲存格節點使用 TableCellAttributes |
3 |
number_of_rows |
uint32
|
此資料表中的資料列數。 |
4 |
number_of_columns |
uint32
|
此資料表中的欄數。 |
5 |
column_header_ids |
vector<uint32>[100]
|
表格欄標題的節點 ID。 |
6 |
row_header_ids |
vector<uint32>[100]
|
表格列標題的節點 ID。 |
TableCellAttributes
定義於 fuchsia.accessibility.semantics/node.fidl
控製表格儲存格解讀方式的屬性。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
row_index |
uint32
|
這個儲存格的列-索引。 |
2 |
column_index |
uint32
|
這個儲存格的欄索引。 |
3 |
row_span |
uint32
|
這個表格儲存格橫跨的列數。 |
4 |
column_span |
uint32
|
這個表格儲存格橫跨的欄數。 |
TableRowAttributes
定義於 fuchsia.accessibility.semantics/node.fidl
控製表格列節點解讀方式的屬性。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
row_index |
uint32
|
表格列索引。 |
聯合國
語意事件 (嚴格)
定義於 fuchsia.accessibility.semantics/semantics_manager.fidl
代表在語意樹上觸發的語意事件。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
announce |
AnnounceEvent
|
場景
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
MAX_FAN_OUT |
20000
|
uint64 |
語意樹狀結構中節點的子項數量上限。 |
MAX_LABEL_SIZE |
16384
|
uint64 |
標籤字串的大小上限 (以位元組為單位)。 |
MAX_MESSAGE_SIZE |
16384
|
uint64 |
訊息字串的大小上限 (以位元組為單位)。 |
MAX_NODES_PER_UPDATE |
2048
|
uint64 |
單次更新可以傳送的語意節點數量上限。 |
MAX_SET_ELEMENTS |
100
|
uint32 |
語意集中的元素數量上限。 |
MAX_TREE_DEPTH |
256
|
uint64 |
語意樹狀結構的深度上限。 |
MAX_VALUE_SIZE |
16384
|
uint64 |
值字串的大小上限 (以位元組為單位)。 |