当前位置: 首页 > 知识库问答 >
问题:

Android可访问性-如何在某些文本出现时设置可访问性焦点?

苍恩
2023-03-14

我有一个页面,用户需要输入他们的电子邮件,然后点击底部的按钮进行确认。确认电子邮件时,屏幕上会显示一个进度对话框。当在编辑文本中输入无效电子邮件时,就像只输入字母“a”一样,编辑文本下方会以文本视图的形式显示一条错误消息。我正在努力让这个页面更容易访问。

我的预期html" target="_blank">方法是,当错误文本出现时,让对讲模式聚焦在错误文本上。然而,这并不是很有效。相反,当解除“进程”对话框覆盖时,屏幕上的任何内容都不会通过对讲进行选择,我注意到“确认”按钮仍处于选定状态,我听到应用程序再次宣布应用程序名称,就好像正在重新创建活动一样(尽管没有)。此时向右滑动将选择屏幕上的第一个视图。值得注意的是,当对讲模式未打开时,确认按钮不会像对讲模式打开时一样保持“选定”状态。

这是我尝试过的代码:

private fun onServerResult() {
    ...
    dismissDialogOverlay()
    if (error) {
        showError(errorMessage)
    }
}

private fun showError(msg : String?) {
    mTvEmailError.text = msg
    mTvEmailError.visibility = View.VISIBLE
    mTvEmailError.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED) //want focus now!
}

我还尝试了mTvEmailError.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED),并且还尝试了将每个具有可访问性的事件与mTvEmailError.requestFocus()配对。没有运气。

我想让mTvEmailError成为对讲模式下的选定视图。相反,按下按钮后不会选择任何内容。就好像在点击确认按钮后,对讲模式完全消失了。

共有1个答案

颜乐
2023-03-14
mTvEmailError.postDelayed({ mTvEmailError.requestFocus() }, 300)

//解释Request estFocus函数需要在单独的线程中调用,如果直接调用它会在主线程中调用,在主线程中可能会出现其他进程,如果调用Request estFocus()函数可能会出现流量,所以我们需要在单独的线程中调用300毫秒的延迟。

 类似资料:
  • 启用对讲后,是否有办法将辅助功能焦点手册设置为特定视图?例如,当我的活动开始时,我希望TalkBack自动聚焦于某个按钮(视图周围的黄色框)并读取其内容描述。 到目前为止,我所尝试的: 请求焦点()似乎只是请求输入焦点,与可访问性焦点无关。我也尝试过: 这些似乎都不起作用。

  • Jquery Mobile 是基于标准的,系统化的html构建的,使得页面能够在最广范围的设备上得到支持。对于A级的浏览器,许多Jquery Mobile组件,比"焦点管理","键盘导航"等都能支持,其他可以详细参加W3C的WAI-ARIA说明. 通过运用这些技术,我致力于使得通过Jquery Mobile开发的web产品拥有最好的可访问性,对于伤残人士,例如盲人,也可以用读屏软件,例如iphon

  • JAVA访问修饰符的可访问性 公众 在 同一班级 同一套餐 子类 宇宙/其他软件包 我在互联网上寻找这些问题的答案,因为我有多个答案。一个视频说未声明的访问修饰符是公共的,而我看到另一个书面来源说未声明的访问修饰符在子类和其他包中没有限制。试图确认哪个是真的。

  • 问题内容: 与我的其他问题略相关:以下内容之间有什么区别: 同样,最后2个之间的差异是我最感兴趣的。 问题答案: 任何包中的类都可以访问公共类。 具有默认访问权限()的类仅对同一包中的其他类可见。 private和protected修饰符只能应用于内部类。 私有类仅对其封闭类以及同一封闭类中的其他内部类可见。 受保护的类对于同一包中的其他类以及扩展该封闭类的类都是可见的。

  • 我正在实现一个,用户可以在其中向左滑动以从列表中删除项目。 我希望我的应用程序是可访问的,我想知道是否有可能在对讲中以某种方式向用户宣布他需要刷卡,同时我也想知道我是否能捕捉到这个刷卡手势。 先谢谢你, 佩德罗

  • 我在让TalkBack使用Web视图时遇到问题(在Android 4.4.2上使用Nexus 5进行测试)。我读到TalkBack支持被添加到Android JellyBean发布前后的Web视图中,方法是检查标题为“增强Web可访问性”的首选项。我无法在系统设置中找到此首选项。 在我们的应用程序中,专注于Web视图只是读取“WebView”,并且不提供其他选项。我已经确定并调用了在Web视图上。