管理中心
我的

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考应用框架ArkUI(方舟UI框架)ArkTS组件通用属性无障碍属性

无障碍属性

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

设置组件的无障碍属性和事件,以充分利用无障碍功能。支持设置无障碍分组、无障碍文本、无障碍说明、无障碍重要性、无障碍虚拟子节点、无障碍组件类型、屏幕朗读焦点控制、状态播报、自定义无障碍操作等能力,适用于需要为视障用户提供屏幕朗读辅助、提升应用无障碍可达性的场景。

说明
  • 从API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

  • 本模块接口仅可在Stage模型下使用。

accessibilityGroup

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityGroup(value: boolean): T

设置是否启用无障碍分组。启用无障碍分组后,组件及其子组件作为一整个可选中组件,无障碍服务不再关注子组件内容。

若组件启用无障碍分组,当组件不包含通用文本属性,同时未设置无障碍文本accessibilityText时,将默认拼接其子组件的通用文本属性作为组件的合并文本。若某一子组件没有通用文本属性,则忽略该子组件不进行拼接,此时合并文本不使用子组件的无障碍文本。

当子组件accessibilityLevel设置为"yes"时则不受accessibilityGroup约束,在满足屏幕朗读其他规则下,子组件可聚焦。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value boolean 是

无障碍分组,设置为true时表示该组件及其所有子组件为一整个可以选中的组件,无障碍服务将不再关注其子组件内容,会合并子组件的文本与无障碍信息,并将其发送至无障碍服务;设置为false表示不启用无障碍分组。

默认值:false

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityGroup14+

Phone14+PC/2in114+Tablet14+TV19+Wearable18+

accessibilityGroup(isGroup: boolean, accessibilityOptions: AccessibilityOptions): T

设置是否启用无障碍分组。启用无障碍分组后,组件及其子组件作为一整个可选中组件,无障碍服务不再关注子组件内容。

若组件启用无障碍分组,当组件不包含通用文本属性,同时未设置无障碍文本accessibilityText时,将默认拼接其子组件的通用文本属性作为组件的合并文本。若某一子组件没有通用文本属性,则忽略该子组件不进行拼接,此时合并文本不使用子组件的无障碍文本。

当子组件accessibilityLevel设置为"yes"时则不受accessibilityGroup约束,在满足屏幕朗读其他规则下,子组件可聚焦。

通过accessibilityPreferred启用优先拼接无障碍文本进行朗读后,将优先拼接其子组件的无障碍文本属性作为组件的合并文本。若某一子组件未设置无障碍文本,则继续拼接该子组件的通用文本属性,若该子组件没有通用文本属性,则忽略该子组件不进行拼接。

从API version 23开始,通过accessibilityOptions中的相关配置项(stateControllerRoleType或stateControllerId、actionControllerRoleType或actionControllerId),可以指定一个特定子组件,由该子组件的状态信息和点击事件来接管当前聚合组件的无障碍能力。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 14开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 14开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
isGroup boolean 是

无障碍分组,设置为true时表示该组件及其所有子组件为一整个可以选中的组件,无障碍服务将不再关注其子组件内容,会合并子组件的文本与无障碍信息,并将其发送至无障碍服务;设置为false表示不启用无障碍分组。

默认值:false

accessibilityOptions AccessibilityOptions 是

无障碍分组的配置选项对象,包含以下属性:

- accessibilityPreferred:设置为true时,使应用优先拼接无障碍文本进行朗读;设置为false时,应用进行屏幕朗读时不会优先使用无障碍文本。

- stateControllerRoleType或stateControllerId:从API version 23开始支持,指定一个特定子组件,使用该子组件的状态信息作为当前聚合组件的无障碍状态。

- actionControllerRoleType或actionControllerId:从API version 23开始支持,指定一个特定子组件,使用该子组件的点击事件作为当前聚合组件的无障碍操作。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityText

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityText(value: string): T

设置无障碍文本。当组件不包含文本属性时,开发人员可通过设置无障碍文本属性,使不包含文字信息的组件能够播报无障碍文本的内容;当组件同时包含文本属性时,在朗读场景优先播报无障碍文本。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value string 是

无障碍文本,当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。

默认值:“”

说明:

若组件既拥有文本属性,又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。

若组件设置了无障碍分组属性为true,但是既没有无障碍文本属性,也没有文本属性,会对其子节点的组件进行文本拼接(深度优先)。

不对无障碍文本属性进行拼接,如需优先拼接无障碍文本,则需设置accessibilityGroup的accessibilityPreferred。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityText12+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityText(text: Resource): T

设置无障碍文本,支持通过Resource引用资源文件。当组件不包含文本属性时,开发人员可通过设置无障碍文本属性,使不包含文字信息的组件能够播报无障碍文本的内容;当组件同时包含文本属性时,在朗读场景优先播报无障碍文本。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
text Resource 是

无障碍文本引用资源,当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。

说明:

若组件既拥有文本属性,又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。

若组件设置了无障碍分组属性为true,但是既没有无障碍文本属性,也没有文本属性,会对其子节点的组件进行文本拼接(深度优先)。

不对无障碍文本属性进行拼接,如需优先拼接无障碍文本,则需设置accessibilityGroup的accessibilityPreferred。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityDescription

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityDescription(value: string): T

设置无障碍说明。该属性用于为用户进一步说明当前组件,开发人员可为组件设置相对较详细的解释文本,帮助用户理解将要执行的操作。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value string 是

无障碍说明,用于为用户进一步说明当前组件,开发人员可为组件的该属性设置相对较详细的解释文本,帮助用户理解将要执行的操作。如帮助用户理解将要执行的操作可能导致什么后果,尤其是当这些后果无法从组件本身属性与无障碍文本中了解到时。若组件既拥有文本属性又拥有无障碍说明属性,则组件被选中时,先播报组件的文本属性,再播报无障碍说明属性的内容。

默认值:“”

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityDescription12+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityDescription(description: Resource): T

设置无障碍说明,支持通过Resource引用资源文件。该属性用于为用户进一步说明当前组件,开发人员可为组件设置相对较详细的解释文本,帮助用户理解将要执行的操作。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
description Resource 是 无障碍说明引用资源,用于为用户进一步说明当前组件,开发人员可为组件的该属性设置相对较详细的解释文本,帮助用户理解将要执行的操作。如帮助用户理解将要执行的操作可能导致什么后果,尤其是当这些后果无法从组件本身属性与无障碍文本中了解到时。若组件既拥有文本属性又拥有无障碍说明属性,则组件被选中时,先播报组件的文本属性,再播报无障碍说明属性的内容。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityLevel

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityLevel(value: string): T

设置无障碍重要性。该属性用于控制某个组件是否可被无障碍辅助服务所识别。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value string 是

无障碍重要性,用于控制某个组件是否可被无障碍辅助服务所识别。

支持的值为:

"auto":当前组件由无障碍辅助服务和ArkUI进行综合判断组件是否可被无障碍辅助服务所识别。

"yes":当前组件可被无障碍辅助服务所识别。当父组件启用无障碍分组时,设置为"yes"的子组件不受分组约束,在满足屏幕朗读其他规则下仍可聚焦。

"no":当前组件不可被无障碍辅助服务所识别。

"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。

默认值:"auto"

说明:

当accessibilityLevel设置成"auto"时,组件是否可被无障碍辅助服务所识别取决于以下多方面因素:

1. 组件是否可被识别由无障碍辅助服务内部判断,自行选择。

2. 若组件的父组件accessibilityGroup属性中isGroup设置为true,无障碍服务将不再关注其子组件内容,组件不可被无障碍辅助服务所识别。

3. 若组件的父组件accessibilityLevel属性设置为"no-hide-descendants",组件不可被无障碍辅助服务所识别。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityVirtualNode11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityVirtualNode(builder: CustomBuilder): T

设置无障碍虚拟子节点。对自绘制组件传入一个CustomBuilder,该CustomBuilder中的组件在后端仅做布局不做显示,辅助应用获取无障碍节点信息时会返回CustomBuilder中的节点信息。如使用画布组件Canvas时,可以通过虚拟节点设置相应位置和大小匹配的占位组件,让无障碍服务识别到对应区域的自绘制信息。

说明

该接口不支持在attributeModifier中调用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
builder CustomBuilder 是 无障碍虚拟子节点,使开发者可以对自绘制组件传入一个CustomBuilder,该CustomBuilder中的组件在后端仅做布局不做显示,辅助应用获取无障碍节点信息时会返回CustomBuilder中的节点信息。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityChecked13+

Phone13+PC/2in113+Tablet13+TV19+Wearable18+

accessibilityChecked(isCheck: boolean): T

无障碍节点是否选中的状态维护,用于支持多选,表示组件是否被选中。此接口只影响屏幕朗读场景下的组件状态播报信息。

说明

从API version 20开始,该接口支持在attributeModifier中调用。

卡片能力: 从API version 13开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 13开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
isCheck boolean 是

用于表示组件是否被选中。

支持的值为:

true:当前组件被选中。

false:当前组件未被选中。

undefined:由组件自行确定选中状态。

默认值:undefined

说明:

1. 使用该接口设置true或false后,会默认修改该组件的checkable属性为true。

2. accessibilityChecked属性代表组件是多选模式,而accessibilitySelected属性代表组件是单选模式。组件不能同时存在两种选择模式,会造成无障碍状态冲突,导致屏幕朗读等无障碍辅助应用无法正确识别选中状态。如使用当前接口设置组件为多选模式(设置为true、false),则需要保证未使用accessibilitySelected函数设置属性为true或者false,如果已设置,需使用accessibilitySelected函数设置accessibilitySelected属性为undefined模式。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilitySelected13+

Phone13+PC/2in113+Tablet13+TV19+Wearable18+

accessibilitySelected(isSelect: boolean): T

无障碍节点是否选中的状态维护,用于支持单选,表示组件是否被选中。此接口只影响屏幕朗读场景下的组件状态播报信息。

说明

从API version 20开始,该接口支持在attributeModifier中调用。

卡片能力: 从API version 13开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 13开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
isSelect boolean 是

用于表示组件是否被选中。

支持的值为:

true:当前组件被选中。

false:当前组件未被选中。

undefined:由组件自行确定选中状态。

默认值:undefined

说明:

1. accessibilityChecked属性代表组件是多选模式,而accessibilitySelected属性代表组件是单选模式。组件不能同时存在两种选择模式,会造成无障碍状态冲突,导致屏幕朗读等无障碍辅助应用无法正确识别选中状态。

如使用当前接口设置组件为单选模式(true、false),则需要保证未使用accessibilityChecked函数设置属性为true或者false;

如果已设置,需使用accessibilityChecked函数设置accessibilityChecked属性为undefined模式。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityRole18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

accessibilityRole(role: AccessibilityRoleType): T

设置无障碍组件类型,不同组件类型有对应的朗读方式,可以根据应用诉求,修改组件类型,用于控制无障碍模式下对组件的朗读方式和朗读内容。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
role AccessibilityRoleType 是 屏幕朗读播报的组件类型,如按钮、图表。具体类型可由开发者根据需要选择。

返回值:

展开
类型 说明
T 返回当前对象。

AccessibilityRoleType18+枚举说明

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

定义组件的屏幕朗读功能角色类型。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 值 说明
ACTION_SHEET 0 列表弹窗。
ALERT_DIALOG 1 显示警告弹窗组件。
INDEXER_COMPONENT 2 索引器组件。
BADGE_COMPONENT 3 信息标记组件。
BLANK 4 空白填充组件。
BUTTON 5 按钮。
BACK_BUTTON 6 大图页返回按钮。
SHEET_DRAG_BAR 7 弹窗拖拽条。
CALENDAR_PICKER 8 日历选择器组件。
CALENDAR 9 日历。
CANVAS 10 提供画布组件。
CANVAS_GRADIENT 11 渐变对象。
CANVAS_PATTERN 12 通过指定图像和重复方式创建图片填充的模板。
CHECKBOX 13 提供多选框组件。
CHECKBOX_GROUP 14 多选框群组。
CIRCLE 15 用于绘制圆形的组件。
COLUMN_SPLIT 16 将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。
COLUMN 17 沿垂直方向布局的容器。
CANVAS_RENDERING_CONTEXT_2D 18 用于在画布组件上绘制矩形、文本、图片等。
CHART 19 图表组件。
COUNTER 20 计数器组件。
CONTAINER_MODAL 21 模态容器。
DATA_PANEL 22 数据面板组件。
DATE_PICKER 23 选择日期的滑动选择器组件。
DIALOG 24 弹出框。
DIVIDER 25 提供分隔器组件。
DRAG_BAR 26 拖拽条。
EFFECT_COMPONENT 27 特效合并容器组件。
ELLIPSE 28 椭圆绘制组件。
FLEX 29 以弹性方式布局子组件的容器组件。
FLOW_ITEM 30 瀑布流组件的子组件。
FORM_COMPONENT 31 提供卡片组件。
FORM_LINK 32 静态卡片交互组件。
GAUGE 33 数据量规图表组件。
GRID 34 网格容器。
GRID_COL 35 栅格子组件。
GRID_CONTAINER 36 纵向排布栅格布局容器。
GRID_ITEM 37 网格容器中单项内容容器。
GRID_ROW 38 栅格容器组件。
HYPERLINK 39 超链接组件。
IMAGE 40 图片组件。
IMAGE_ANIMATOR 41 提供帧动画组件。
IMAGE_BITMAP 42 可在画布上绘制的位图图像对象。
IMAGE_DATA 43 存储画布区域的像素数据。
IMAGE_SPAN 44 用于显示行内图片。
LABEL 45 标签。
LINE 46 线型。
LIST 47 列表。
LIST_ITEM 48 用来展示列表具体item。
LIST_ITEM_GROUP 49 用来展示列表item分组。
LOADING_PROGRESS 50 用于显示加载动效的组件。
MARQUEE 51 跑马灯组件。
MATRIX2D 52 矩阵对象。
MENU 53 菜单。
MENU_ITEM 54 菜单项。
MENU_ITEM_GROUP 55 菜单项分组。
NAV_DESTINATION 56 显示Navigation的内容区。
NAV_ROUTER 57 导航组件。
NAVIGATION 58 路由导航的根视图容器。
NAVIGATION_BAR 59 导航栏。
NAVIGATION_MENU 60 导航菜单。
NAVIGATOR 61 路由容器组件。
OFFSCREEN_CANVAS 62 用于自定义绘制图形。
OFFSCREEN_CANVAS_RENDERING_CONTEXT2D 63 2D绘制对象,用于在画布组件上绘制矩形、文本、图片等。
OPTION 64 具体项目。
PANEL 65 可滑动面板。
PAPER_PAGE 66 页面。
PATH 67 路径绘制组件。
PATH2D 68 路径对象。
PATTERN_LOCK 69 图案密码锁组件。
PICKER 70 选择器。
PICKER_VIEW 71 选择器视图。
PLUGIN_COMPONENT 72 新增插件组件。
POLYGON 73 多边形绘制组件。
POLYLINE 74 折线绘制组件。
POPUP 75 显示特定样式气泡。
PROGRESS 76 进度条组件。
QRCODE 77 二维码。
RADIO 78 单选框。
RATING 79 提供在给定范围内选择评分的组件。
RECT 80 矩形绘制组件。
REFRESH 81 下拉刷新容器组件。
RELATIVE_CONTAINER 82 相对布局组件。
REMOTE_WINDOW 83 远程控制窗口组件。
RICH_EDITOR 84 支持图文混排和文本交互式编辑的组件。
RICH_TEXT 85 富文本组件。
ROLE_PAGER 86 分页。
ROW 87 沿水平方向布局容器。
ROW_SPLIT 88 将子组件横向布局,并在每个子组件之间插入一根纵向的分割线。
SCROLL 89 可滚动的容器组件。
SCROLL_BAR 90 滚动条。
SEARCH 91 搜索框组件。
SEARCH_FIELD 92 搜索框。
SELECT 93 下拉选择菜单组件。
SHAPE 94 绘制组件的父组件。
SIDEBAR_CONTAINER 95 提供侧边栏可以显示和隐藏的侧边栏容器。
SLIDER 96 滑动条组件。
SPAN 97 用于显示行内文本的组件。
STACK 98 堆叠容器。
STEPPER 99 步骤导航器组件。
STEPPER_ITEM 100 用作Stepper组件的页面子组件。
SWIPER 101 滑块视图容器。
SWIPER_INDICATOR 102 定义 Swiper 组件的导航指示器。
SWITCH 103 开关。
SYMBOL_GLYPH 104 显示图标小符号的组件。
TAB_CONTENT 105 仅在Tabs中使用,对应一个切换页签的内容视图。
TAB_BAR 106 页签栏。
TABS 107 通过页签进行内容视图切换的容器组件。
TEXT 108 文本。
TEXT_CLOCK 109 文本时钟组件。
TEXT_ENTRY 110 文本输入。
TEXT_INPUT 111 输入框组件。
TEXT_PICKER 112 文本类滑动选择器组件。
TEXT_TIMER 113 通过文本显示计时信息并控制其计时器状态的组件。
TEXT_AREA 114 输入区域组件。
TEXT_FIELD 115 文本框。
TIME_PICKER 116 时间选择组件。
TITLE_BAR 117 标题栏。
TOGGLER 118 状态组件。
UI_EXTENSION_COMPONENT 119 用户界面扩展组件。
VIDEO 120 用于播放视频文件并控制其播放状态的组件。
WATER_FLOW 121 瀑布流容器。
WEB 122 加载网页组件。
XCOMPONENT 123 自定义渲染。
ROLE_NONE 124 不设置特定的无障碍组件类型,组件按照自身默认类型进行屏幕朗读播报。

accessibilityNextFocusId18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

accessibilityNextFocusId(nextId: string): T

指定屏幕朗读扫动走焦过程中组件的下一个焦点。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
nextId string 是 下一个被指定聚焦组件的唯一标识id。若唯一标识id无对应组件,则设置的accessibilityNextFocusId不存在,设置无效。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityNextFocusId

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityNextFocusId(nextId: string, nextFocusParams: AccessibilityNextFocusParams | undefined): T

指定屏幕朗读扫动走焦过程中组件的下一个焦点,并支持配置详细参数。

通过AccessibilityNextFocusParams参数,可以配置是否在无障碍下一个焦点处理过程中查找后代节点中的焦点。

起始版本: 26.0.0

卡片能力: 从API版本26.0.0开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
nextId string 是 下一个被指定聚焦组件的唯一标识id。若唯一标识id无对应组件,则设置的accessibilityNextFocusId不存在,设置无效。
nextFocusParams AccessibilityNextFocusParams | undefined 是

无障碍下一个焦点处理的详细参数,用于配置是否在后代节点中查找可聚焦节点。

取值为undefined时,不配置下一个焦点处理的详细参数,不在后代节点中查找焦点。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityDefaultFocus18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

accessibilityDefaultFocus(focus: boolean): T

为页面设置屏幕朗读初始焦点。屏幕朗读首次进入当前页面时,会将焦点定位到设置为true的组件,便于开发者引导用户优先关注页面核心内容。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
focus boolean 是 为页面设置屏幕朗读初始焦点。值为true则表示该组件为当前页默认首焦点,值为false则不设置该组件为默认首焦点。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityUseSamePage18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

accessibilityUseSamePage(pageMode: AccessibilitySamePageMode): T

设置当前组件和宿主应用为同page模式。

针对跨进程嵌入式显示的组件,例如EmbeddedComponent,其子树场景中出现的跳焦问题,可通过设置accessibilityUseSamePage属性解决。因跨进程嵌入式显示的组件启动进程的页面变化事件与宿主页面变化事件发送时序不一致,可能导致焦点从当前组件移至另一组件,此现象称为“跳焦”。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
pageMode AccessibilitySamePageMode 是 当前跨进程嵌入式显示的组件和宿主应用的同page模式。

返回值:

展开
类型 说明
T 返回当前对象。

AccessibilitySamePageMode18+枚举说明

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

当前跨进程嵌入式显示的组件和宿主应用的同page模式。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 值 说明
SEMI_SILENT 0 跨进程嵌入式显示的组件所启动的进程中,首次加载页面时发送的page事件,以及该页面根节点发送的page事件,将被忽略。
FULL_SILENT 1 跨进程嵌入式显示的组件将忽略所有的page事件。

accessibilityScrollTriggerable18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

accessibilityScrollTriggerable(isTriggerable: boolean): T

设置无障碍节点是否支持屏幕朗读滚动操作。当屏幕朗读在扫动走焦时,若容器内当前页面无可聚焦的组件,会发起一次自动滚动操作。

卡片能力: 从API version 18开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
isTriggerable boolean 是

用于表示组件是否支持该能力。

支持的值为:

true:屏幕朗读焦点切换而容器内当前页面无可聚焦的组件时,需要自动滚动操作。

false:屏幕朗读焦点切换而容器内当前页面无可聚焦的组件时,不需要自动滚动操作。

undefined:还原默认值。

默认值:true。

说明:

1. 该属性不影响原先无障碍节点属性ElementAttributeValues中的scrollable。

2. 组件在屏幕朗读下的滚动逻辑由屏幕朗读根据该属性和组件是否支持scroll来决定。

3. 该属性为通用属性,所有基础组件均可配置。建议配置的滚动组件类型,如List、Grid、Scroll、WaterFlow等。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityTextHint12+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

accessibilityTextHint(value: string): T

设置组件的文本提示信息,仅在与车机交互的场景下供车机的无障碍服务监听并响应。

说明

从API version 20开始,该接口支持在attributeModifier中调用。该接口用于设置组件通用属性,通过该属性接口进行配置的文本内容仅会被车机的无障碍服务所监听并响应,因此该接口仅在与车机交互的场景下生效,用于和车机服务进行地址推送联动。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value string 是 组件的文本提示信息,仅在与车机交互的场景下供车机的无障碍服务监听并响应。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityFocusDrawLevel19+

Phone19+PC/2in119+Tablet19+TV19+Wearable19+

accessibilityFocusDrawLevel(drawLevel: FocusDrawLevel): T

设置无障碍焦点绿框的绘制层级。

说明
  1. 在聚焦节点层级绘制获焦无障碍绿框,默认使用该层级绘制,由于组件的绘制顺序以及图形绘制顺序,绘制的绿框会被父组件或者Z序控制更高的兄弟组件遮挡裁切。

  2. 在Z序控制顶层绘制绿框情况下,可以避免由于组件遮挡overlay、裁切clip导致无障碍绿框无法正常显示。但由于具备较高的绘制层级,如果在交互过程中需要遮挡当前获焦的组件,且不希望显示无障碍绿框,则不适合使用该配置。

卡片能力: 从API version 19开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 19开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
drawLevel FocusDrawLevel 是 无障碍焦点绿框的绘制层级,用于控制绿框的绘制位置。默认情况下在聚焦节点层级绘制(即绘制聚焦节点本身)。可选值及含义参见FocusDrawLevel枚举,包括在聚焦节点层级绘制和在Z序控制顶层绘制两种模式。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityStateDescription23+

Phone23+PC/2in123+Tablet23+TV23+Wearable23+

accessibilityStateDescription(description: string | Resource | undefined): T

设置组件的状态播报文本,用于屏幕朗读场景下清晰说明组件当前的实时状态。屏幕朗读时会优先播报该状态文本。

卡片能力: 从API version 23开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 23开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
description string | Resource | undefined 是

需要播报组件当前状态的语音播报文本。

设置文本超过1000字符时,截取前1000字符进行播报。

undefined:播报文本默认为空。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityActionOptions23+

Phone23+PC/2in123+Tablet23+TV23+Wearable23+

accessibilityActionOptions(option: AccessibilityActionOptions | undefined): T

设置组件无障碍操作的可选参数,用于限制或修改屏幕朗读等辅助应用发起的操作行为。

卡片能力: 从API version 23开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API version 23开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
option AccessibilityActionOptions | undefined 是

无障碍操作的参数,用于限制或者修改无障碍操作下的滑动行为。

AccessibilityActionOptions中的scrollStep用于设置无障碍操作下的滑动步数。

取值为undefined时scrollStep按1处理。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityCustomActions

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityCustomActions(actions: Array<AccessibilityCustomAction> | undefined): T

设置组件的自定义无障碍操作,支持开发者设置一个自定义actions的数组,用于给组件按操作名进行自定义操作的回调绑定。

起始版本: 26.0.0

卡片能力: 从API版本26.0.0开始,该接口支持在ArkTS卡片中使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

模型约束: 此接口仅可在Stage模型下使用。

参数:

展开
参数名 类型 必填 说明
actions Array<AccessibilityCustomAction> | undefined 是

自定义无障碍操作数组,每个操作包含操作名称和回调,用于给组件按操作名进行自定义操作的回调绑定。

说明:

数组长度最大支持16个,超出部分将不生效。

取值为undefined时,不设置自定义操作。

返回值:

展开
类型 说明
T 返回当前对象。

示例

示例1(设置无障碍文本和无障碍说明)

该示例主要演示accessibilityText无障碍文本和accessibilityDescription无障碍说明的播报内容。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. @Builder
  6. customAccessibilityNode() {
  7. Column() {
  8. Text(`virtual node`)
  9. }
  10. .width(10)
  11. .height(10)
  12. }
  13. build() {
  14. Row() {
  15. Column() {
  16. Text('文本1')
  17. .fontSize(50)
  18. .fontWeight(FontWeight.Bold)
  19. Text("文本2")
  20. .fontSize(50)
  21. .fontWeight(FontWeight.Bold)
  22. }
  23. .width('100%')
  24. .accessibilityGroup(true)
  25. .accessibilityLevel("yes")
  26. .accessibilityText("分组") // 无障碍文本的内容,若组件既拥有文本属性又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。
  27. .accessibilityDescription("Column组件可以被选中,播报的内容是“分组”")
  28. .accessibilityVirtualNode(this.customAccessibilityNode)
  29. .accessibilityChecked(true)
  30. .accessibilitySelected(undefined)
  31. }
  32. .height('100%')
  33. }
  34. }

示例2(设置无障碍组)

该示例主要演示优先使用子组件的无障碍文本进行朗读。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Column({ space: 10 }) {
  7. Text('123456')
  8. .focusable(true)
  9. .borderRadius(5)
  10. .accessibilityText("有accessibility有text优先读accessibility")
  11. .accessibilityLevel("yes")
  12. Button().accessibilityLevel("yes").accessibilityText("accessibility无text 读accessibility")
  13. Button("无accessibility有text 读text").accessibilityLevel("yes")
  14. Button()
  15. Button('btn123').accessibilityText('有accessibility有text btn123').accessibilityLevel('yes')
  16. Button('btn123').accessibilityLevel("yes")
  17. }
  18. .accessibilityGroup(true, { accessibilityPreferred: true })
  19. .borderWidth(5)
  20. .width('100%')
  21. .height('100%')
  22. }
  23. }

示例3(设置首焦点和组件的下一个焦点)

该示例主要演示accessibilityDefaultFocus屏幕朗读当前页默认首焦点和accessibilityNextFocusId走焦过程中组件的下一个焦点。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Column({ space: 20 }) {
  7. Text('Text Demo 1')
  8. .fontSize(50)
  9. .accessibilityLevel('yes')
  10. .accessibilityNextFocusId('text3')
  11. Text('Text Demo 2')
  12. .id('text2')
  13. .fontSize(50)
  14. .accessibilityLevel('yes')
  15. .accessibilityDefaultFocus(true) // 设置该组件为屏幕朗读当前页默认首焦点
  16. .accessibilityNextFocusId('text4')
  17. Text('Text Demo 3')
  18. .id('text3')
  19. .fontSize(50)
  20. .accessibilityLevel('yes')
  21. .accessibilityNextFocusId('text2')
  22. Text('Text Demo 4')
  23. .id('text4')
  24. .fontSize(50)
  25. .accessibilityLevel('yes')
  26. }
  27. .height('100%')
  28. .width('100%')
  29. }
  30. }

示例4(设置无障碍组件类型和文本提示信息)

该示例主要演示accessibilityRole无障碍组件类型和accessibilityTextHint供无障碍辅助应用查询的组件的文本提示信息。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. @State isDownloading: boolean = false;
  6. @State hintStr: string = '点击开始下载';
  7. build() {
  8. Column({ space: 20 }) {
  9. Button(this.isDownloading ? '下载中' : '点击下载')
  10. .accessibilityLevel('yes')
  11. .accessibilityTextHint(this.hintStr)
  12. .onClick(() => {
  13. this.isDownloading = !this.isDownloading;
  14. this.hintStr = this.isDownloading ? '状态变为下载中' : '状态变为暂停下载';
  15. })
  16. TextInput({ placeholder: '请输入手机号码' })
  17. .accessibilityLevel('yes')
  18. .accessibilityTextHint('请输入11位手机号码')
  19. .width('80%')
  20. Text('按照按钮类型播报')
  21. .accessibilityLevel('yes')
  22. .accessibilityRole(AccessibilityRoleType.BUTTON)
  23. .accessibilityTextHint('屏幕朗读播报时,该组件将按照按钮类型进行播报')
  24. .fontSize(30)
  25. }
  26. .height('100%')
  27. .width('100%')
  28. }
  29. }

示例5(设置无障碍屏幕朗读滚动和焦点绿框绘制)

该示例主要演示accessibilityScrollTriggerable设置无障碍节点是否支持屏幕朗读滚动、accessibilityFocusDrawLevel设置无障碍焦点绿框的绘制层级和accessibilityUseSamePage为跨进程嵌入式显示的组件(如EmbeddedComponent)设置同page模式。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. import { Want } from '@kit.AbilityKit';
  3. @Entry
  4. @Component
  5. struct Index {
  6. @State message: string = 'Message: ';
  7. private want: Want = {
  8. // EmbeddedComponent提供方的bundleName,根据实际情况配置。
  9. bundleName: 'com.example.embeddeddemo',
  10. // EmbeddedComponent提供方的abilityName,根据实际情况配置。
  11. abilityName: 'ExampleEmbeddedAbility',
  12. }
  13. build() {
  14. Row() {
  15. List() {
  16. ListItem() {
  17. Column() {
  18. Text(this.message)
  19. .fontSize(18)
  20. .fontColor('#2D2D2D')
  21. .fontWeight(FontWeight.Medium)
  22. Column() {
  23. EmbeddedComponent(this.want, EmbeddedType.EMBEDDED_UI_EXTENSION)
  24. .onTerminated((info) => {
  25. this.message = 'Termination: code = ' + info.code + ', want = ' + JSON.stringify(info.want);
  26. })
  27. .onError((error) => {
  28. this.message = 'Error: code = ' + error.code;
  29. })
  30. .accessibilityUseSamePage(AccessibilitySamePageMode.FULL_SILENT)
  31. .width('90%')
  32. .height('50%')
  33. .backgroundColor('#F0F0F0')
  34. .borderRadius(8)
  35. .borderWidth(1)
  36. .borderColor('#D9D9D9')
  37. Stack() {
  38. Column() {
  39. Text('文本1')
  40. .fontSize(18)
  41. .fontColor('#2D2D2D')
  42. .fontWeight(FontWeight.Medium)
  43. Text('文本1')
  44. .fontSize(18)
  45. .fontColor('#2D2D2D')
  46. .fontWeight(FontWeight.Medium)
  47. .accessibilityFocusDrawLevel(FocusDrawLevel.TOP)
  48. }
  49. .padding({ top: 8, bottom: 8 })
  50. Column() {
  51. Text('文本2')
  52. .fontSize(18)
  53. .fontColor('#FFFFFF')
  54. .fontWeight(FontWeight.Medium)
  55. Text('文本2')
  56. .fontSize(18)
  57. .fontColor('#FFFFFF')
  58. .fontWeight(FontWeight.Medium)
  59. }
  60. .backgroundColor('#4A90E2')
  61. .padding({
  62. left: 12,
  63. right: 12,
  64. top: 10,
  65. bottom: 10
  66. })
  67. .borderRadius(6)
  68. }
  69. .width('100%')
  70. .margin({ top: 10, bottom: 10 })
  71. }
  72. .width('100%')
  73. .height('100%')
  74. .margin({ top: 15 })
  75. .accessibilityText($r('app.string.app_name'))
  76. .accessibilityDescription($r('app.string.module_desc'))
  77. Column() {
  78. Text('文本4')
  79. .fontSize(18)
  80. .fontWeight(FontWeight.Medium)
  81. }
  82. .margin({ top: 15 })
  83. }
  84. .width('100%')
  85. }
  86. }
  87. .accessibilityScrollTriggerable(false)
  88. .width('100%')
  89. }
  90. .height('100%')
  91. .backgroundColor('#F7F9FC')
  92. }
  93. }

示例6(设置无障碍聚合功能下的子组件状态和操作接管功能)

该示例主要演示使用accessibilityGroup的可选参数stateControllerRoleType或者stateControllerId来选择一个特定子组件接管其无障碍状态信息,可选参数actionControllerRoleType或者actionControllerId来选择一个特定子组件接管其无障碍控制操作。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Column({ space: 20 }) {
  7. Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
  8. Text('是否开启功能')
  9. Toggle({ type: ToggleType.Switch, isOn: false })
  10. .selectedColor('#007DFF')
  11. .switchPointColor('#FFFFFF')
  12. .onChange((isOn: boolean) => {
  13. console.info('Component status:' + isOn);
  14. })
  15. }
  16. .accessibilityGroup(true, {
  17. stateControllerRoleType: AccessibilityRoleType.TOGGLER,
  18. actionControllerRoleType: AccessibilityRoleType.TOGGLER
  19. })
  20. .width('80%')
  21. .border({ color: Color.Black, width: 2 })
  22. Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
  23. Text("是否开启功能")
  24. Toggle({ type: ToggleType.Switch, isOn: false })
  25. .selectedColor('#007DFF')
  26. .switchPointColor('#FFFFFF')
  27. .onChange((isOn: boolean) => {
  28. console.info('Component status:' + isOn);
  29. })
  30. .id("TestToggle")
  31. }
  32. .accessibilityGroup(true, {
  33. stateControllerId: "TestToggle",
  34. actionControllerId: "TestToggle"
  35. })
  36. .width('80%')
  37. .border({ color: Color.Black, width: 2 })
  38. }
  39. .height('100%')
  40. .width('100%')
  41. }
  42. }

示例7(设置无障碍组件状态播报信息)

该示例主要通过accessibilityStateDescription接口修改组件的状态播报。在开启无障碍功能后,组件发生聚焦或者点击后,屏幕朗读进行组件的状态信息播报。

从API version 23开始,新增accessibilityStateDescription接口。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. @State isSelected: boolean = false;
  6. build() {
  7. Column({ space: 20 }) {
  8. Button(this.isSelected ? '已点赞' : '未点赞')
  9. .accessibilityLevel('yes')
  10. .onClick(() => {
  11. this.isSelected = !this.isSelected;
  12. })
  13. .accessibilityStateDescription(this.isSelected ? '已点赞' : '未点赞')
  14. }
  15. .height('100%')
  16. .width('100%')
  17. }
  18. }

示例8(设置无障碍操作选项修改组件滚动步长)

本示例主要演示如何通过accessibilityActionOptions中的scrollStep参数,自定义组件的滚动步长。以下将以slider组件在屏幕朗读场景下滑动距离变化为例进行说明。

从API version 23开始,新增AccessibilityActionOptions。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Column({ space: 20 }) {
  7. Row() {
  8. Slider({
  9. min: 0,
  10. max: 100,
  11. style: SliderStyle.OutSet
  12. })
  13. // 调整屏幕朗读手势下slider滑动的步长
  14. .accessibilityActionOptions({ scrollStep: 10 })
  15. }
  16. .width('80%')
  17. }
  18. .height('100%')
  19. .width('100%')
  20. }
  21. }

示例9(设置自定义无障碍操作)

本示例主要演示如何使用accessibilityCustomActions为组件设置自定义无障碍操作。开发者可以按操作名为组件进行自定义操作的回调绑定。

从API版本26.0.0开始,新增accessibilityCustomActions。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. @State listData: Array<string> = ['列表项1', '列表项2', '列表项3', '列表项4'];
  6. build() {
  7. Column() {
  8. List({ space: 10 }) {
  9. ForEach(this.listData, (item: string, index: number) => {
  10. ListItem() {
  11. Row() {
  12. Text(item)
  13. .fontSize(16)
  14. Blank()
  15. Text('删除')
  16. .fontSize(14)
  17. .fontColor(Color.Red)
  18. }
  19. .width('100%')
  20. .padding(10)
  21. .onClick(() => {
  22. console.info('[TestTag] click success!')
  23. })
  24. .accessibilityLevel('yes')
  25. .accessibilityCustomActions([
  26. {
  27. name: 'deleteItem',
  28. onAction: () => {
  29. this.listData.splice(index, 1);
  30. }
  31. }
  32. ])
  33. }
  34. }, (item: string) => item)
  35. }
  36. .width('100%')
  37. .height('100%')
  38. }
  39. }
  40. }