#跟着坚果学鸿蒙#支持无障碍 <三>
·
设置无障碍节点是否被选中
accessibilityChecked和accessibilitySelected是两个用于增强无障碍体验的属性,主要用于向屏幕朗读等辅助工具传达组件的选中状态。
在支持多选的情况下,设置无障碍节点是否被选中
accessibilityChecked属性,用于表示组件在支持多选的情况下是否被勾选(如复选框、开关按钮等二态或三态组件),适用于需要明确“选中/未选中”语义的场景,支持以下值:
-
undefined(默认):由系统自动判断(依赖组件自身的状态,如Toggle组件的isOn属性)。
-
false:未选中。
-
true:选中(如复选框打勾)。
这里以Column组件为例,设置其在支持多选的情况下被选中:
Column() {
}
.accessibilityGroup(true)
.accessibilityLevel("yes")
.accessibilityText("分组")
.accessibilityDescription("Column组件可以被选中,播报的内容是“分组”")
.accessibilityChecked(true)
在支持单选的情况下,设置无障碍节点是否被选中
accessibilitySelected属性,用于表示组件在支持单选的情况下是否被选择(如单选列表项、标签页等),适用于需要区分“当前选中项”的场景(如单选组、导航菜单),支持以下值:
-
undefined(默认):由系统自动判断。
-
false:未选中。
-
true:当前选中。
这里以Column组件为例,设置在支持单选的情况下由系统自行确定其选中状态:
Column() {
}
.accessibilityGroup(true)
.accessibilityLevel("yes")
.accessibilityText("分组")
.accessibilityDescription("Column组件可以被选中,播报的内容是“分组”")
.accessibilitySelected(undefined)
accessibilityChecked属性与accessibilitySelected属性的关键区别
在ArkUI无障碍属性中,accessibilityChecked和accessibilitySelected均用于表示组件的状态,但二者应用场景与语义含义存在本质差异。以下是二者的对比:
属性 | accessibilityChecked | accessibilitySelected |
---|---|---|
常见场景 | 复选框、开关等二态/三态组件。 | 单选列表、标签页等互斥选择场景。 |
语义目标 | 控件物理状态(如开关是否打开)。 | 导航焦点项(如列表当前选中项)。 |
状态持久性 | 通常需显式保存(如表单提交)。 | 临时性(随焦点移动变化)。 |
典型组件 | Checkbox,Toggle。 | List,Tabs。 |
更多推荐
所有评论(0)