jjzjj

Talkback

全部标签

Android如何在显示RelativeLayout时让talkBack阅读文本

我有一个Activity使用以下代码将自定义View添加到整个Activity的Viewactivity.getWindow().getDecorView()).addView(newView)为了显示指导标记/用户提示的屏幕。我的自定义View从RelativeLayout扩展而来,并在其构造函数中在屏幕底部添加了一个按钮,单击该按钮时会关闭View。我已经覆盖了“dispatchDraw”方法,这样我就可以在特定位置将多个coachmarkUI对象(TextView和位图)添加到布局中。这些coachmark对象使用如下代码在View上绘制自己canvas.save();canva

android - 在 Android 中更改由对讲说出的文本

当ImageView通过辅助功能获得焦点时,我正在尝试更改TalkBack宣布的文本。Android文档指出我们应该创建一个AccessibilityDelegate,并覆盖onPopulateAccessibilityEvent(我正在使用支持库,因为我也支持GingerBread)因此,我的代码如下:publicstaticvoidsetImageDelegate(Viewview){AccessibilityDelegateCompatdelegate=newAccessibilityDelegateCompat(){@OverridepublicvoidonPopulateAc

android - 在自定义 View 上启用对讲时不调用 onTouchEvent

我正在为密码字段实现自定义键盘(通过自定义View)并尝试添加辅助功能,因此当用户单击View时,它应该读出所选值。在我的自定义键盘中,我需要来自MotionEvent的坐标,以便View可以计算它被按下的绘制(值)。但在这种情况下,当Talkback启用时,onTouchEvent方法不会被调用。它仅在用户双击View时调用。我正在尝试添加自定义OnTouchListener但它不起作用。setFocusable=true和setFocusableInTouchMode=true。 最佳答案 对于那些遇到这个问题并寻求解决方案的人

Android 辅助功能 : Talkback traverses elements in wrong order

我有一个带有工具栏的布局和一个将承载其他控件的View:使用FrameLayout使具有正“高度”的工具栏可以是半透明的,并且View可以延伸到工具栏下方。工具栏和View的顶部位置相同但高度不同。当Talkback构建View层次结构时,它会将工具栏放在底部,即使它是最先定义的。“accessibilityTraversalBefore”和“accessibilityTraversalAfter”对View没有影响。到目前为止,我找到的唯一解决方案是向ViewStub添加1px或0.1px的上边距。这可能与此处的代码有关:https://github.com/google/talkb

android - 在启用触摸模式的情况下显示 snackbar 时,无法将焦点放在 snackbar 中的操作按钮上

我试图在显示snackbar时将焦点直接放在snackbar中的操作按钮上,以便让用户知道可以使用snackbar中显示的警报消息执行某些操作。注意:这是针对对讲模式。我尝试使用requestFocus()和sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);但无论哪种方式,焦点似乎都停留在fragment中。我也面临着与Material展示View操作按钮类似的问题。有关如何将焦点放在那里的任何提示? 最佳答案 调用snackbar.getView().requ

android - 如何将 Androids Talkback 与 clickableSpan 一起使用?

所以我有一个可变长度的文本,直到现在我已经用SpannableString填充它以突出显示特定的“硬”词,然后您可以单击以在对话框中获得解释。但是因为我必须为可访问性设计我的应用程序,所以我需要androidsTalkback功能来读出这些词(加上它周围的文本,但我现在已经有了)以及能够点击它们。到目前为止,我还没有找到在不禁用Talkback的情况下点击ClickableSpan的方法。我发现ClickableSpan无法处理可访问性,但URLSpan可以?如果是这样,我可以打开一个带有URLSpan的自定义文本的对话框吗?还是跟我调用text.setMovementMethod(L

Android TalkBack 聚焦在透明层后面

我的应用程序中有一个透明View位于几个fragment之上。因此,我的fragment位于透明覆盖层下方,但在打开覆盖层时用户无法访问它们,因为触摸覆盖层会将其关闭。在我启用TalkBack之前一切正常我的问题是,当我启用TalkBack并滑动以选择下一个元素时,一旦TalkBack完成叠加层中的所有内容,它将开始将焦点设置在叠加层下方的项目上。有什么办法可以阻止它这样做吗?类似于android:clickable="true"或使用onClick监听器使透明覆盖拦截所有点击? 最佳答案 在API19+上,您可以设置accessi

android - 如何让 TalkBack 自动读出 TextView 的错误信息?

我目前正在使我的应用程序可访问,但我的EditTexts有问题:在每个EditText中,用户的输入都会在某个时候被验证(例如,按下按钮后),如果输入无效,我会使用editText.setError("message")显示错误.问题是,如果TalkBack打开,它不会自动聚焦并读取错误。此外,由于无法获取错误View,因此无法通过sendAccessibilityEvent要求TalkBack聚焦它。对于如何在仍然使用editText.setError()的同时解决这个问题的任何想法,我将不胜感激。编辑1添加了@AbhishekV解决方案的代码:publicclassBaseEdit

Android Recyclerview 反馈问题

我有一个AndroidRecyclerview,它有更多行项目。从某种意义上说Recyclerview包括第1行->>TextView,在那个下面还有一个textview第2行->>TextView,在那个下面还有一个textview问题是,每当我打开Talkback时,它会一次性读出整个Recyclerview,这不是预期的,它应该根据焦点项目一次读取一个项目。预期的行为是-当方向键移到焦点上时阅读焦点上的组件。有什么帮助吗?? 最佳答案 与ChrisCM的回答相反,您不应该设置...android:importantForAcc

android - 测试应用程序的可访问性(对讲)

我正在使我的应用程序符合可访问性要求。为此,通过在xml中提供android:contentDescription="yourstring"来为可访问性框架提供正确的数据。我还看到了关于使应用程序无障碍的Android开发者指南,其中概述了您需要采取哪些步骤来确保您的应用程序与无障碍服务一起正常工作。现在的问题是在每个屏幕上测试这些都需要更多时间。我的应用程序有30个屏幕,每次进入任何模块都需要将近15-20分钟,当回话打开时。谁能推荐工具/更好的方法来测试应用程序? 最佳答案 @unof是对的,您可以使用的一种工具是lint,它会