首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单了解下无障碍设计模式

添加可隐藏的字幕,或其他视觉元素来作为重要声音元素和声音警报的替代方案。 通过在 UI 元素上添加描述性的标签,使用户可以通过声音在应用中导航。...对于有其他重要功能的控件,请确保用户可以再次启用控件、或可以通过其他途径执行相同的功能,在层次和焦点中了解更多。 自动朗读文本 阅读关于在活跃区域放置文本的信息。...视觉反馈(如标签、颜色和图标)和触摸反馈向用户显示了可用的 UI。 导航应该具有清晰的任务流程,和最少的步骤。在频繁使用的任务上,应该实现聚焦控制、或控制键盘和读取焦点的功能。...用户也可以在屏幕上向前或向后滑动来移动焦点,来从上到下线性地阅读页面。这允许用户在某些元素上进行训练。在 TalkBack 中,这称为线性导航。...避免在文本中包含控件类型和状态 屏幕阅读器会通过声音、或通过在无障碍文本前后说出控件名称,来自动声明控件的类型和状态。 搜索 正确示例 使用简短的说明。 搜索字段 错误示例 不要写控件类型。

4.8K40

声明式 UI?Android 官方怒推的 Jetpack Compose 到底是什么

2019 年中,Google 在 I/O 大会上公布了 Android 最新的 UI 框架:Jetpack Compose。Compose 可以说是 Android 官方有史以来动作最大的一个库了。...这两年的时间 Android 团队在干嘛?在开发这个库,在开发 Compose。一个 UI 框架而已,为什么要花两年来打造呢?...但是对于大多数 Android 开发者来说,我们的第一个问题就是:什么是「声明式 UI」? 在讲「声明式 UI」之前,我们先看一下 Compose 的代码长什么样。...换句话说,如果 Android 可以让我们用 xml 写的界面也和数据做关联,让界面自动更新而不需要开发者手写更新代码,那么它就也是声明式 UI。...声明式 UI 是一种强大的功能,而不是一种优秀的代码风格。 哎?数据和界面做关联,界面跟着数据自动更新,这不就是数据绑定吗?Android 已经有这样的官方库了啊!

2.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    写给初学者的Jetpack Compose教程,为什么要学习Compose?

    即使Android系统仍然还是保持每年一个版本的更新,但现在基本都是一些隐私和安全性上的提升,很少再能看到有什么重大的功能突破了。...那么我们可以先来审视一下,View真的是好好的吗?...我们可以将声明式理解成是一种编程思维,只要你的UI框架是基于这种编程思维来使用的,那么就可以称之为声明式UI框架。 具体是什么编程思维呢?我们还是拿View来进行举例。...事实上,所有的声明式UI框架在这里都会采取相似的优化策略,那就是在刷新界面的时候只会去更新那些状态有变化的控件,而那些状态没有变化的控件在界面刷新的时候则会跳过执行。...为什么使用Compose来实现同样的功能逻辑会变得这么简单?因为这就是声明式UI的特点。当HomePage()函数传入的参数发生变化时,这个函数就会触发重组,从而对界面内容进行刷新。

    87620

    腾讯TMQ在线沙龙回顾|UI自动化中阶思考与实践

    嘉宾简介 陈帅,腾讯专项技术测试工程师,目前主要负责腾讯WIFI管家业务及专项测试,多年测试经验,在UI自动化开发方面,在appium、uiautomator、espresso等工具上都有实战经验。...H5页面更新较多的话,这部分建议不考虑自动化,UI自动化主要针对功能稳定的用例来做。 5、请问下对应用悬浮窗和toast有什么好的抓取和验证方式吗? 答:Espresso可以抓取到toast。...7、请问下是否有准确的在问题发生时进行截图方法,往往截图时已经错 了问题界面? 答:参考问题6,谢谢。 8、除了mainlog日志和截图,是否还有其它的日志或者内容可以辅助问题分析?...答:对应的控件,开发如果没有写id的话就没有id,Dump下来UI之后,建议点击界面上的黄色小三角,尽量不要使用那些被置为警告的UI控件,在自动化过程中,会找不到这些控件。...调用android提供的接口来验证,建议看下wifimanager。建议不要把自己的思维在UI校验上限制死,校验手段有很多,比如读android系统文件,读系统的接口,读数据库等等。

    1.5K90

    腾讯TMQ在线沙龙|老司机教你玩转Appium自动化测试

    另外我们的测试都是在真机上进行的,没在模拟器上运行。...答:这个apk的作用主要是用来辅助Appium服务器在运行时对手机的设置功能.比如需要设置网络为wifi,或者关闭网络等。 7、提问:appium怎么实现跨应用测试,能大概说下什么方法吗?...问题2:个人感觉Appium已经是非常好的适配各种机型了,因为该工具是直接通过控件的信息来查找控件,与手机的分辨率无关,在大屏幕上要显示哪些UI元素,那么在小屏幕手机也应该显示。...问题3:appium是基于UiAutomator实现的,就我所知是没有方法获取控件的颜色,其实我们测试过程中也没关注UI上的颜色,更多关注逻辑上是否OK的。...每天晚上测试服务器发起任务定时去拉取编译服务器上最新的版本到本地进行测试,完毕后将测试结果通过邮件反馈给项目成员,大家在第二天早上来时可以直接看结果。

    1.4K70

    写给初学者的Jetpack Compose教程,基础控件和布局

    本教程实质上就是我在自我学习Compose的同时,将这些学习记录分享给大家,希望大家可以零基础跟着我一起学习。 Compose是一个用于替代Android View的全新声明式UI框架。...那么恭喜,我们Compose之旅的第一个控件,你已经掌握它的最基本用法了。 不过只能显示一段文字很明显功能太单调了。事实上,Text提供了非常丰富的API来允许我们对显示的内容进行定制。...不同的是,在View当中,Button是TextView的子类,它们之间是继承的关系。因此,Button实际上是在TextView的基础之上做了功能扩展,使得控件可以点击了。...这个文字描述主要是在accessibility模式下,为有视觉障碍的群体提供发音辅助的。ImageView上也有类型的功能,但只是作为一项可选的属性提供。...Column 实际上在讲解基础控件的时候我们就一直在使用Column,因为所有的控件都是放在Column当中的。 Column当中的控件会按照纵向的方式从上到下排列,效果也就是我们刚才看到的那样。

    3.3K20

    Flutter来了,你慌了吗

    它支持跨平台运行,一次开发,就可以在Android和IOS上同时运行。 很多人预测这会给现在的移动开发带来一些改变,也可能预示着未来Android开发的发展方向。...什么是Flutter 可以把Flutter理解为一个跟Android Framework一样的中间层框架, 它提供接口和控件给开发者,同时它自己会维护UI的更新,线程的控制。...Flutter的UI 在Flutter上,没有跟Android一样的Activity/Fragment这种概念, 取而代之的是 Widget和State。...可以理解为,在 Flutter上,一切都是 widget, 而 Activity的跳转,Fragment的切换,都可以理解为 Widget在 UI栈上的push和pop。...Flutter会让Android开发失业吗 其实Android开发最担心的应该这个问题,它会取代传统的Android开发吗?

    90420

    妙用AccessibilityService黑科技实现微信自动加好友拉人进群聊

    ,feedbackGeneric通用反馈; accessibilityFlags:辅助功能附加的标志,flagDefault默认的配置 canRetrieveWindowContent:辅助功能服务是否能够取回活动窗口内容的属性...notificationTimeout:响应时间 packageNames:监听的应用包名,不填,默认监听所有应用的事件 settingsActivity:允许用户修改辅助功能的activity类名...Step 3:安装到手机后,需要在手机设置的无障碍处开启服务 一般在设置的辅助功能处能找到: 如果Logcat那里能看到打印的LOG,说明服务正常运行,接下来要找控件节点 ---- 3.找控件 这里可以用到神器...另外,UI Automator有时并不可靠(实时问题),我建议写多一个遍历节点 的方法,可以更清楚里面的控件情况: 拿到控件,接着就到触发事件了。...,如果有还用 itchat那个做机器人的,建议回复的时间可以稍微延长些; 关于AccessibilityService更多内容可见: Android辅助功能:https://blog.csdn.net

    3.2K40

    Avalonia 11.0.0 正式版发布!

    更新内容 A11y(辅助功能) 这个版本的Avalonia在使应用程序更易于访问方面迈出了重要的步伐。我们增加了对各种辅助工具的支持,使每个人都可以更轻松地使用Avalonia应用程序。...iOS和Android支持 我们增加了对iOS和Android平台的支持。开发人员现在可以在两个最受欢迎的移动平台上构建和运行Avalonia应用程序。...完整的富文本支持 您现在可以完全呈现富文本,从而可以呈现复杂的文档。 通过Text Inlines功能,您可以轻松构建复杂的格式化文本块。它使您可以在文本中添加注释、超链接和其他内联元素。...性能改进 Avalonia 11.0带来了显著的性能改进,增强了应用程序的速度和效率。 控件主题、嵌套样式和主题变体 我们添加了主题控件、应用嵌套样式和选择主题变体的功能。...这使得构建美观和一致的UI更加容易。 位图效果 位图效果功能让您可以将视觉效果应用于位图。您可以向图像添加模糊、投影阴影和其他效果。

    70040

    如何处理手势冲突 | 手势导航连载 (三)

    粘性沉浸模式: 用户可以通过在系统栏上滑动来暂时退出沉浸模式 这里我们向您进一步解释一下流程图里的内容。 问题 1: 应用需要隐藏导航栏或状态栏吗?...问题 2: 主要的 UI 需要在交互区域内/附近使用滑动操作吗? 这个问题是在询问,应用的界面是否在手势导航交互区域内或附近包含任何需要用户滑动操作的组件。...除了游戏之外,有一些常见的 UI 也可能在这里回答 "是": 图片裁切 UI,其中用于裁切图片的控制点可能位于屏幕左/右边缘附近。 绘图应用,用户可以在屏幕画布上绘图 (自然也是滑动操作)。...通过使用这个 API,您实际上在声明应用的手势比 "返回" 等系统操作更重要。这个做法我们只建议您在没有其他解决方案时采用。...我们认为,开发者需要尽量确保用户使用一致的操作来与系统进行交互,如从边缘向内滑动进行返回。注意是在整个设备上,而不仅仅是在一个应用中保持一致性。

    5K30

    就在今天,没想到腾讯竟然开源一套 Android 原生 UI 框架

    今天在浏览技术新闻的时候,发现腾讯就在今天开源了一套 Android 原生的 UI 框架。你们有没有发现,腾讯特别喜欢干这种事,哪种事呢?喜欢开源 UI 框架,小程序也是这样的。...这个开源框架就是:QMUI_Android ,它的 Slogan 是:提高 Android UI 开发效率的 UI 库。...QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。...这个 UI 库标榜说是提高大家的开发效率,那它是如何提高自己的开发效率的呢? 功能特性大致如下: ? 大致解读一下,就是功能有三大特性: 可以全局配置 UI 样式,一处修改,全局生效,超级方便。...提供了丰富的 UI 控件库,各种动画,列表,Button,底部菜单,下拉刷新,各种 Tab,弹框等等,以后直接可以使用,不用自己动手写了。

    1.3K20

    带你高效入门 Flutter

    在前端,如果完全不使用原生控件,我们可以通过系统的绘图 API 绘制出一个用户界面。从这个角度出发,可以在各个平台使用一个统一接口的绘图引擎来进行界面绘制,这个引擎最终调用的是系统的 API 绘制的。...这样的话,它的性能可以做到接近原生,并且又不受原生控件的限制,在不同平台上能够做到 UI 统一。 Flutter 就是这样的一个开发框架。...换句话说,它原则上只管 UI 的问题,如果涉及到平台本身的一些功能,比如调用蓝牙、摄像头,一般还是需要原生代码去操作。但现在也会有一些第三方库帮我们解决这些问题。...因为在这些开发工具上,可以安装官方的 Flutter 和 Dart 插件,得到更好的开发体验。文章里使用 Android Studio 来演示。...3})); 在 Flutter 里还有一类控件,它们不影响 UI 布局,但带有一些特定的功能,比如页面跳转、事件监听、定义主题等。

    1.3K20

    微信小程序之自动化亲密接触

    运行的时候去截取android相关的代码调用,转到他们的实现的代码去执行这个调用的过程,并且在android标准类基础上又丰富了很多扩展接口,这确实极大便利了单元测试过程,但是对于我们关注功能层面的测试同学确实有些麻爪啊...真的是徒手,因为就是用手机端的脚本编辑功能就实现了。 ? 2开始回放查看结果 搞定脚本后可进行本地回放或多机联测,由于是基于控件的录制技术,所以回放过程比较顺利。...使用XTest辅助工具对控件抓取可知,在X5 WebView内,控件也是如Android原生控件一样具有属性字段的。 ?...特殊控件也可以获取到对象属性么? ? switch、video、canvas、map等组件都可以获取到对象属性,基于这些数据,可以完成UI自动化的控件抓取。 2小程序测试实践 1....视频接口测试 小程序演示中除了提供组件之外也展示了部分接口功能,从中抽取代表性的“选择视频”这一较为复杂用例进行测试:(接口类型:媒体—视频) ?

    2.7K90

    革命性web前端框架Flutter详细介绍和学习路径

    Flutter是什么 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。...Dart可以在没有锁的情况下进行对象分配和垃圾回收。就像JavaScript一样,Dart避免了抢占式调度和共享内存(因而也不需要锁)。...在 Flutter 中,UI 组件和渲染器已经从平台中集成到用户的应用程序中。没有系统 UI 组件可以操作,所以原来虚拟控件树的地方现在是真实的控件树。...Flutter 渲染 UI 控件树并将其绘制到平台画布上。 UI 一致性 Flutter 因为是自己做的渲染,因此在iOS和Android的效果基本完全一致。...(Android会加入OKHttp导致体积增大) Flutter 部分的底层功能在 Android 系统上已经有实现,因此 Android 上适配要好(RN在 Android 上有可能遇到兼容性问题)。

    3.9K40

    Xamarin 社区工具包的现状和未来

    Xamarin 社区工具包是一个使用 Xamarin.Forms 进行移动开发的可重用的元素集,包括动画、行为、转换器、效果和辅助工具。...实际上,这意味着我们将确保 XCT 可以继续使用 Xamarin.Forms,并且可以用于 iOS、Android 和 UWP 的新版本,但不会增加新特性。...InfoQ:现在,我们有了两个社区工具包,您觉得它们应该变成一个吗? Versluis:随着向.NET MAUI 社区工具包的迁移,实际上,它们某种程度上正在变成一个。...特别是在 Android 上,不同的控件存在于不同的 Android 包中。把所有东西都放在一个库里意味着人们会有大量他们可能永远都不会使用的依赖。...它基本上是在原生 API 上提供了一个抽象层,使它们更偏向于.NET 风格。 另外一点就是,工具包有很多的 UI 特性。无论是 XAML 支持,还是现有的完备的控件。

    2.8K20

    安卓学习记录

    一、安卓四大组件 Activity:是所有Android应用程序的门面,凡是在应用中你看到的东西,都是在里面。每一个Activity都独立于其他Activity而存在。...除了声明应用的组件外,清单文件还有许多其他作用,如: 确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限 根据应用使用的 API,声明应用所需的最低 API 级别 声明应用使用或需要的硬件和软件功能...例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。隐式Intent需要配合Intent-filter。...创建隐式 Intent 时,Android 系统通过将 Intent 的内容与在设备上其他应用的清单文件中声明的 Intent 过滤器进行比较,从而找到要启动的相应组件。...:系统会有一个单独的返回栈来管理这个Activity,不管是哪个应用来访问这个Activity,都共用一个单例 五、安卓UI布局 android:layout_width: 控件的宽度 android:

    2.5K10

    它的坑在哪里? 应该怎么学?

    因为 react-native 是通过将 JS 里的控件转化为原生控件进行渲染,所以 rn 里的控件是需要依赖原生平台的控件,所以不同系统之间原生控件的差异,同个系统的不同版本在控件上的属性和效果差异,...image 在我 react-native 开发生涯中,就经常出现: 在 iOS 上调试好的样式,在 Android 上出现了异常; 在 Android 上生效的样式,在 iOS 上没有支持; 在 iOS...平台的控件效果,在 Android 上出现了不一样的展示,比如下拉刷新,Appbar等; 当然,这些问题最终都可以通过 if else 和自定义平台控件来解决,但是随着项目的发展,这样的结果无疑违背了我使用跨平台的初衷...而 Flutter 的控件特性决定了它没有这些问题,我甚至经常只在 iOS 模拟器上开发测试所有界面逻辑,而不用担心 Android 上的兼容,当然屏幕大小的适配是不可避免的。...)并不能做到「声明式 UI」,或者说 声明式 UI 是一种比数据绑定更强的数据绑定,比如在 Compose 里你除了简单地绑定字符串的值,还可以用布尔类型的数据来控制界面元素是否存在,例如再创建另外一个布尔类型的变量

    1.7K20

    Android:AccessibilityService辅助功能基础使用(附微信抢红包教程)

    辅助功能(AccessibilityService)是一个Android系统提供的一种服务,继承自Service类。...():则会返回当前活动窗口的根结点,查找View的时候用到它 findFoucs(int falg):查找拥有特定焦点类型的控件 disableSelf():禁用当前服务 2 辅助类的声明与配置 AccessibilityService...例如我们现在要利用辅助点击做app的自动安装功能,取值com.android.packageinstaller。如果只关注微信发出的事件,那么取值com.tencent.mm。...android:notificationTimeout:两个同样类型的监听事件发给辅助类的最小时间间隔 android:canRetrieveWindowContent:是否可以获取窗口内容,一般设置为...但是处理监听到的事件就有点麻烦了。我在github上写了一个微信抢红包的的开源项目,代码地址,我结合这个git库的代码解释下如何处理监听事件。

    6.2K20
    领券