專家
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 | 值字串的大小上限 (以位元組為單位)。 |