android - TalkBack 在不同设备上处理 `view.requestFocus()` 的方式不一致
问题描述
我们了解到,TalkBackview.requestFocus()
在不同设备上的处理方式不一致。我们发现了什么:
可访问性公告设置为
view.announceForAccessibility(“Please enter a valid email address”)
view.requestFocus()
未公布所有设备。
何时requestFocus()
调用:
对于四个设备,TalkBack 会宣布请求焦点的视图,然后宣布“请输入有效的电子邮件地址”,这就是我们期望它的工作方式。
但是,两个设备宣布请求焦点的视图,并忽略“请输入有效的电子邮件地址”。我尝试了所有方法来强制 TalkBack 在两台无法正常工作的设备上宣布“请输入有效的电子邮件地址”,但没有任何效果。我坚信这是 Android 框架中的错误,或者更有可能是 TalkBack 中的错误,因为不应该在不同的设备上以不同的方式宣布相同的情况。
我在六台设备上测试了这个问题,包括:
- 操作系统方面:
- 四个运行 Android 8.0.0 = 两个工作,两个不工作
- 两个运行 Android 8.1.0 = 都工作
- 品牌方面:
- 两个 LG = 两者都工作
- 一个 Google Pixel = 有效
- 一个三星=不工作
- 一台摩托罗拉=不工作
- 一个 Nexus = 有效
- 两个是模拟器(两个都可以工作),其余的是物理设备(五个工作中的两个)。
解决方案
推荐阅读
- excel - 打破时间循环的正确方法
- laravel - Laravel 如何在模型文件中将外键的名称定义为默认名称?
- python - 分组、聚合、包含单独的列
- db2 - 用户不允许执行授权操作
- java - 如何从 View 构造函数中设置 layout_width/height
- python - AttributeError:“列表”对象没有属性“标题”
- javascript - 无法以编程方式单击下拉菜单中的项目
- ruby-on-rails - 如何使用 Rails 安装程序在 Windows 10 上安装 Ruby On Rails
- python - 查找二维数组元素的第一个和第二个元素之间的最大和最小差异
- java - 有没有办法将 Stream 的结果转换为 Array 并遍历 Array 元素?