semantics
fun Modifier.semantics(
mergeDescendants: Boolean = false,
properties: (SemanticsPropertyReceiver.() -> Unit),
): Modifier
Add semantics key/value pairs to the layout node, for use in testing, accessibility, etc.
The provided lambda receiver scope provides "key = value"-style setters for any
SemanticsPropertyKey. Additionally, chaining multiple semantics modifiers is also a supported
style.
The resulting semantics produce two SemanticsNode trees:
The "unmerged tree" rooted at SemanticsOwner.unmergedRootSemanticsNode has one SemanticsNode
per layout node which has any SemanticsModifier on it. This SemanticsNode contains all the
properties set in all the SemanticsModifiers on that node.
The "merged tree" rooted at SemanticsOwner.rootSemanticsNode has equal-or-fewer nodes: it
simplifies the structure based on mergeDescendants and clearAndSetSemantics. For most
purposes (especially accessibility, or the testing of accessibility), the merged semantics tree
should be used.
Note: The properties block should be used to set semantic properties or semantic actions. Don't call SemanticsModifierNode.applySemantics from within the properties block. It will result in an infinite loop.
Parameters
| mergeDescendants | Whether the semantic information provided by the owning component and its descendants should be treated as one logical entity. Most commonly set on screen-reader-focusable items such as buttons or form fields. In the merged semantics tree, all descendant nodes (except those themselves marked mergeDescendants) will disappear from the tree, and their properties will get merged into the parent's configuration (using a merging algorithm that varies based on the type of property -- for example, text properties will get concatenated, separated by commas). In the unmerged semantics tree, the node is simply marked with SemanticsConfiguration.isMergingSemanticsOfDescendants. |
| properties | properties to add to the semantics. SemanticsPropertyReceiver will be provided in the scope to allow access for common properties and its values. |
