当前位置: 首页 > news >正文

鸿蒙应用框架开发【基于原生能力的无障碍模式】

基于原生能力的无障碍模式

介绍

本示例基于系统提供的无障碍阅读能力,实现了无障碍扩展服务集成、原生组件屏幕朗读以及多个控件组合标注。

效果图预览

原生组件屏幕朗读:

1

创建说明:

  1. 在已创建工程的ets文件夹下创建accessibility文件夹,在该文件夹下创建AccessibilityExtAbility.ets文件,可在该文件中实现一些回调函数,并加入业务处理逻辑的调用,具体可参考src/main/ets/accessibility/AccessibilityExtAbility.ets代码。
  2. 在已创建的accessibility文件夹下创建AccessibilityManager.ets文件,用于存放业务逻辑代码,可参考src/main/ets/accessibility/AccessibilityManager.ets进行实现。
  3. 在src/main/module.json5下新增扩展服务的配置信息,其中srcEntry标签为extensionAbility对应的路径。需要注意的一点是配置信息中的type标签要按照与无障碍子系统的约定进行配置,固定为accessibility,否则将无法正常连接。
"extensionAbilities": [{"name": "AccessibilityExtAbility","srcEntry": "./ets/accessibility/AccessibilityExtAbility.ets","label": "$string:MainAbility_label","description": "$string:MainAbility_desc","type": "accessibility","metadata": [{"name": "ohos.accessibleability","resource": "$profile:accessibility_config"}]}
]
  1. 另外,配置信息中的accessibility_config为无障碍扩展服务的具体配置,需要在resources/base/profile/下新建accessibility_config.json文件,在该文件中声明此无障碍扩展服务具备的能力类型,根据业务功能合理声明能力类型,本案例中,需要如下声明:
{"accessibilityCapabilities": ["retrieve","gesture","touchGuide"]
}

使用说明:

  1. 打开设置->辅助功能->屏幕朗读->屏幕朗读选项。

  2. 打开屏幕朗读后,关键手势如下:

    1. 单击选择某个项目,双击确认选择。
    2. 返回桌面及桌面切换等原有的单指操作都需要换成两指操作。
    3. 下滑屏幕朗读下一项,上滑屏幕朗读上一项。
  3. 打开应用,下滑或上滑查看朗读情况。

具体实现

使用原生组件时,即可自然支持无障碍能力,但是在一些场景中,一个功能上完整的UI对象可能是由若干个更小的UI组件组合而成的。若每一个小的UI组件都可以获焦并朗读,则会造成信息冗余和效率降低。同时由于可聚焦的组件过多过细,也会影响触摸浏览时走焦的性能体验。此时需要将多个控件设置为一个组,通过对组设置朗读标签,达到整组播报的效果。

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习路线,展示如下:
1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

在这里插入图片描述

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • 基于Deap遗传算法在全量可转债上做因子挖掘(附python代码及全量因子数据)
  • 《计算机网络》(学习笔记)
  • redis面试(三)Hash数据结构
  • Linux--Socket编程TCP
  • LIMS实验室管理系统的三大分类
  • Python自学第五天
  • 计算机毕业设计选题推荐-学院教学工作量统计系统-Java/Python项目实战
  • 【C++】用Lua绑定C/C++对象,实现对脚本调用(依赖LuaBridge实现)
  • Hello 算法:动画图解、一键运行的数据结构与算法教程
  • MySQL的面试题,从简单到困难三道题目
  • 【计算机网络】DHCP实验
  • Windows下编译安装Kratos
  • 用Python来DIY一个AI面部情绪识别API的简单方案
  • Spark+实例解读
  • Android 控件背景颜色处理
  • Hibernate【inverse和cascade属性】知识要点
  • Javascript弹出层-初探
  • JavaScript设计模式之工厂模式
  • Linux快速复制或删除大量小文件
  • Node 版本管理
  • nodejs实现webservice问题总结
  • vue:响应原理
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • -- 数据结构 顺序表 --Java
  • 算法系列——算法入门之递归分而治之思想的实现
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • #07【面试问题整理】嵌入式软件工程师
  • (0)Nginx 功能特性
  • (02)vite环境变量配置
  • (3) cmake编译多个cpp文件
  • (Forward) Music Player: From UI Proposal to Code
  • (办公)springboot配置aop处理请求.
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (回溯) LeetCode 46. 全排列
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)VirtualBox安装增强功能
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)为C# Windows服务添加安装程序
  • (转载)(官方)UE4--图像编程----着色器开发
  • (转载)Linux 多线程条件变量同步
  • (自适应手机端)行业协会机构网站模板
  • .gitignore
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .net反混淆脱壳工具de4dot的使用
  • .NET未来路在何方?
  • .skip() 和 .only() 的使用
  • @ComponentScan比较
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录