设置无障碍节点是否被选中

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。
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐