diff --git a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/README_zh.md b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/README_zh.md index bf3bfa428ba384a2a8dcb85424d50534430a708b..d908520ba43cff70f8d3d1b7195c130702a0f184 100644 --- a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/README_zh.md +++ b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/README_zh.md @@ -47,6 +47,7 @@ entry/src/main/ets/ | | |---Index.ets | | |---UIExtension.ets | |---UniversalAttributesAccessibility // ArkUI 无障碍能力 +| | |---AccessibilityFocusDrawLevel.ets | | |---AccessibilityGroup.ets | | |---AccessibilityText.ets | | |---Index.ets @@ -71,7 +72,7 @@ entry/src/ohosTest/ 1.本示例仅支持标准系统上运行, 支持设备:RK3568。 -2.本示例为Stage模型,支持API18版本SDK,版本号:5.1.0.59,镜像版本号:OpenHarmony_5.1.0.59。 +2.本示例为Stage模型,支持API20版本SDK,版本号:6.0.0.35,镜像版本号:OpenHarmony_6.0.0.35。 3.本示例需要使用DevEco Studio 5.0.3 Release (Build Version: 5.0.9.300, built on March 13, 2025)及以上版本才可编译运行。 diff --git a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/build-profile.json5 b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/build-profile.json5 index 0d4a03d0a707b773d4ef140121aa0f45bdcd67fe..fd5f8c19c18e0b5ac81bbcf11fb00b500626eb24 100644 --- a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/build-profile.json5 +++ b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/build-profile.json5 @@ -21,9 +21,9 @@ "name": "default", "signingConfig": "default", "runtimeOS": "OpenHarmony", - "compileSdkVersion": 18, - "compatibleSdkVersion": 18, - "targetSdkVersion": 18, + "compileSdkVersion": 20, + "compatibleSdkVersion": 20, + "targetSdkVersion": 20, "buildOption": { "strictMode": { "caseSensitiveCheck": true diff --git a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/AccessibilityFocusDrawLevel.ets b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/AccessibilityFocusDrawLevel.ets new file mode 100644 index 0000000000000000000000000000000000000000..0fb40fb43ee987ea899c6392fe03465b851f6907 --- /dev/null +++ b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/AccessibilityFocusDrawLevel.ets @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ComponentContent } from '@kit.ArkUI'; + +class Params { +} + +@Builder +function loadingBuilder(params: Params) { + Column() { + LoadingProgress() + .color(Color.Blue) + } +} + +@Component +export struct AccessibilityFocusDrawLevel { + private contentNode = new ComponentContent(this.getUIContext(), wrapBuilder(loadingBuilder), new Params); + + build() { + NavDestination() { + Row() { + List() { + ListItem() { + Column() { + Stack() { + Column() { + Text($r('app.string.UniversalAttributesAccessibility_text5')) + Text($r('app.string.UniversalAttributesAccessibility_text5')) + .accessibilityFocusDrawLevel(FocusDrawLevel.TOP) + } + + Column() { + Text($r('app.string.UniversalAttributesAccessibility_text6')) + .backgroundColor(Color.Gray) + Text($r('app.string.UniversalAttributesAccessibility_text6')) + .backgroundColor(Color.Gray) + } + } + + Column() { + Text($r('app.string.UniversalAttributesAccessibility_text9')) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Column() { + UIExtensionComponent({ + bundleName: 'com.example.provide', + abilityName: 'EmptyUIExtensionAbility', + parameters: { + 'ability.want.params.uiExtensionType': 'sys/commonUI' + } + }, + { + placeholder: this.contentNode, + dpiFollowStrategy: DpiFollowStrategy.FOLLOW_UI_EXTENSION_ABILITY_DPI + }) + .onReceive((err) => { + console.error('onReceive' + JSON.stringify(err)); + }) + .onError((err) => { + console.error('onError code :' + err.code + ', name: ' + err.name + ', msg: ' + err.message); + console.error('onError' + JSON.stringify(err)); + }) + .accessibilityUseSamePage(AccessibilitySamePageMode.FULL_SILENT) + .width('50%') + .height('50%') + .backgroundColor(Color.Pink) + } + } + .width('100%') + .height('100%') + .accessibilityText($r('app.string.UniversalAttributesAccessibility_text7')) + .accessibilityDescription($r('app.string.UniversalAttributesAccessibility_text8')) + + Column() { + Text($r('app.string.UniversalAttributesAccessibility_text10')) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + } + } + }.accessibilityScrollTriggerable(false) + } + .height('100%') + } + .backgroundColor('#f1f2f3') + .title($r('app.string.UniversalAttributesAccessibility_title3')) + } +} \ No newline at end of file diff --git a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/Index.ets b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/Index.ets index 6c294c94540b89811646ab92365bd59fc6d1035e..c2e1ea6f42c9006675b55426933c4b9b3ffefa61 100644 --- a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/Index.ets +++ b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/ets/pages/UniversalAttributesAccessibility/Index.ets @@ -17,6 +17,7 @@ import { CompletedRoutableCard } from '../../common/Card' import { Route } from '../../common/Route' import { AccessibilityText } from './AccessibilityText' import { AccessibilityGroup } from './AccessibilityGroup' +import { AccessibilityFocusDrawLevel } from './AccessibilityFocusDrawLevel' import resource from '../../common/resource' export const ACCESSIBILITY_ROUTE_PREFIX: string = 'UniversalAttributesAccessibility'; @@ -31,6 +32,11 @@ const routes: Route[] = [ name: `${ACCESSIBILITY_ROUTE_PREFIX}/AccessibilityGroup`, title: resource.resourceToString($r('app.string.UniversalAttributesAccessibility_title2')), description: resource.resourceToString($r('app.string.UniversalAttributesAccessibility_description2')), + }, + { + name: `${ACCESSIBILITY_ROUTE_PREFIX}/AccessibilityFocusDrawLevel`, + title: resource.resourceToString($r('app.string.UniversalAttributesAccessibility_title3')), + description: resource.resourceToString($r('app.string.UniversalAttributesAccessibility_description3')), } ]; @@ -42,6 +48,8 @@ export function AccessibilityDestination(name: string) { AccessibilityText(); } else if (name == routes[1].name) { AccessibilityGroup(); + } else if (name == routes[2].name) { + AccessibilityFocusDrawLevel(); } } diff --git a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/resources/base/element/string.json b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/resources/base/element/string.json index 83d34a5137a2312b8855bbe7b0fe9385b7a29188..cf91256a5866dcd5dfd7a3c0a521726f20edbcec 100644 --- a/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/resources/base/element/string.json +++ b/code/DocsSample/ArkUISample/UIExtensionAndAccessibility/entry/src/main/resources/base/element/string.json @@ -60,6 +60,10 @@ "name": "UniversalAttributesAccessibility_title2", "value": "使用无障碍属性 2" }, + { + "name": "UniversalAttributesAccessibility_title3", + "value": "使用无障碍属性 3" + }, { "name": "Embedded_Component_description", "value": "展示 EmbeddedComponent 组件的基础使用方式" @@ -84,6 +88,10 @@ "name": "UniversalAttributesAccessibility_description2", "value": "设置无障碍组" }, + { + "name": "UniversalAttributesAccessibility_description3", + "value": "设置无障碍焦点绿框绘制层级" + }, { "name": "UIExtensionComponent_button1", "value": "点击向Component发送数据" @@ -139,6 +147,14 @@ { "name": "UniversalAttributesAccessibility_text8", "value": "Column组件可以被选中,播报的内容是“分组”" + }, + { + "name": "UniversalAttributesAccessibility_text9", + "value": "文本3" + }, + { + "name": "UniversalAttributesAccessibility_text10", + "value": "文本4" } ] } \ No newline at end of file