1# 无障碍属性 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @zhanghangkai10241--> 5<!--Designer: @lmleon--> 6<!--Tester: @fredyuan0912--> 7<!--Adviser: @HelloCrease--> 8 9设置组件的无障碍属性和事件,以充分利用无障碍功能。 10 11> **说明:** 12> 13> 从API version 10 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 14 15## accessibilityGroup 16 17accessibilityGroup(value: boolean):T 18 19设置是否启用无障碍分组。启用无障碍分组后,组件及其子组件作为一整个可选组件,无障碍服务不再关注子组件内容。 20 21若组件启用无障碍分组,当组件不包含通用文本属性,同时未设置[无障碍文本](#accessibilitytext)时,将默认拼接其子组件的通用文本属性作为组件的合并文本。若某一子组件没有通用文本属性,则忽略该子组件不进行拼接,此时合并文本不使用子组件的无障碍文本。 22 23**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 24 25**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 26 27**系统能力:** SystemCapability.ArkUI.ArkUI.Full 28 29**参数:** 30 31| 参数名 | 类型 | 必填 | 说明 | 32| ------ | ------- | ---- | ------------------------------------------------------------ | 33| value | boolean | 是 | 无障碍分组,设置为true时表示该组件及其所有子组件为一整个可以选中的组件,无障碍服务将不再关注其子组件内容;设置为false表示不启用无障碍分组。<br/>默认值:false | 34 35**返回值:** 36 37| 类型 | 说明 | 38| -------- | -------- | 39| T | 返回当前对象。 | 40 41## accessibilityGroup<sup>14+</sup> 42 43accessibilityGroup(isGroup: boolean, accessibilityOptions: AccessibilityOptions):T 44 45设置是否启用无障碍分组。启用无障碍分组后,组件及其子组件作为一整个可选组件,无障碍服务不再关注子组件内容。 46 47若组件启用无障碍分组,当组件不包含通用文本属性,同时未设置[无障碍文本](#accessibilitytext)时,将默认拼接其子组件的通用文本属性作为组件的合并文本。若某一子组件没有通用文本属性,则忽略该子组件不进行拼接。 48 49通过accessibilityPreferred启用优先拼接无障碍文本进行朗读后,将优先拼接其子组件的无障碍文本属性作为组件的合并文本。若某一子组件未设置无障碍文本,则继续拼接该子组件的通用文本属性,若该子组件没有通用文本属性,则忽略该子组件不进行拼接。 50 51**卡片能力:** 从API version 14开始,该接口支持在ArkTS卡片中使用。 52 53**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 54 55**系统能力:** SystemCapability.ArkUI.ArkUI.Full 56 57**参数:** 58 59| 参数名 | 类型 | 必填 | 说明 | 60| -------------------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ | 61| isGroup | boolean | 是 | 无障碍分组,设置为true时表示该组件及其所有子组件为一整个可以选中的组件,无障碍服务将不再关注其子组件内容;设置为false表示不启用无障碍分组。<br/>默认值:false | 62| accessibilityOptions | [AccessibilityOptions](ts-types.md#accessibilityoptions14对象说明) | 是 | accessibilityPreferred设置为true时,使应用优先拼接无障碍文本进行朗读;设置为false时,应用进行屏幕朗读时不会优先使用无障碍文本。<br/>默认值:false | 63 64**返回值:** 65 66| 类型 | 说明 | 67| -------- | -------- | 68| T | 返回当前对象。 | 69 70## accessibilityText 71 72accessibilityText(value: string):T 73 74设置无障碍文本。当组件不包含文本属性时,开发人员可通过设置无障碍文本属性,使不包含文字信息的组件能够播报无障碍文本的内容。 75 76**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 77 78**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 79 80**系统能力:** SystemCapability.ArkUI.ArkUI.Full 81 82**参数:** 83 84| 参数名 | 类型 | 必填 | 说明 | 85| ------ | ------ | ---- | ------------------------------------------------------------ | 86| value | string | 是 | 无障碍文本,当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。<br/>默认值:“”<br/>**说明:**<br/>若组件既拥有文本属性,又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。<br/>若组件设置了无障碍分组属性为true,但是既没有无障碍文本属性,也没有文本属性,会对其子节点的组件进行文本拼接(深度优先)。<br/>不对无障碍文本属性进行拼接,如需优先拼接无障碍文本,则需设置accessibilityGroup的accessibilityPreferred。 | 87 88**返回值:** 89 90| 类型 | 说明 | 91| -------- | -------- | 92| T | 返回当前对象。 | 93 94## accessibilityText<sup>12+</sup> 95 96accessibilityText(text: Resource):T 97 98设置无障碍文本,支持通过Resource引用资源文件。当组件不包含文本属性时,开发人员可通过设置无障碍文本属性,使不包含文字信息的组件能够播报无障碍文本的内容。 99 100**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 101 102**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 103 104**系统能力:** SystemCapability.ArkUI.ArkUI.Full 105 106**参数:** 107 108| 参数名 | 类型 | 必填 | 说明 | 109| ------ | ------ | ---- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 110| text | [Resource](ts-types.md#resource) | 是 | 无障碍文本引用资源,当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。<br/>**说明:**<br/>若组件既拥有文本属性,又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。<br/>若组件设置了无障碍分组属性为true,但是既没有无障碍文本属性,也没有文本属性,会对其子节点的组件进行文本拼接(深度优先)。<br/>不对无障碍文本属性进行拼接,如需优先拼接无障碍文本,则需设置accessibilityGroup的accessibilityPreferred。 | 111 112**返回值:** 113 114| 类型 | 说明 | 115| -------- | -------- | 116| T | 返回当前对象。 | 117 118 119## accessibilityDescription 120 121accessibilityDescription(value: string):T 122 123设置无障碍说明。该属性用于为用户进一步说明当前组件,开发人员可为组件设置相对较详细的解释文本,帮助用户理解将要执行的操作。 124 125**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 126 127**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 128 129**系统能力:** SystemCapability.ArkUI.ArkUI.Full 130 131**参数:** 132 133| 参数名 | 类型 | 必填 | 说明 | 134| ------ | ------ | ---- | ------------------------------------------------------------ | 135| value | string | 是 | 无障碍说明,用于为用户进一步说明当前组件,开发人员可为组件的该属性设置相对较详细的解释文本,帮助用户理解将要执行的操作。如帮助用户理解将要执行的操作可能导致什么后果,尤其是当这些后果无法从组件本身属性与无障碍文本中了解到时。若组件既拥有文本属性又拥有无障碍说明属性,则组件被选中时,先播报组件的文本属性,再播报无障碍说明属性的内容。<br/>默认值:“” | 136 137**返回值:** 138 139| 类型 | 说明 | 140| -------- | -------- | 141| T | 返回当前对象。 | 142 143## accessibilityDescription<sup>12+</sup> 144 145accessibilityDescription(description: Resource):T 146 147设置无障碍说明,支持通过Resource引用资源文件。该属性用于为用户进一步说明当前组件,开发人员可为组件设置相对较详细的解释文本,帮助用户理解将要执行的操作。 148 149**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 150 151**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 152 153**系统能力:** SystemCapability.ArkUI.ArkUI.Full 154 155**参数:** 156 157| 参数名 | 类型 | 必填 | 说明 | 158| ------ | ------ | ---- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 159| description | [Resource](ts-types.md#resource) | 是 | 无障碍说明引用资源,用于为用户进一步说明当前组件,开发人员可为组件的该属性设置相对较详细的解释文本,帮助用户理解将要执行的操作。如帮助用户理解将要执行的操作可能导致什么后果,尤其是当这些后果无法从组件本身属性与无障碍文本中了解到时。若组件既拥有文本属性又拥有无障碍说明属性,则组件被选中时,先播报组件的文本属性,再播报无障碍说明属性的内容。 | 160 161**返回值:** 162 163| 类型 | 说明 | 164| -------- | -------- | 165| T | 返回当前对象。 | 166 167## accessibilityLevel 168 169accessibilityLevel(value: string):T 170 171设置无障碍重要性。该属性用于控制某个组件是否可被无障碍辅助服务所识别。 172 173**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 174 175**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 176 177**系统能力:** SystemCapability.ArkUI.ArkUI.Full 178 179**参数:** 180 181| 参数名 | 类型 | 必填 | 说明 | 182| ------ | ------ | ---- | ------------------------------------------------------------ | 183| value | string | 是 | 无障碍重要性,用于控制某个组件是否可被无障碍辅助服务所识别。<br/>支持的值为:<br/>"auto":当前组件由无障碍分组服务和ArkUl进行综合判断组件是否可被无障碍辅助服务所识别。<br/>"yes":当前组件可被无障碍辅助服务所识别。<br/>"no":当前组件不可被无障碍辅助服务所识别。<br/>"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br/>默认值:"auto"<br/>**说明:**<br/>当accessibilityLevel设置成"auto"时,组件是否可被无障碍辅助服务所识别取决于以下多方面因素:<br/>1. 组件是否可被识别由无障碍辅助服务内部判断,自行选择。<br/>2. 若组件的父组件accessibilityGroup属性中isGroup设置为true,无障碍服务将不再关注其子组件内容,组件不可被无障碍辅助服务所识别。<br/>3. 若组件的父组件accessibilityLevel属性设置为"no-hide-descendants",组件不可被无障碍辅助服务所识别。 | 184 185**返回值:** 186 187| 类型 | 说明 | 188| -------- | -------- | 189| T | 返回当前对象。 | 190 191## accessibilityVirtualNode<sup>11+</sup> 192 193accessibilityVirtualNode(builder: CustomBuilder):T 194 195设置无障碍虚拟子节点。对自绘制组件传入一个自定义的CustomBuilder,该CustomBuilder中的组件在后端仅做布局不做显示,辅助应用获取无障碍节点信息时会返回CustomBuilder中的节点信息。 196 197**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 198 199**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 200 201**系统能力:** SystemCapability.ArkUI.ArkUI.Full 202 203**参数:** 204 205| 参数名 | 类型 | 必填 | 说明 | 206| ------ | ------ | ---- | ------------------------------------------------------------ | 207| builder | [CustomBuilder](ts-types.md#custombuilder8) | 是 | 无障碍虚拟子节点,使开发者可以对自绘制组件传入一个自定义的CustomBuilder,该CustomBuilder中的组件在后端仅做布局不做显示,辅助应用获取无障碍节点信息时会返回CustomBuilder中的节点信息。 | 208 209**返回值:** 210 211| 类型 | 说明 | 212| -------- | -------- | 213| T | 返回当前对象。 | 214 215## accessibilityChecked<sup>13+</sup> 216 217accessibilityChecked(isCheck: boolean):T 218 219无障碍节点是否选中的状态维护,用于支持多选的情况使用,表示组件是否被选中。 220 221**卡片能力:** 从API version 13开始,该接口支持在ArkTS卡片中使用。 222 223**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 224 225**系统能力:** SystemCapability.ArkUI.ArkUI.Full 226 227**参数:** 228 229| 参数名 | 类型 | 必填 | 说明 | 230| ------- | ------- | ---- | ------------------------------------------------------------ | 231| isCheck | boolean | 是 | 用于表示组件是否被选中。<br/>支持的值为:<br/>true:当前组件被选中。<br/>false:当前组件未被选中。<br/>undefined:由组件自行确定选中状态。<br/>默认值:undefined <br/>**说明:**<br/>1. 使用该接口设置true或false后,会默认修改该组件的checkable属性为true。<br/>2. accessibilityChecked属性代表组件是多选模式,而[accessibilitySelected](ts-universal-attributes-accessibility.md#accessibilityselected13)属性代表组件是单选模式,组件不能同时存在两种选择模式,会造成无障碍状态冲突,导致屏幕朗读等无障碍辅助应用无法正确识别选中状态。如使用当前接口设置组件为多选模式(设置为true、false),则需要保证未使用accessibilitySelected函数设置属性为true或者false,如果已设置,需使用accessibilitySelected函数设置accessibilitySelected属性为undefined模式。 | 232 233**返回值:** 234 235| 类型 | 说明 | 236| -------- | -------- | 237| T | 返回当前对象。 | 238 239## accessibilitySelected<sup>13+</sup> 240 241accessibilitySelected(isSelect: boolean):T 242 243无障碍节点是否选中的状态维护,用于支持单选的情况使用,表示组件是否被选中。 244 245**卡片能力:** 从API version 13开始,该接口支持在ArkTS卡片中使用。 246 247**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 248 249**系统能力:** SystemCapability.ArkUI.ArkUI.Full 250 251**参数:** 252 253| 参数名 | 类型 | 必填 | 说明 | 254| -------- | ------- | ---- | ------------------------------------------------------------ | 255| isSelect | boolean | 是 | 用于表示组件是否被选中。<br/>支持的值为:<br/>true:当前组件被选中。<br/>false:当前组件未被选中。<br/>undefined:由组件自行确定选中状态。<br/>默认值:undefined <br/>**说明:**<br/>1. [accessibilityChecked](ts-universal-attributes-accessibility.md#accessibilitychecked13)属性代表组件是多选模式,而accessibilitySelected属性代表组件是单选模式,组件不能同时存在两种选择模式,会造成无障碍状态冲突,导致屏幕朗读等无障碍辅助应用无法正确识别选中状态。如使用当前接口设置组件为单选模式(true、false),则需要保证未使用accessibilityChecked函数设置属性为true或者false,如果已设置,需使用accessibilityChecked函数设置accessibilityChecked属性为undefined模式。 | 256 257**返回值:** 258 259| 类型 | 说明 | 260| -------- | -------- | 261| T | 返回当前对象。 | 262 263## accessibilityRole<sup>18+</sup> 264 265accessibilityRole(role: AccessibilityRoleType):T 266 267设置无障碍组件类型,特定组件类型有特定的朗读方式,可以根据应用诉求,修改组件类型,用于控制无障碍模式下对组件的朗读方式和朗读内容。 268 269**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 270 271**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 272 273**系统能力:** SystemCapability.ArkUI.ArkUI.Full 274 275**参数:** 276 277| 参数名 | 类型 | 必填 | 说明 | 278| -------- | ------- | ---- | ------------------------------------------------------------ | 279| role | [AccessibilityRoleType](ts-universal-attributes-accessibility.md#accessibilityroletype18枚举说明) | 是 | 屏幕朗读播报的组件类型,如按钮、图表。具体类型可由开发者自定义。 | 280 281**返回值:** 282 283| 类型 | 说明 | 284| -------- | -------- | 285| T | 返回当前对象。 | 286 287## AccessibilityRoleType<sup>18+</sup>枚举说明 288 289定义组件的屏幕朗读功能角色类型。 290 291**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 292 293**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 294 295**系统能力:** SystemCapability.ArkUI.ArkUI.Full 296 297| 名称 | 值 | 说明 | 298| ---- | ---- | ------------------ | 299| ACTION_SHEET | 0 | 列表弹窗。 | 300| ALERT_DIALOG | 1 | 显示警告弹窗组件。 | 301| INDEXER_COMPONENT | 2 | 索引器组件。 | 302| BADGE_COMPONENT | 3 | 信息标记组件。 | 303| BLANK | 4 | 空白填充组件。 | 304| BUTTON | 5 | 按钮。 | 305| BACK_BUTTON | 6 | 大图页返回按钮。 | 306| SHEET_DRAG_BAR | 7 | 滑动条。 | 307| CALENDAR_PICKER | 8 | 日历选择器组件。 | 308| CALENDAR | 9 | 日历。 | 309| CANVAS | 10 | 提供画布组件。 | 310| CANVAS_GRADIENT | 11 | 渐变对象。 | 311| CANVAS_PATTERN | 12 | 通过指定图像和重复方式创建图片填充的模板。 | 312| CHECKBOX | 13 | 提供多选框组件。 | 313| CHECKBOX_GROUP | 14 | 多选框群组。 | 314| CIRCLE | 15 | 用于绘制圆形的组件。| 315| COLUMN_SPLIT | 16 | 将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。 | 316| COLUMN | 17 | 沿垂直方向布局的容器。 | 317| CANVAS_RENDERING_CONTEXT_2D | 18 | 用于在画布组件上绘制矩形、文本、图片等。 | 318| CHART | 19 | 图表组件。 | 319| COUNTER | 20 | 计数器组件。 | 320| CONTAINER_MODAL | 21 | 模态容器。 | 321| DATA_PANEL | 22 | 数据面板组件。 | 322| DATE_PICKER | 23 | 选择日期的滑动选择器组件。 | 323| DIALOG | 24 | 弹出框。 | 324| DIVIDER | 25 | 提供分隔器组件。 | 325| DRAG_BAR | 26 | 拖拽条。 | 326| EFFECT_COMPONENT | 27 | 特效合并容器组件。 | 327| ELLIPSE | 28 | 椭圆绘制组件。 | 328| FLEX | 29 | 以弹性方式布局子组件的容器组件。 | 329| FLOW_ITEM | 30 | 瀑布流组件的子组件。 | 330| FORM_COMPONENT | 31 | 提供卡片组件。 | 331| FORM_LINK | 32 | 静态卡片交互组件。 | 332| GAUGE | 33 | 数据量规图表组件。 | 333| GRID | 34 | 网格容器。 | 334| GRID_COL | 35 | 栅格子组件。 | 335| GRID_CONTAINER | 36 | 纵向排布栅格布局容器。 | 336| GRID_ITEM | 37 | 网格容器中单项内容容器。 | 337| GRID_ROW | 38 | 栅格容器组件。 | 338| HYPERLINK | 39 | 超链接组件。 | 339| IMAGE | 40 | 图片组件。 | 340| IMAGE_ANIMATOR | 41 | 提供帧动画组件。 | 341| IMAGE_BITMAP | 42 | 存储canvas渲染的像素数据。 | 342| IMAGE_DATA | 43 | 存储canvas渲染的像素数据。 | 343| IMAGE_SPAN | 44 | 用于显示行内图片。 | 344| LABEL | 45 | 标签。 | 345| LINE | 46 | 线型。 | 346| LIST | 47 | 列表。| 347| LIST_ITEM | 48 | 用来展示列表具体item。 | 348| LIST_ITEM_GROUP | 49 | 用来展示列表item分组。 | 349| LOADING_PROGRESS | 50 | 用于显示加载动效的组件。 | 350| MARQUEE | 51 | 跑马灯组件。 | 351| MATRIX2D | 52 | 矩阵对象。 | 352| MENU | 53 | 菜单。 | 353| MENU_ITEM | 54 | 菜单项。 | 354| MENU_ITEM_GROUP | 55 | 菜单项分组。 | 355| NAV_DESTINATION | 56 | 显示Navigation的内容区。 | 356| NAV_ROUTER | 57 | 导航组件。 | 357| NAVIGATION | 58 | 路由导航的根视图容器。 | 358| NAVIGATION_BAR | 59 | 导航栏。 | 359| NAVIGATION_MENU | 60 | 导航菜单。 | 360| NAVIGATOR | 61 | 路由容器组件。 | 361| OFFSCREEN_CANVAS | 62 | 用于自定义绘制图形。 | 362| OFFSCREEN_CANVAS_RENDERING_CONTEXT2D | 63 | 2D绘制对象,用于在画布组件上绘制矩形、文本、图片等。 | 363| OPTION | 64 | 具体项目。 | 364| PANEL | 65 | 可滑动面板。 | 365| PAPER_PAGE | 66 | 页面。 | 366| PATH | 67 | 路径绘制组件。 | 367| PATH2D | 68 | 路径对象。 | 368| PATTERN_LOCK | 69 | 图案密码锁组件。 | 369| PICKER | 70 | 选择器。 | 370| PICKER_VIEW | 71 | 选择器视图。 | 371| PLUGIN_COMPONENT | 72 | 新增插件组件。 | 372| POLYGON | 73 | 多边形绘制组件。 | 373| POLYLINE | 74 | 折线绘制组件。 | 374| POPUP | 75 | 显示特定样式气泡。 | 375| PROGRESS | 76 | 文本下载按钮。 | 376| QRCODE | 77 | 二维码。 | 377| RADIO | 78 | 单选框。 | 378| RATING | 79 | 提供在给定范围内选择评分的组件。 | 379| RECT | 80 | 矩形绘制组件。 | 380| REFRESH | 81 | 下拉刷新容器组件。 | 381| RELATIVE_CONTAINER | 82 | 相对布局组件。 | 382| REMOTE_WINDOW | 83 | 远程控制窗口组件。 | 383| RICH_EDITOR | 84 | 支持图文混排和文本交互式编辑的组件。 | 384| RICH_TEXT | 85 | 富文本组件。 | 385| ROLE_PAGER | 86 | 分页。 | 386| ROW | 87 | 沿水平方向布局容器。 | 387| ROW_SPLIT | 88 | 将子组件横向布局,并在每个子组件之间插入一根纵向的分割线。 | 388| SCROLL | 89 | 可滚动的容器组件。 | 389| SCROLL_BAR | 90 | 滚动条。 | 390| SEARCH | 91 | 搜索框组件。 | 391| SEARCH_FIELD | 92 | 搜索框。 | 392| SELECT | 93 | 下拉选择菜单组件。 | 393| SHAPE | 94 | 绘制组件的父组件。 | 394| SIDEBAR_CONTAINER | 95 | 提供侧边栏可以显示和隐藏的侧边栏容器。 | 395| SLIDER | 96 | 垂直方向的滑动条。 | 396| SPAN | 97 | 用于显示行内文本的组件。 | 397| STACK | 98 | 堆叠容器。 | 398| STEPPER | 99 | 步骤导航器组件。 | 399| STEPPER_ITEM | 100 | 用作Stepper组件的页面子组件。 | 400| SWIPER | 101 | 滑块视图容器。 | 401| SWIPER_INDICATOR | 102 | 定义 Swiper 组件的导航指示器。 | 402| SWITCH | 103 | 开关。 | 403| SYMBOL_GLYPH | 104 | 显示图标小符号的组件。 | 404| TAB_CONTENT | 105 | 仅在Tabs中使用,对应一个切换页签的内容视图。 | 405| TAB_BAR | 106 | 页签栏。 | 406| TABS | 107 | 通过页签进行内容视图切换的容器组件。 | 407| TEXT | 108 | 文本。 | 408| TEXT_CLOCK | 109 | 文本时钟组件。 | 409| TEXT_ENTRY | 110 | 文本输入。 | 410| TEXT_INPUT | 111 | 输入框组件。 | 411| TEXT_PICKER | 112 | 文本类滑动选择器组件。 | 412| TEXT_TIMER | 113 | 通过文本显示计时信息并控制其计时器状态的组件。 | 413| TEXT_AREA | 114 | 输入区域组件。 | 414| TEXT_FIELD | 115 | 文本框。 | 415| TIME_PICKER | 116 | 时间选择组件。 | 416| TITLE_BAR | 117 | 标题栏。 | 417| TOGGLER | 118 | 状态组件。 | 418| UI_EXTENSION_COMPONENT | 119 | 用户界面扩展组件。 | 419| VIDEO | 120 | 用于播放视频文件并控制其播放状态的组件。 | 420| WATER_FLOW | 121 | 瀑布流容器。 | 421| WEB | 122 | 加载网页组件。 | 422| XCOMPONENT | 123 | 自定义渲染。 | 423| ROLE_NONE | 124 | NULL。 | 424 425## accessibilityNextFocusId<sup>18+</sup> 426 427accessibilityNextFocusId(nextId: string):T 428 429指定走焦过程中组件的下一个焦点。 430 431**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 432 433**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 434 435**系统能力:** SystemCapability.ArkUI.ArkUI.Full 436 437**参数:** 438 439| 参数名 | 类型 | 必填 | 说明 | 440| ------ | ------ | ---- | ------------------------------------------------------------ | 441| nextId | string | 是 | 下一个被指定聚焦组件的[唯一标识id](ts-universal-attributes-component-id.md#id)。若唯一标识id无对应组件,则设置的accessibilityNextFocusId不存在,设置无效。 | 442 443**返回值:** 444 445| 类型 | 说明 | 446| -------- | -------- | 447| T | 返回当前对象。 | 448 449## accessibilityDefaultFocus<sup>18+</sup> 450 451accessibilityDefaultFocus(focus: boolean):T 452 453设置屏幕朗读当前页默认首焦点。 454 455**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 456 457**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 458 459**系统能力:** SystemCapability.ArkUI.ArkUI.Full 460 461**参数:** 462 463| 参数名 | 类型 | 必填 | 说明 | 464| ------ | ------- | ---- | ------------------------------------------------------------ | 465| focus | boolean | 是 | 设置屏幕朗读当前页默认首焦点。值为true则表示该组件为当前页默认首焦点,值为false或其他值无效。 | 466 467**返回值:** 468 469| 类型 | 说明 | 470| -------- | -------- | 471| T | 返回当前对象。 | 472 473## accessibilityUseSamePage<sup>18+</sup> 474 475accessibilityUseSamePage(pageMode: AccessibilitySamePageMode):T 476 477针对跨进程嵌入式显示的组件,例如[EmbeddedComponent](ts-container-embedded-component.md),其子树场景中出现的跳焦问题,可通过设置accessibilityUseSamePage属性解决。因跨进程嵌入式显示的组件启动进程的page事件与宿主page事件发送时序不一致,可能导致焦点从当前组件移至另一组件,此现象称为“跳焦”。 478 479**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 480 481**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 482 483**系统能力:** SystemCapability.ArkUI.ArkUI.Full 484 485**参数:** 486 487| 参数名 | 类型 | 必填 | 说明 | 488| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------ | 489| pageMode | [AccessibilitySamePageMode](#accessibilitysamepagemode18枚举说明) | 是 | 当前跨进程嵌入式显示的组件和宿主应用的同page模式。 | 490 491**返回值:** 492 493| 类型 | 说明 | 494| -------- | -------- | 495| T | 返回当前对象。 | 496 497## AccessibilitySamePageMode<sup>18+</sup>枚举说明 498 499当前跨进程嵌入式显示的组件和宿主应用的同page模式。 500 501**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 502 503**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 504 505**系统能力:** SystemCapability.ArkUI.ArkUI.Full 506 507| 名称 | 值 | 说明 | 508| ----------- | ---- | ------------------------------------------------------------ | 509| SEMI_SILENT | 0 | 跨进程嵌入式显示的组件拉起来的进程的page事件中如果是首次加载页面或者该事件页面的根节点发送的page事件会被忽略。 | 510| FULL_SILENT | 1 | 跨进程嵌入式显示的组件将忽略所有的page事件。 | 511 512## accessibilityScrollTriggerable<sup>18+</sup> 513 514accessibilityScrollTriggerable(isTriggerable: boolean):T 515 516设置无障碍节点是否支持屏幕朗读滚动操作。当屏幕朗读在焦点切换时,若容器内当前页面无可聚焦的组件,会发起一次自动滚动操作。 517 518**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。 519 520**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 521 522**系统能力:** SystemCapability.ArkUI.ArkUI.Full 523 524**参数:** 525 526| 参数名 | 类型 | 必填 | 说明 | 527| -------------- | ------- | ---- | ------------------------------------------------------------ | 528| isTriggerable | boolean | 是 | 用于表示组件是否支持该能力。<br/>支持的值为:<br/>true:屏幕朗读焦点切换而容器内当前页面无可聚焦的组件时,需要自动滚动操作。<br/>false:屏幕朗读焦点切换而容器内当前页面无可聚焦的组件时,不需要自动滚动操作。<br/>undefined:还原默认值。<br/>默认值:true。<br/>**说明:**<br/>1. 该属性不影响原先无障碍节点属性中的scrollable。<br/>2. 组件最终在屏幕朗读下的滚动逻辑由屏幕朗读最终根据该属性和组件是否支持scroll来决定。<br/>3. 该属性为通用属性,所有基础组件均可配置。建议配置的滚动组件类型,如List,Grid,Scroll,WaterFlow等。| 529 530**返回值:** 531 532| 类型 | 说明 | 533| -------- | -------- | 534| T | 返回当前对象。 | 535 536## accessibilityTextHint<sup>12+</sup> 537 538accessibilityTextHint(value: string):T 539 540设置组件的文本提示信息,供无障碍辅助应用查询。 541 542**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。 543 544**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 545 546**系统能力:** SystemCapability.ArkUI.ArkUI.Full 547 548**参数:** 549 550| 参数名 | 类型 | 必填 | 说明 | 551| -------------- | ------- | ---- | ------------------------------------------------------------ | 552| value | string | 是 | 组件的文本提示信息,供无障碍辅助应用查询。 | 553 554**返回值:** 555 556| 类型 | 说明 | 557| -------- | -------- | 558| T | 返回当前对象。 | 559 560## accessibilityFocusDrawLevel<sup>19+</sup> 561 562accessibilityFocusDrawLevel(drawLevel: FocusDrawLevel):T 563 564无障碍焦点绿框的绘制层级设置功能。 565 566> **说明:** 567> 568> 1. 在聚焦节点层级绘制获焦无障碍绿框,默认使用该层级绘制,由于绘制组件数顺序以及图形绘制顺序,绘制绿框会被父组件或者z序更高的兄弟组件遮挡裁切。 569> 570> 2. 在Z序顶层绘制绿框情况下,可以避免由于组件遮挡、裁切导致无障碍绿框被裁切遮挡。但由于具备较高的绘制层级,如果需要交互过程中,需要遮挡当前获焦的组件,并且不希望显示无障碍绿框则不适合使用这种配置。 571 572 573**卡片能力:** 从API version 19开始,该接口支持在ArkTS卡片中使用。 574 575**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 576 577**系统能力:** SystemCapability.ArkUI.ArkUI.Full 578 579**参数:** 580 581| 参数名 | 类型 | 必填 | 说明 | 582| -------- | ------- | ---- | ------------------------------------------------------------ | 583| drawLevel | [FocusDrawLevel](ts-appendix-enums.md#focusdrawlevel19) | 是 | 无障碍绘制能力,默认情况下绘制聚焦节点本身。 | 584 585**返回值:** 586 587| 类型 | 说明 | 588| -------- | -------- | 589| T | 返回当前对象。 | 590 591## 示例 592 593### 示例1(设置无障碍文本和无障碍说明) 594 595该示例主要演示accessibilityText无障碍文本和accessibilityDescription无障碍说明的播报内容。 596 597```ts 598// xxx.ets 599@Entry 600@Component 601struct Index { 602 603 @Builder customAccessibilityNode() { 604 Column() { 605 Text(`virtual node`) 606 } 607 .width(10) 608 .height(10) 609 } 610 611 build() { 612 Row() { 613 Column() { 614 Text("文本1") 615 .fontSize(50) 616 .fontWeight(FontWeight.Bold) 617 Text("文本2") 618 .fontSize(50) 619 .fontWeight(FontWeight.Bold) 620 } 621 .width('100%') 622 .accessibilityGroup(true) 623 .accessibilityLevel("yes") 624 .accessibilityText("分组") // 无障碍文本的内容,若组件既拥有文本属性又拥有无障碍文本属性,则组件被选中时,仅播报无障碍文本内容。 625 .accessibilityDescription("Column组件可以被选中,播报的内容是“分组”") 626 .accessibilityVirtualNode(this.customAccessibilityNode) 627 .accessibilityChecked(true) 628 .accessibilitySelected(undefined) 629 } 630 .height('100%') 631 } 632} 633``` 634 635### 示例2(设置无障碍组) 636 637该示例主要演示优先使用子组件的无障碍文本进行朗读。 638 639```ts 640// xxx.ets 641@Entry 642@Component 643struct Focus { 644 build() { 645 Column({ space: 10 }) { 646 Text('123456') 647 .focusable(true) 648 .borderRadius(5) 649 .accessibilityText("有accessibility有text优先读accessibility") 650 .accessibilityLevel("yes") 651 Button().accessibilityLevel("yes").accessibilityText("accessibility无text 读accessibility") 652 Button("无accessibility有text 读text").accessibilityLevel("yes") 653 Button() 654 Button('btn123').accessibilityText("有accessibility有text btn123").accessibilityLevel("yes") 655 Button('btn123').accessibilityLevel("yes") 656 } 657 .accessibilityGroup(true, { accessibilityPreferred: true }) 658 .borderWidth(5) 659 .width('100%') 660 .height('100%') 661 } 662} 663``` 664 665### 示例3(设置首焦点和组件的下一个焦点) 666 667该示例主要演示accessibilityDefaultFocus屏幕朗读当前页默认首焦点和accessibilityNextFocusId走焦过程中组件的下一个焦点。 668 669```ts 670// xxx.ets 671@Entry 672@Component 673struct Index { 674 build() { 675 Column({ space: 20 }) { 676 Text('Text Demo 1') 677 .fontSize(50) 678 .accessibilityLevel('yes') 679 .accessibilityNextFocusId('text3') 680 Text('Text Demo 2') 681 .id('text2') 682 .fontSize(50) 683 .accessibilityLevel('yes') 684 .accessibilityDefaultFocus(true) // 设置该组件为屏幕朗读当前页默认首焦点 685 .accessibilityNextFocusId('text4') 686 Text('Text Demo 3') 687 .id('text3') 688 .fontSize(50) 689 .accessibilityLevel('yes') 690 .accessibilityNextFocusId('text2') 691 Text('Text Demo 4') 692 .id('text4') 693 .fontSize(50) 694 .accessibilityLevel('yes') 695 } 696 .height('100%') 697 .width('100%') 698 } 699} 700``` 701 702### 示例4(设置无障碍组件类型和文本提示信息) 703 704该示例主要演示accessibilityRole无障碍组件类型和accessibilityTextHint供无障碍辅助应用查询的组件的文本提示信息。 705 706```ts 707// xxx.ets 708@Entry 709@Component 710struct Index { 711 @State isDownloading: boolean = false; 712 @State hintStr: string = '点击开始下载'; 713 714 build() { 715 Column({ space: 20 }) { 716 Button(this.isDownloading ? '下载中' : '点击下载') 717 .accessibilityLevel('yes') 718 .accessibilityTextHint(this.hintStr) 719 .onClick(() => { 720 this.isDownloading = !this.isDownloading; 721 this.hintStr = this.isDownloading ? '状态变为下载中' : '状态变为暂停下载'; 722 }) 723 TextInput({ placeholder: '请输入手机号码' }) 724 .accessibilityLevel('yes') 725 .accessibilityTextHint('请输入11位手机号码') 726 .width('80%') 727 Text('按照按钮类型播报') 728 .accessibilityLevel('yes') 729 .accessibilityRole(AccessibilityRoleType.BUTTON) 730 .accessibilityTextHint('屏幕朗读播报时,该组件将按照按钮类型进行播报') 731 .fontSize(30) 732 } 733 .height('100%') 734 .width('100%') 735 } 736} 737``` 738 739### 示例5(设置无障碍屏幕朗读滚动和焦点绿框绘制) 740 741该示例主要演示accessibilityScrollTriggerable设置无障碍节点是否支持屏幕朗读滚动、accessibilityFocusDrawLevel设置无障碍焦点绿框的绘制层级和accessibilityUseSamePage设置跨进程嵌入式显示的组件,如[EmbeddedComponent](ts-container-embedded-component.md)的accessibilityUseSamePage属性。 742 743```ts 744// xxx.ets 745import { Want } from '@kit.AbilityKit'; 746 747@Entry 748@Component 749struct Index { 750 @State message: string = 'Message: '; 751 private want: Want = { 752 // EmbeddedComponent提供方的bunldename,根据实际情况配置。 753 bundleName: 'com.example.embeddeddemo', 754 // EmbeddedComponent提供方的abilityName,根据实际情况配置。 755 abilityName: 'ExampleEmbeddedAbility', 756 } 757 758 build() { 759 Row() { 760 List() { 761 ListItem() { 762 Column() { 763 Text(this.message) 764 .fontSize(18) 765 .fontColor('#2D2D2D') 766 .fontWeight(FontWeight.Medium) 767 Column() { 768 EmbeddedComponent(this.want, EmbeddedType.EMBEDDED_UI_EXTENSION) 769 .width('100%') 770 .height('90%') 771 .onTerminated((info) => { 772 this.message = 'Termination: code = ' + info.code + ', want = ' + JSON.stringify(info.want); 773 }) 774 .onError((error) => { 775 this.message = 'Error: code = ' + error.code; 776 }) 777 .accessibilityUseSamePage(AccessibilitySamePageMode.FULL_SILENT) 778 .width('90%') 779 .height('50%') 780 .backgroundColor('#F0F0F0') 781 .borderRadius(8) 782 .borderWidth(1) 783 .borderColor('#D9D9D9') 784 785 Stack() { 786 Column() { 787 Text('文本1') 788 .fontSize(18) 789 .fontColor('#2D2D2D') 790 .fontWeight(FontWeight.Medium) 791 Text('文本1') 792 .fontSize(18) 793 .fontColor('#2D2D2D') 794 .fontWeight(FontWeight.Medium) 795 .accessibilityFocusDrawLevel(FocusDrawLevel.TOP) 796 } 797 .padding({ top: 8, bottom: 8 }) 798 799 Column() { 800 Text('文本2') 801 .fontSize(18) 802 .fontColor('#FFFFFF') 803 .fontWeight(FontWeight.Medium) 804 Text('文本2') 805 .fontSize(18) 806 .fontColor('#FFFFFF') 807 .fontWeight(FontWeight.Medium) 808 } 809 .backgroundColor('#4A90E2') 810 .padding({ 811 left: 12, 812 right: 12, 813 top: 10, 814 bottom: 10 815 }) 816 .borderRadius(6) 817 } 818 .width('100%') 819 .margin({ top: 10, bottom: 10 }) 820 } 821 .width('100%') 822 .height('100%') 823 .margin({ top: 15 }) 824 .accessibilityText($r('app.string.app_name')) 825 .accessibilityDescription($r('app.string.module_desc')) 826 Column() { 827 Text('文本4') 828 .fontSize(18) 829 .fontWeight(FontWeight.Medium) 830 } 831 .margin({ top: 15 }) 832 } 833 .width('100%') 834 } 835 } 836 .accessibilityScrollTriggerable(false) 837 .width('100%') 838 } 839 .height('100%') 840 .backgroundColor('#F7F9FC') 841 } 842} 843``` 844 845 846