blob: 07649ae6d317e9616fd77e20234c87c0eca5e3ae [file] [log] [blame] [view]
<link rel="stylesheet" href="../style.css" />
[TOC]
# fuchsia.accessibility.semantics
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div>
## **PROTOCOLS**
## SemanticListener {#SemanticListener}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=114)*
<p>A semantic provider is the client-side interface that the manager can use to enable or disable
semantic updates, and to ask clients to perform accessibility actions.</p>
### HitTest {#SemanticListener.HitTest}
<p>Asks the semantics provider to perform hit testing and return the result.</p>
#### Request {#SemanticListener.HitTest_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>local_point</code></td>
<td>
<code><a class='link' href='../fuchsia.math/'>fuchsia.math</a>/<a class='link' href='../fuchsia.math/#PointF'>PointF</a></code>
</td>
</tr>
</table>
#### Response {#SemanticListener.HitTest_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Hit'>Hit</a></code>
</td>
</tr>
</table>
### OnAccessibilityActionRequested {#SemanticListener.OnAccessibilityActionRequested}
<p>Asks the semantics provider to perform an accessibility action on the
node with node id in the front-end.</p>
#### Request {#SemanticListener.OnAccessibilityActionRequested_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>node_id</code></td>
<td>
<code>uint32</code>
</td>
</tr>
<tr>
<td><code>action</code></td>
<td>
<code><a class='link' href='#Action'>Action</a></code>
</td>
</tr>
</table>
#### Response {#SemanticListener.OnAccessibilityActionRequested_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>handled</code></td>
<td>
<code>bool</code>
</td>
</tr>
</table>
### OnSemanticsModeChanged {#SemanticListener.OnSemanticsModeChanged}
<p>Callback telling the client whether or not to send updates to the semantic tree.
The semantics manager will clear all state when this is called with updates_enabled = false.
When called with updates_enabled = true, the client should sent the full state of the
current semantic tree.</p>
#### Request {#SemanticListener.OnSemanticsModeChanged_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>updates_enabled</code></td>
<td>
<code>bool</code>
</td>
</tr>
</table>
#### Response {#SemanticListener.OnSemanticsModeChanged_Response}
&lt;EMPTY&gt;
## SemanticTree {#SemanticTree}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=72)*
<p>Interface to update the semantic tree for a particular view. Nodes can be added, updated or
deleted. Because the size of an update may exceed FIDL transfer limits, clients are responsible
for breaking up changes into multiple update and delete calls that conform to these limits. The
commit function must always be called at the end of a full update push to signal the end of an
update.</p>
<p>The client may make several calls to UpdateSemanticNodes(...) or DeleteSemanticNodes(...)
before calling CommitUpdates(), and must wait for the semantics manager to reply to the
CommitUpdates() method to know whether an update has been processed. This allows the client to
break up a set of changes (e.g. a re-computed semantic tree) to the semantic tree into
FIDL-compatible chunks, but commit them all at once.</p>
<p>If the semantics manager ever receives inconsistent state from the client, such as an
invalid tree or unrecognized parent node id, the server will close the channel. The client is
responsible for reconnecting and re-sending its state from scratch.</p>
### CommitUpdates {#SemanticTree.CommitUpdates}
<p>Commits pending changes to node tree associated with the view using UpdateSemanticNodes and
DeleteSemanticNodes. Updates are processed in the order in which they are received. If the
committed updates result in an ill-formed tree (for example a missing root node or a cycle)
the semantic manager will close the channel.</p>
#### Request {#SemanticTree.CommitUpdates_Request}
&lt;EMPTY&gt;
#### Response {#SemanticTree.CommitUpdates_Response}
&lt;EMPTY&gt;
### DeleteSemanticNodes {#SemanticTree.DeleteSemanticNodes}
<p>Tells the root to remove nodes with node_ids from the semantic tree on the next commit.</p>
#### Request {#SemanticTree.DeleteSemanticNodes_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>node_ids</code></td>
<td>
<code>vector&lt;uint32&gt;[2048]</code>
</td>
</tr>
</table>
### SendSemanticEvent {#SemanticTree.SendSemanticEvent}
<p>Sends a Semantic Event related to this tree. This applies immediately
and does not wait for CommitUpdates(). It is the caller's
responsibility to fire events on nodes that have been already commited.
The return callback is invoked to acknowledge that the event was received.</p>
#### Request {#SemanticTree.SendSemanticEvent_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>semantic_event</code></td>
<td>
<code><a class='link' href='#SemanticEvent'>SemanticEvent</a></code>
</td>
</tr>
</table>
#### Response {#SemanticTree.SendSemanticEvent_Response}
&lt;EMPTY&gt;
### UpdateSemanticNodes {#SemanticTree.UpdateSemanticNodes}
<p>Sends new/updated nodes to the root to add to the cache on the next commit.</p>
#### Request {#SemanticTree.UpdateSemanticNodes_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>nodes</code></td>
<td>
<code>vector&lt;<a class='link' href='#Node'>Node</a>&gt;[2048]</code>
</td>
</tr>
</table>
## SemanticsManager {#SemanticsManager}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=35)*
<p>An interface to manage connections with views for the purposes of gathering semantic information
about their current UI state.</p>
<p>The manager allows clients to register as a semantic provider for their view(s). In return the
semantics manager supplies an interface to update, commit and delete information from the
semantic tree for that view. If the semantic manager encounters an error, it will close the
channel, delete any associated data and rely on the client to re-register.</p>
### RegisterViewForSemantics {#SemanticsManager.RegisterViewForSemantics}
#### Request {#SemanticsManager.RegisterViewForSemantics_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>view_ref</code></td>
<td>
<code><a class='link' href='../fuchsia.ui.views/'>fuchsia.ui.views</a>/<a class='link' href='../fuchsia.ui.views/#ViewRef'>ViewRef</a></code>
</td>
</tr>
<tr>
<td><code>listener</code></td>
<td>
<code><a class='link' href='#SemanticListener'>SemanticListener</a></code>
</td>
</tr>
<tr>
<td><code>semantic_tree_request</code></td>
<td>
<code>server_end&lt;<a class='link' href='#SemanticTree'>SemanticTree</a>&gt;</code>
</td>
</tr>
</table>
## **ENUMS**
### Action [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Action data-text="Action"}
Type: <code>uint32</code>
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=12)*
<p>Represents actions that can be applied to Nodes.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="Action.DEFAULT">
<td><h3 id="Action.DEFAULT" class="add-link hide-from-toc">DEFAULT</h3></td>
<td><code>1</code></td>
<td><p>The default action associated with the element.</p>
</td>
</tr>
<tr id="Action.SECONDARY">
<td><h3 id="Action.SECONDARY" class="add-link hide-from-toc">SECONDARY</h3></td>
<td><code>2</code></td>
<td><p>The secondary action associated with the element. This may correspond to a long press
(touchscreens) or right click (mouse).</p>
</td>
</tr>
<tr id="Action.SET_FOCUS">
<td><h3 id="Action.SET_FOCUS" class="add-link hide-from-toc">SET_FOCUS</h3></td>
<td><code>3</code></td>
<td><p>Set (input/non-accessibility) focus on this element.</p>
</td>
</tr>
<tr id="Action.SET_VALUE">
<td><h3 id="Action.SET_VALUE" class="add-link hide-from-toc">SET_VALUE</h3></td>
<td><code>4</code></td>
<td><p>Set the element's value.</p>
</td>
</tr>
<tr id="Action.SHOW_ON_SCREEN">
<td><h3 id="Action.SHOW_ON_SCREEN" class="add-link hide-from-toc">SHOW_ON_SCREEN</h3></td>
<td><code>5</code></td>
<td><p>Scroll node to make it visible.</p>
</td>
</tr>
<tr id="Action.DECREMENT">
<td><h3 id="Action.DECREMENT" class="add-link hide-from-toc">DECREMENT</h3></td>
<td><code>6</code></td>
<td><p>Decrement a slider by one step value. The step size is defined by the
owner of the semantic node that executes this action. For example, a
volume slider may want to make steps 1, 2, 3, while a time slider may
want to skip 30 seconds each step change.</p>
</td>
</tr>
<tr id="Action.INCREMENT">
<td><h3 id="Action.INCREMENT" class="add-link hide-from-toc">INCREMENT</h3></td>
<td><code>7</code></td>
<td><p>Increment a slider by one step value. The step size is defined by the
owner of the semantic node that executes this action. For example, a
volume slider may want to make steps 1, 2, 3, while a time slider may
want to skip 30 seconds each step change.</p>
</td>
</tr>
</table>
### CheckedState [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#CheckedState data-text="CheckedState"}
Type: <code>uint32</code>
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=264)*
<p>Represents the state of a UI checkbox.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="CheckedState.NONE">
<td><h3 id="CheckedState.NONE" class="add-link hide-from-toc">NONE</h3></td>
<td><code>1</code></td>
<td><p>Used when no data is entered or the element is not a check box.</p>
</td>
</tr>
<tr id="CheckedState.CHECKED">
<td><h3 id="CheckedState.CHECKED" class="add-link hide-from-toc">CHECKED</h3></td>
<td><code>2</code></td>
<td><p>Checked</p>
</td>
</tr>
<tr id="CheckedState.UNCHECKED">
<td><h3 id="CheckedState.UNCHECKED" class="add-link hide-from-toc">UNCHECKED</h3></td>
<td><code>3</code></td>
<td><p>Unchecked</p>
</td>
</tr>
<tr id="CheckedState.MIXED">
<td><h3 id="CheckedState.MIXED" class="add-link hide-from-toc">MIXED</h3></td>
<td><code>4</code></td>
<td><p>Indeterminate state</p>
</td>
</tr>
</table>
### LabelOrigin [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#LabelOrigin data-text="LabelOrigin"}
Type: <code>uint32</code>
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=110)*
<p>The possible origins of a label.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="LabelOrigin.UNITIALIZED">
<td><h3 id="LabelOrigin.UNITIALIZED" class="add-link hide-from-toc">UNITIALIZED</h3></td>
<td><code>1</code></td>
<td><p>The node does not have a label yet.</p>
</td>
</tr>
<tr id="LabelOrigin.ATTRIBUTE">
<td><h3 id="LabelOrigin.ATTRIBUTE" class="add-link hide-from-toc">ATTRIBUTE</h3></td>
<td><code>2</code></td>
<td><p>An attribute of this element in the runtime UI explicitly sets its
label. For example, an element with aria-label.</p>
</td>
</tr>
<tr id="LabelOrigin.ATTRIBUTE_EMPTY">
<td><h3 id="LabelOrigin.ATTRIBUTE_EMPTY" class="add-link hide-from-toc">ATTRIBUTE_EMPTY</h3></td>
<td><code>3</code></td>
<td><p>An attribute of this element in the runtime UI explicitly sets its
label to be empty.</p>
</td>
</tr>
<tr id="LabelOrigin.CAPTION">
<td><h3 id="LabelOrigin.CAPTION" class="add-link hide-from-toc">CAPTION</h3></td>
<td><code>4</code></td>
<td><p>This label serves as the caption for a table-like element. Because some
assistive technology have special modes to deal with tables, a runtime
should mark its label with this type of origin so that users know what
the table is about when they navigate in the table mode. For example,
a &lt;caption&gt; html tag sets the label.</p>
</td>
</tr>
<tr id="LabelOrigin.CONTENTS">
<td><h3 id="LabelOrigin.CONTENTS" class="add-link hide-from-toc">CONTENTS</h3></td>
<td><code>5</code></td>
<td><p>This node receives its label from the contents present in the
application. For example, text from a web page becomes the label of
this node.</p>
</td>
</tr>
<tr id="LabelOrigin.PLACEHOLDER">
<td><h3 id="LabelOrigin.PLACEHOLDER" class="add-link hide-from-toc">PLACEHOLDER</h3></td>
<td><code>6</code></td>
<td><p>An element that can receive user entered value and has a suggested
input. For example, the placeholder attribute on an html input field.</p>
</td>
</tr>
<tr id="LabelOrigin.RELATED_ELEMENT">
<td><h3 id="LabelOrigin.RELATED_ELEMENT" class="add-link hide-from-toc">RELATED_ELEMENT</h3></td>
<td><code>7</code></td>
<td><p>Another element provides the label for this element. For example, via
aria-labeledby.</p>
</td>
</tr>
<tr id="LabelOrigin.TITLE">
<td><h3 id="LabelOrigin.TITLE" class="add-link hide-from-toc">TITLE</h3></td>
<td><code>8</code></td>
<td><p>This element's label is represented by a visual tooltip. For example,
as if from a &lt;title&gt; html tag.</p>
</td>
</tr>
<tr id="LabelOrigin.VALUE">
<td><h3 id="LabelOrigin.VALUE" class="add-link hide-from-toc">VALUE</h3></td>
<td><code>9</code></td>
<td><p>The label comes from an user-entered value.</p>
</td>
</tr>
</table>
### Role [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Role data-text="Role"}
Type: <code>uint32</code>
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=37)*
<p>Represents a role of an element on a UI.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="Role.UNKNOWN">
<td><h3 id="Role.UNKNOWN" class="add-link hide-from-toc">UNKNOWN</h3></td>
<td><code>1</code></td>
<td><p>Role used to represent elements which role is not currently supported.</p>
</td>
</tr>
<tr id="Role.BUTTON">
<td><h3 id="Role.BUTTON" class="add-link hide-from-toc">BUTTON</h3></td>
<td><code>2</code></td>
<td><p>Something on screen that can be clicked/activated, that has a single function.</p>
</td>
</tr>
<tr id="Role.HEADER">
<td><h3 id="Role.HEADER" class="add-link hide-from-toc">HEADER</h3></td>
<td><code>3</code></td>
<td><p>Header text, e.g. something tagged &lt;h1&gt; in HTML.</p>
</td>
</tr>
<tr id="Role.IMAGE">
<td><h3 id="Role.IMAGE" class="add-link hide-from-toc">IMAGE</h3></td>
<td><code>4</code></td>
<td><p>An image or graphic.</p>
</td>
</tr>
<tr id="Role.TEXT_FIELD">
<td><h3 id="Role.TEXT_FIELD" class="add-link hide-from-toc">TEXT_FIELD</h3></td>
<td><code>5</code></td>
<td><p>A field that can receive text input.</p>
</td>
</tr>
<tr id="Role.SLIDER">
<td><h3 id="Role.SLIDER" class="add-link hide-from-toc">SLIDER</h3></td>
<td><code>6</code></td>
<td><p>A slider, e.g. a volume slider or a time slider of a video.</p>
</td>
</tr>
<tr id="Role.LINK">
<td><h3 id="Role.LINK" class="add-link hide-from-toc">LINK</h3></td>
<td><code>7</code></td>
<td><p>A link, e.g. a link on a webpage.</p>
</td>
</tr>
<tr id="Role.CHECK_BOX">
<td><h3 id="Role.CHECK_BOX" class="add-link hide-from-toc">CHECK_BOX</h3></td>
<td><code>8</code></td>
<td><p>A check box that can be toggled.</p>
</td>
</tr>
<tr id="Role.RADIO_BUTTON">
<td><h3 id="Role.RADIO_BUTTON" class="add-link hide-from-toc">RADIO_BUTTON</h3></td>
<td><code>9</code></td>
<td><p>A radio button that selects an option among a group of options.</p>
</td>
</tr>
<tr id="Role.LIST">
<td><h3 id="Role.LIST" class="add-link hide-from-toc">LIST</h3></td>
<td><code>10</code></td>
<td><p>Role used to represent lists.</p>
</td>
</tr>
<tr id="Role.LIST_ELEMENT">
<td><h3 id="Role.LIST_ELEMENT" class="add-link hide-from-toc">LIST_ELEMENT</h3></td>
<td><code>11</code></td>
<td><p>Role used to represent an element in a list, including its marker and
its content. For example, a element tagged &lt;li&gt;, or an element with the
ARIA listitem role.</p>
</td>
</tr>
<tr id="Role.LIST_ELEMENT_MARKER">
<td><h3 id="Role.LIST_ELEMENT_MARKER" class="add-link hide-from-toc">LIST_ELEMENT_MARKER</h3></td>
<td><code>12</code></td>
<td><p>Role used to represent a list marker (e.g. a bullet point, number, roman
numeral, etc.).</p>
</td>
</tr>
<tr id="Role.STATIC_TEXT">
<td><h3 id="Role.STATIC_TEXT" class="add-link hide-from-toc">STATIC_TEXT</h3></td>
<td><code>13</code></td>
<td><p>Role used to represent immutable text.</p>
</td>
</tr>
<tr id="Role.TOGGLE_SWITCH">
<td><h3 id="Role.TOGGLE_SWITCH" class="add-link hide-from-toc">TOGGLE_SWITCH</h3></td>
<td><code>14</code></td>
<td><p>Role used to represent toggle switch.</p>
</td>
</tr>
<tr id="Role.TABLE">
<td><h3 id="Role.TABLE" class="add-link hide-from-toc">TABLE</h3></td>
<td><code>15</code></td>
<td><p>Role used to represent a table of elements.</p>
</td>
</tr>
<tr id="Role.GRID">
<td><h3 id="Role.GRID" class="add-link hide-from-toc">GRID</h3></td>
<td><code>16</code></td>
<td><p>Role used to represent a grid. For example, an element with the
aria-grid role.</p>
</td>
</tr>
<tr id="Role.TABLE_ROW">
<td><h3 id="Role.TABLE_ROW" class="add-link hide-from-toc">TABLE_ROW</h3></td>
<td><code>17</code></td>
<td><p>Role used to represent the row of a table.</p>
</td>
</tr>
<tr id="Role.CELL">
<td><h3 id="Role.CELL" class="add-link hide-from-toc">CELL</h3></td>
<td><code>18</code></td>
<td><p>Role used to represent the cell of a table or grid.</p>
</td>
</tr>
<tr id="Role.COLUMN_HEADER">
<td><h3 id="Role.COLUMN_HEADER" class="add-link hide-from-toc">COLUMN_HEADER</h3></td>
<td><code>19</code></td>
<td><p>Role used to represent a column header. For example, an element with
the html tag &lt;th&gt;.</p>
</td>
</tr>
<tr id="Role.ROW_GROUP">
<td><h3 id="Role.ROW_GROUP" class="add-link hide-from-toc">ROW_GROUP</h3></td>
<td><code>20</code></td>
<td><p>Role used to represent an aria-rowgroup-like element.</p>
</td>
</tr>
<tr id="Role.PARAGRAPH">
<td><h3 id="Role.PARAGRAPH" class="add-link hide-from-toc">PARAGRAPH</h3></td>
<td><code>21</code></td>
<td><p>Role used to represent a paragraph of text.</p>
</td>
</tr>
<tr id="Role.SEARCH_BOX">
<td><h3 id="Role.SEARCH_BOX" class="add-link hide-from-toc">SEARCH_BOX</h3></td>
<td><code>22</code></td>
<td></td>
</tr>
<tr id="Role.TEXT_FIELD_WITH_COMBO_BOX">
<td><h3 id="Role.TEXT_FIELD_WITH_COMBO_BOX" class="add-link hide-from-toc">TEXT_FIELD_WITH_COMBO_BOX</h3></td>
<td><code>23</code></td>
<td></td>
</tr>
<tr id="Role.ROW_HEADER">
<td><h3 id="Role.ROW_HEADER" class="add-link hide-from-toc">ROW_HEADER</h3></td>
<td><code>24</code></td>
<td></td>
</tr>
</table>
### ToggledState [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ToggledState data-text="ToggledState"}
Type: <code>uint32</code>
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=276)*
<p>Represents the state of a UI toggle switch.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="ToggledState.ON">
<td><h3 id="ToggledState.ON" class="add-link hide-from-toc">ON</h3></td>
<td><code>1</code></td>
<td><p>Toggle switch is on.</p>
</td>
</tr>
<tr id="ToggledState.OFF">
<td><h3 id="ToggledState.OFF" class="add-link hide-from-toc">OFF</h3></td>
<td><code>2</code></td>
<td><p>Toggle switch is off.</p>
</td>
</tr>
<tr id="ToggledState.INDETERMINATE">
<td><h3 id="ToggledState.INDETERMINATE" class="add-link hide-from-toc">INDETERMINATE</h3></td>
<td><code>3</code></td>
<td><p>Toggle switch is in Indeterminate state.</p>
</td>
</tr>
</table>
## **TABLES**
### AnnounceEvent {#AnnounceEvent data-text="AnnounceEvent"}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=52)*
<p>An announce event is one where a message is sent to a Semantic Tree,
informing a change of some global state in the application. Because this
announcement can be disruptive to assistive technology, it should be used
sparingly.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="AnnounceEvent.message">
<td><h3 id="AnnounceEvent.message" class="add-link hide-from-toc">1</h3></td>
<td><code>message</code></td>
<td>
<code>string[16384]</code>
</td>
<td><p>A message describing the change in the application. This message is expected to be localized in the language that the application is in.</p>
</td>
</tr>
</table>
### Attributes {#Attributes data-text="Attributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=213)*
<p>An attribute is an essential property to describe an element. Unlike states, attributes do not
change over the life of an element.
Example: A button with a label attribute 'ok' should never change to 'cancel', as this is not
the same element.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="Attributes.label">
<td><h3 id="Attributes.label" class="add-link hide-from-toc">1</h3></td>
<td><code>label</code></td>
<td>
<code>string[16384]</code>
</td>
<td><p>The primary label for an element. If longer than MAX_LABEL_SIZE the client is responsible
for truncating the label.</p>
</td>
</tr>
<tr id="Attributes.secondary_label">
<td><h3 id="Attributes.secondary_label" class="add-link hide-from-toc">2</h3></td>
<td><code>secondary_label</code></td>
<td>
<code>string[16384]</code>
</td>
<td><p>The secondary label for an element. If longer than MAX_LABEL_SIZE the client is responsible
for truncating the label.</p>
</td>
</tr>
<tr id="Attributes.secondary_action_description">
<td><h3 id="Attributes.secondary_action_description" class="add-link hide-from-toc">3</h3></td>
<td><code>secondary_action_description</code></td>
<td>
<code>string[16384]</code>
</td>
<td><p>A description of what the secondary action on a node (equivalent to long press or right click) should do.</p>
</td>
</tr>
<tr id="Attributes.range">
<td><h3 id="Attributes.range" class="add-link hide-from-toc">4</h3></td>
<td><code>range</code></td>
<td>
<code><a class='link' href='#RangeAttributes'>RangeAttributes</a></code>
</td>
<td><p>The range attributes are filled if the element is a slider / a range
control.</p>
</td>
</tr>
<tr id="Attributes.set">
<td><h3 id="Attributes.set" class="add-link hide-from-toc">5</h3></td>
<td><code>set</code></td>
<td>
<code><a class='link' href='#SetAttributes'>SetAttributes</a></code>
</td>
<td><p>Set attributes are filled if the element is part of some type of set.
For example, radio buttons that are related are part of the same set.</p>
</td>
</tr>
<tr id="Attributes.list_attributes">
<td><h3 id="Attributes.list_attributes" class="add-link hide-from-toc">6</h3></td>
<td><code>list_attributes</code></td>
<td>
<code><a class='link' href='#SetAttributes'>SetAttributes</a></code>
</td>
<td><p>The list attributes should be filled if the node has the LIST role.
Note that only <code>size</code> and <code>set_element_ids</code> should be filled.</p>
</td>
</tr>
<tr id="Attributes.list_element_attributes">
<td><h3 id="Attributes.list_element_attributes" class="add-link hide-from-toc">7</h3></td>
<td><code>list_element_attributes</code></td>
<td>
<code><a class='link' href='#SetAttributes'>SetAttributes</a></code>
</td>
<td><p>The list element attributes should be filled if the node has a
LIST_ELEMENT role and descends from a node with a LIST role.
Note that only <code>index</code> should be filled.</p>
</td>
</tr>
<tr id="Attributes.hierarchical_level">
<td><h3 id="Attributes.hierarchical_level" class="add-link hide-from-toc">8</h3></td>
<td><code>hierarchical_level</code></td>
<td>
<code>uint32</code>
</td>
<td><p>The hierarchical level of an element. For example, a header can be of
level 1 to 6 in html or markdown.</p>
</td>
</tr>
<tr id="Attributes.table_attributes">
<td><h3 id="Attributes.table_attributes" class="add-link hide-from-toc">9</h3></td>
<td><code>table_attributes</code></td>
<td>
<code><a class='link' href='#TableAttributes'>TableAttributes</a></code>
</td>
<td><p>The table attributes are filled when the element is a table.</p>
</td>
</tr>
<tr id="Attributes.label_origin">
<td><h3 id="Attributes.label_origin" class="add-link hide-from-toc">10</h3></td>
<td><code>label_origin</code></td>
<td>
<code><a class='link' href='#LabelOrigin'>LabelOrigin</a></code>
</td>
<td><p>The origin of the label of this element.</p>
</td>
</tr>
<tr id="Attributes.is_keyboard_key">
<td><h3 id="Attributes.is_keyboard_key" class="add-link hide-from-toc">11</h3></td>
<td><code>is_keyboard_key</code></td>
<td>
<code>bool</code>
</td>
<td><p>Whether the element is part of a virtual keyboard. For example, a key
on an onscreen keyboard.</p>
</td>
</tr>
<tr id="Attributes.table_row_attributes">
<td><h3 id="Attributes.table_row_attributes" class="add-link hide-from-toc">12</h3></td>
<td><code>table_row_attributes</code></td>
<td>
<code><a class='link' href='#TableRowAttributes'>TableRowAttributes</a></code>
</td>
<td><p>The table row attributes are filled when the element is a table row.</p>
</td>
</tr>
<tr id="Attributes.table_cell_attributes">
<td><h3 id="Attributes.table_cell_attributes" class="add-link hide-from-toc">13</h3></td>
<td><code>table_cell_attributes</code></td>
<td>
<code><a class='link' href='#TableCellAttributes'>TableCellAttributes</a></code>
</td>
<td><p>The table cell attributes are filled when the element is a table cell.</p>
</td>
</tr>
</table>
### Hit {#Hit data-text="Hit"}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=102)*
<p>Results of hit testing on a view's semantic tree which is implemented by
Runtimes(like Flutter/Chrome) and sent to Accessibility.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="Hit.node_id">
<td><h3 id="Hit.node_id" class="add-link hide-from-toc">1</h3></td>
<td><code>node_id</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Unique ID that represents a node in a particular UI.
Zero is assumed to be the root node and the only entry point to the tree.
node_id will not be filled when there is no hit.</p>
</td>
</tr>
<tr id="Hit.path_from_root">
<td><h3 id="Hit.path_from_root" class="add-link hide-from-toc">2</h3></td>
<td><code>path_from_root</code></td>
<td>
<code>vector&lt;uint32&gt;[256]</code>
</td>
<td><p>The ordered list of node ids which represent path from root node to the hit node.</p>
</td>
</tr>
</table>
### Node {#Node data-text="Node"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=336)*
<p>The Node represents a semantic element on an interface. This may
be a button, a text field, a checkbox or any element that has a relevant
semantic meaning so that assistive technology can understand the current UI.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="Node.node_id">
<td><h3 id="Node.node_id" class="add-link hide-from-toc">1</h3></td>
<td><code>node_id</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Unique ID that represents a node in a particular UI.
Zero is assumed to be the root node and the only entry point to the tree.
No forest is allowed.</p>
</td>
</tr>
<tr id="Node.role">
<td><h3 id="Node.role" class="add-link hide-from-toc">2</h3></td>
<td><code>role</code></td>
<td>
<code><a class='link' href='#Role'>Role</a></code>
</td>
<td><p>Role of this element, e.g. button, checkbox, etc.</p>
</td>
</tr>
<tr id="Node.states">
<td><h3 id="Node.states" class="add-link hide-from-toc">3</h3></td>
<td><code>states</code></td>
<td>
<code><a class='link' href='#States'>States</a></code>
</td>
<td><p>A table of states of this object, e.g. checked, editable, etc.</p>
</td>
</tr>
<tr id="Node.attributes">
<td><h3 id="Node.attributes" class="add-link hide-from-toc">4</h3></td>
<td><code>attributes</code></td>
<td>
<code><a class='link' href='#Attributes'>Attributes</a></code>
</td>
<td><p>A table of attributes of this node.</p>
</td>
</tr>
<tr id="Node.actions">
<td><h3 id="Node.actions" class="add-link hide-from-toc">5</h3></td>
<td><code>actions</code></td>
<td>
<code>vector&lt;<a class='link' href='#Action'>Action</a>&gt;[100]</code>
</td>
<td><p>A list of actions that can be performed on this node.</p>
</td>
</tr>
<tr id="Node.child_ids">
<td><h3 id="Node.child_ids" class="add-link hide-from-toc">6</h3></td>
<td><code>child_ids</code></td>
<td>
<code>vector&lt;uint32&gt;[20000]</code>
</td>
<td><p>The list of child IDs of this node, in traversal order. Runtimes supplying semantic tree
information are responsible for ensuring the tree does not contain cycles. Each node may
have only one parent.</p>
</td>
</tr>
<tr id="Node.location">
<td><h3 id="Node.location" class="add-link hide-from-toc">7</h3></td>
<td><code>location</code></td>
<td>
<code><a class='link' href='../fuchsia.ui.gfx/'>fuchsia.ui.gfx</a>/<a class='link' href='../fuchsia.ui.gfx/#BoundingBox'>BoundingBox</a></code>
</td>
<td><p>Local bounding box of this element.</p>
</td>
</tr>
<tr id="Node.transform">
<td><h3 id="Node.transform" class="add-link hide-from-toc">8</h3></td>
<td><code>transform</code></td>
<td>
<code><a class='link' href='../fuchsia.ui.gfx/'>fuchsia.ui.gfx</a>/<a class='link' href='../fuchsia.ui.gfx/#mat4'>mat4</a></code>
</td>
<td><p>Transform from this node's coordinate space to its container's space. 4x4 for compatibility
with scenic. This matrix is required to have the form</p>
<p>[ Sx 0 0 Tx ]
[ 0 Sy 0 Ty ]
[ 0 0 Sz Tz ]
[ 0 0 0 1 ]</p>
<p>where Sx, Sy, and Sz are scale factors and Tx, Ty, Tz are the translation factors for
the x, y, and z components.</p>
<p>TODO(fxb.dev/87181): Deprecate.</p>
</td>
</tr>
<tr id="Node.container_id">
<td><h3 id="Node.container_id" class="add-link hide-from-toc">9</h3></td>
<td><code>container_id</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Node ID of the ancestor of this node that is used as the target of |transform|.
If not present, this is interpreted as this node's parent.</p>
</td>
</tr>
<tr id="Node.node_to_container_transform">
<td><h3 id="Node.node_to_container_transform" class="add-link hide-from-toc">10</h3></td>
<td><code>node_to_container_transform</code></td>
<td>
<code><a class='link' href='../fuchsia.ui.gfx/'>fuchsia.ui.gfx</a>/<a class='link' href='../fuchsia.ui.gfx/#mat4'>mat4</a></code>
</td>
<td><p>NOTE: We are deprecating <code>transform</code> in favor of <code>node_to_container_transform</code>. Clients
must NOT set both fields.</p>
<p>Transform from this node's coordinate space to its container's space. If the <code>container_id</code>
field is set, then that id specifies the container node. Otherwise, this node's parent is
the container node.</p>
<p>Additionally, if <code>container_id</code> is set, the fuchsia accessibility manager will
post-translate this node's coordinate space by its container's <code>location.min</code> after
applying <code>node_to_container_transform</code> when converting to the container's coordinate space.
If <code>container_id</code> is unset, this post-translation will NOT be applied.</p>
<p>4x4 for compatibility with scenic. This matrix is required to have the form:</p>
<p>[ Sx 0 0 Tx ]
[ 0 Sy 0 Ty ]
[ 0 0 Sz Tz ]
[ 0 0 0 1 ]</p>
<p>where Sx, Sy, and Sz are scale factors and Tx, Ty, Tz are the translation factors for
the x, y, and z components.</p>
</td>
</tr>
</table>
### RangeAttributes {#RangeAttributes data-text="RangeAttributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=143)*
<p>Slider / range control attributes.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="RangeAttributes.min_value">
<td><h3 id="RangeAttributes.min_value" class="add-link hide-from-toc">1</h3></td>
<td><code>min_value</code></td>
<td>
<code>float32</code>
</td>
<td><p>The minimum value a range control element can take.</p>
</td>
</tr>
<tr id="RangeAttributes.max_value">
<td><h3 id="RangeAttributes.max_value" class="add-link hide-from-toc">2</h3></td>
<td><code>max_value</code></td>
<td>
<code>float32</code>
</td>
<td><p>The maximum value a range control element can take.</p>
</td>
</tr>
<tr id="RangeAttributes.step_delta">
<td><h3 id="RangeAttributes.step_delta" class="add-link hide-from-toc">3</h3></td>
<td><code>step_delta</code></td>
<td>
<code>float32</code>
</td>
<td><p>The step delta the element applies when the action DECREMENT or
INCREMENT are invoked.</p>
</td>
</tr>
</table>
### SetAttributes {#SetAttributes data-text="SetAttributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=156)*
<p>Set attributes that control how an element is connected to others in the
same set. For example, a group of radio buttons in html containing the same
name attribute are part of the same set.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="SetAttributes.size">
<td><h3 id="SetAttributes.size" class="add-link hide-from-toc">1</h3></td>
<td><code>size</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Size of the set.</p>
</td>
</tr>
<tr id="SetAttributes.index">
<td><h3 id="SetAttributes.index" class="add-link hide-from-toc">2</h3></td>
<td><code>index</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Element index in the set, starting from one.</p>
</td>
</tr>
<tr id="SetAttributes.set_element_ids">
<td><h3 id="SetAttributes.set_element_ids" class="add-link hide-from-toc">3</h3></td>
<td><code>set_element_ids</code></td>
<td>
<code>vector&lt;uint32&gt;[100]</code>
</td>
<td><p>Node ids of other elements in this set.</p>
</td>
</tr>
</table>
### States {#States data-text="States"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=288)*
<p>A state is a dynamic property of an element that may change in response to
user action or automated processes. Thus, they are different from attributes
in an important point, which is frequency of change.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="States.checked">
<td><h3 id="States.checked" class="add-link hide-from-toc">1</h3></td>
<td><code>checked</code></td>
<td>
<code>bool</code>
</td>
<td><p>DEPRECATED</p>
</td>
</tr>
<tr id="States.checked_state">
<td><h3 id="States.checked_state" class="add-link hide-from-toc">2</h3></td>
<td><code>checked_state</code></td>
<td>
<code><a class='link' href='#CheckedState'>CheckedState</a></code>
</td>
<td><p>State of a checkbox.
This field is mutually exclusive with ToggledState.</p>
</td>
</tr>
<tr id="States.selected">
<td><h3 id="States.selected" class="add-link hide-from-toc">3</h3></td>
<td><code>selected</code></td>
<td>
<code>bool</code>
</td>
<td><p>Whether the element is currently selected.</p>
</td>
</tr>
<tr id="States.hidden">
<td><h3 id="States.hidden" class="add-link hide-from-toc">4</h3></td>
<td><code>hidden</code></td>
<td>
<code>bool</code>
</td>
<td><p>Whether the element is currently hidden or marked invisible by the framework.</p>
</td>
</tr>
<tr id="States.value">
<td><h3 id="States.value" class="add-link hide-from-toc">5</h3></td>
<td><code>value</code></td>
<td>
<code>string[16384]</code>
</td>
<td><p>The user-entered value of the element, if applicable. If longer than MAX_VALUE_SIZE the
client is responsible for truncating.</p>
</td>
</tr>
<tr id="States.range_value">
<td><h3 id="States.range_value" class="add-link hide-from-toc">6</h3></td>
<td><code>range_value</code></td>
<td>
<code>float32</code>
</td>
<td><p>If the element is a slider or a range control, this field contains the
current value. Note that this is not the same as the value field above,
as this is generated by the client and just adjusted by the user.</p>
</td>
</tr>
<tr id="States.viewport_offset">
<td><h3 id="States.viewport_offset" class="add-link hide-from-toc">7</h3></td>
<td><code>viewport_offset</code></td>
<td>
<code><a class='link' href='../fuchsia.ui.gfx/'>fuchsia.ui.gfx</a>/<a class='link' href='../fuchsia.ui.gfx/#vec2'>vec2</a></code>
</td>
<td></td>
</tr>
<tr id="States.toggled_state">
<td><h3 id="States.toggled_state" class="add-link hide-from-toc">8</h3></td>
<td><code>toggled_state</code></td>
<td>
<code><a class='link' href='#ToggledState'>ToggledState</a></code>
</td>
<td><p>State of a toggle switch.
This field must only be set if the element is a toggle switch element
and is mutually exclusive with CheckedState.</p>
</td>
</tr>
<tr id="States.focusable">
<td><h3 id="States.focusable" class="add-link hide-from-toc">9</h3></td>
<td><code>focusable</code></td>
<td>
<code>bool</code>
</td>
<td><p>Whether this element is focusable in the UI. Note that this is not the
a11y focus, but the input focus.</p>
</td>
</tr>
<tr id="States.has_input_focus">
<td><h3 id="States.has_input_focus" class="add-link hide-from-toc">10</h3></td>
<td><code>has_input_focus</code></td>
<td>
<code>bool</code>
</td>
<td><p>Whether this element has the input focus. This corresponds to the
system focus. Only one element can have this value set. The behavior is
undetermined if more than one node sets this value to 'true'.</p>
</td>
</tr>
</table>
### TableAttributes {#TableAttributes data-text="TableAttributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=166)*
<p>Attributes that control how a table cell node is interpreted.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="TableAttributes.column_span">
<td><h3 id="TableAttributes.column_span" class="add-link hide-from-toc">1</h3></td>
<td><code>column_span</code></td>
<td>
<code>uint32</code>
</td>
<td><p>The number of columns this table cell spans.</p>
<p><b>DEPRECATED </b>- Use TableCellAttributes for cell nodes instead</p></td>
</tr>
<tr id="TableAttributes.row_span">
<td><h3 id="TableAttributes.row_span" class="add-link hide-from-toc">2</h3></td>
<td><code>row_span</code></td>
<td>
<code>uint32</code>
</td>
<td><p>The number of rows this table cell spans.</p>
<p><b>DEPRECATED </b>- Use TableCellAttributes for cell nodes instead</p></td>
</tr>
<tr id="TableAttributes.number_of_rows">
<td><h3 id="TableAttributes.number_of_rows" class="add-link hide-from-toc">3</h3></td>
<td><code>number_of_rows</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Number of rows in this table.</p>
</td>
</tr>
<tr id="TableAttributes.number_of_columns">
<td><h3 id="TableAttributes.number_of_columns" class="add-link hide-from-toc">4</h3></td>
<td><code>number_of_columns</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Number of columns in this table.</p>
</td>
</tr>
<tr id="TableAttributes.column_header_ids">
<td><h3 id="TableAttributes.column_header_ids" class="add-link hide-from-toc">5</h3></td>
<td><code>column_header_ids</code></td>
<td>
<code>vector&lt;uint32&gt;[100]</code>
</td>
<td><p>Node ids of the table's column headers.</p>
</td>
</tr>
<tr id="TableAttributes.row_header_ids">
<td><h3 id="TableAttributes.row_header_ids" class="add-link hide-from-toc">6</h3></td>
<td><code>row_header_ids</code></td>
<td>
<code>vector&lt;uint32&gt;[100]</code>
</td>
<td><p>Node ids of the table's row headers.</p>
</td>
</tr>
</table>
### TableCellAttributes {#TableCellAttributes data-text="TableCellAttributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=195)*
<p>Attributes that control how a table cell is interpreted.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="TableCellAttributes.row_index">
<td><h3 id="TableCellAttributes.row_index" class="add-link hide-from-toc">1</h3></td>
<td><code>row_index</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Row-index of this cell.</p>
</td>
</tr>
<tr id="TableCellAttributes.column_index">
<td><h3 id="TableCellAttributes.column_index" class="add-link hide-from-toc">2</h3></td>
<td><code>column_index</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Column-index of this cell.</p>
</td>
</tr>
<tr id="TableCellAttributes.row_span">
<td><h3 id="TableCellAttributes.row_span" class="add-link hide-from-toc">3</h3></td>
<td><code>row_span</code></td>
<td>
<code>uint32</code>
</td>
<td><p>The number of rows this table cell spans.</p>
</td>
</tr>
<tr id="TableCellAttributes.column_span">
<td><h3 id="TableCellAttributes.column_span" class="add-link hide-from-toc">4</h3></td>
<td><code>column_span</code></td>
<td>
<code>uint32</code>
</td>
<td><p>The number of columns this table cell spans.</p>
</td>
</tr>
</table>
### TableRowAttributes {#TableRowAttributes data-text="TableRowAttributes"}
*Defined in [fuchsia.accessibility.semantics/node.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=189)*
<p>Attributes that control how a table row node is interpreted.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="TableRowAttributes.row_index">
<td><h3 id="TableRowAttributes.row_index" class="add-link hide-from-toc">1</h3></td>
<td><code>row_index</code></td>
<td>
<code>uint32</code>
</td>
<td><p>Table row index.</p>
</td>
</tr>
</table>
## **UNIONS**
### SemanticEvent [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SemanticEvent data-text="SemanticEvent"}
*Defined in [fuchsia.accessibility.semantics/semantics_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=44)*
<p>Represents a Semantic Event that is fired on a Semantic Tree.</p>
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="SemanticEvent.announce">
<td><h3 id="SemanticEvent.announce" class="add-link hide-from-toc">1</h3></td>
<td><code>announce</code></td>
<td>
<code><a class='link' href='#AnnounceEvent'>AnnounceEvent</a></code>
</td>
<td></td>
</tr>
</table>
## **CONSTANTS**
<table>
<tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr>
<tr id="MAX_FAN_OUT">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=13">MAX_FAN_OUT</a></td>
<td>
<code>20000</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum number of children for a node in the semantic tree.</p>
</td>
</tr>
<tr id="MAX_LABEL_SIZE">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=19">MAX_LABEL_SIZE</a></td>
<td>
<code>16384</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum size of a label string, in bytes.</p>
</td>
</tr>
<tr id="MAX_MESSAGE_SIZE">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=25">MAX_MESSAGE_SIZE</a></td>
<td>
<code>16384</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum size of a message string, in bytes.</p>
</td>
</tr>
<tr id="MAX_NODES_PER_UPDATE">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=16">MAX_NODES_PER_UPDATE</a></td>
<td>
<code>2048</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum number of semantic nodes that may be sent in a single update.</p>
</td>
</tr>
<tr id="MAX_SET_ELEMENTS">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/node.fidl;l=9">MAX_SET_ELEMENTS</a></td>
<td>
<code>100</code>
</td>
<td><code>uint32</code></td>
<td><p>Max number of elements in a semantic set.</p>
</td>
</tr>
<tr id="MAX_TREE_DEPTH">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=10">MAX_TREE_DEPTH</a></td>
<td>
<code>256</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum depth of the semantic tree.</p>
</td>
</tr>
<tr id="MAX_VALUE_SIZE">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.accessibility.semantics/semantics_manager.fidl;l=22">MAX_VALUE_SIZE</a></td>
<td>
<code>16384</code>
</td>
<td><code>uint64</code></td>
<td><p>Maximum size of a value string, in bytes.</p>
</td>
</tr>
</table>