问题标签 [talkback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1046 浏览

android - 绕过 Android TalkBack 的 Android 无障碍服务

我已经为我的应用程序编写了自己AccessibilityService的。在内部,它用于TextToSpeech为浏览我的应用程序的用户提供语音反馈。当两者TalkBackMyAccessibilityService打开时,我会收到来自我的应用程序的语音反馈,然后是 TalkBack 的反馈。

有什么方法可以阻止我的应用程序的 TalkBack,因为我拥有我的应用程序的无障碍服务?

0 投票
1 回答
5507 浏览

android - 在 Talkback 中说出所选语言 - Android

我在我的应用程序中添加了对讲功能。

它的工作很好。对讲功能以英语运行。

我的问题是,当我更改设备语言设置时,我的应用程序仍然只能以英语运行。但是当我检查其他应用程序时,回复正在以选定的语言工作。

如何使用对讲在我的应用程序中说出所选语言。

0 投票
2 回答
2529 浏览

android - How to avoid TalkBack from reading dismissed fragment

I'm developing a simple app that is structured in Activities and Fragments, one of the requirements its to make it accessible so I did all the content decriptions, navigaction, focus, etc.

And it works great, except with fragments, if there is an activity that loads a fragment the talkback reads its content, then the user clicks on something and a detail fragment that could be added on top of the stack.

If the user keeps navigating talkback still remember the position of each element of the missing fragment.

Is there any way to clear the Accessibility list of events and force it to get it again? Accesibility manager does not seem to have any method for that.

-- EDITED -- Things that I've tried and did not work out.

Sending an event from the view creation in the fragment.

Interrupting all the pending texts on the onResume of the fragment.

Requesting the decorator view to register an event of window_content_change or window_state_change.

-- EDITED -- Made a DumpView Hierarchy and in there is no trace of the dismissed fragment, but talkback stills navigates it :(

Thanks, I hope someone can throw some light on this issue :)

Regards.

0 投票
1 回答
1797 浏览

android - KitKat 中的 Android WebView 可访问性

我在让 TalkBack 使用 Web 视图时遇到了一些问题(在 Android 4.4.2 上使用 Nexus 5 进行测试)。我读到,通过检查标题为“增强 Web 可访问性”的首选项,在 Android JellyBean 发布期间将 TalkBack 支持添加到 Web 视图中。我一生都无法在系统设置中找到此首选项。

在我们的应用程序中关注 web 视图只是读取“WebView”并且不提供其他选项。我已经确定并调用getSettings().setJavaScriptEnabled(true);了网络视图。

KitKat 中是否删除了对 Web 视图的 TalkBack 支持?如果没有,我在这里错过了什么?

0 投票
0 回答
326 浏览

android - 尽管有 TalkBack/屏幕阅读器,但仍可完全触摸访问

前言

TalkBack 是一种适用于 Android 的辅助功能服务,可帮助盲人和视障用户与其设备进行交互。它是一个屏幕阅读器,可以读取每个用户界面元素。

这是伟大的视障人士可以使用这么多没有特别适应的不同应用程序。但它不适用于所有类型的应用程序。我想使用一个小部件,尽管 TalkBack 处于活动状态,但它可以处理所有触摸事件。

VoiceOver 是 IOS 中 TalkBack 的补充。这是我在IOS中的问题的解决方案。 虚拟乐器 iPhone 应用程序中的旁白辅助功能?

问题

我在我的 IOS 应用程序中实现了这个解决方案,它运行良好。Android/TalkBack 有什么等价物吗?

[ mySubView setAccessibilityTraits: UIAccessibilityTraitAllowsDirectInteraction ];

直接通过触摸播放声音的应用程序应该能够在 TalkBack 开启的情况下使用。乐器应用程序、几个游戏和像我这样的应用程序,可以通过 3D 声音发现房间,应该在启用 TalkBack 的情况下工作。关闭 TalkBack不适合盲人。这就像为了看人而转动屏幕。

如果你觉得应该有这样的功能,请点赞。

0 投票
1 回答
581 浏览

android - Android KitKat 4.4 TalkBack 视图刷新问题

我在 Android 4.4.2 (KitKat) 设备上运行我的应用程序。我的应用程序有一个 ListView。当我将最后一项添加到列表视图时,它会显示一些内容,大约 5 秒后,它会发生变化(将不同的视图加载到该特定列表项)。

TalkBack 开启时 -

如果在那 5 秒的窗口中,我单击最后一项 - TalkBack 会标记它、读取它,并且不会让视图发生变化。

我在以前的 Android 版本上没有这个问题。

有谁知道为什么会这样?如果我可以覆盖这种行为?

谢谢!

0 投票
1 回答
760 浏览

java - 当我在 Android 中的按钮子类上设置内容描述符时,TalkBack 上会附加“按钮”一词

我试图让 Talkback 读回按钮子类上的内容描述符。选择按钮子类后,Talkback 会在最后为我提供内容描述符以及“按钮”一词。如何防止附加额外的单词?

注意:我做了一些文档阅读,并注意到 dispathPopulateAccessibilityEvent() 提到获取一个 AccessibilityEvent 填充/访问充当事件触发器的视图的子项。这是否意味着事件总是触及视图层次结构?如果是这样,添加文本的是按钮超类吗?

0 投票
1 回答
6878 浏览

android - Android:如何强制Explore-By-Touch/Talkback重复AccessibilityFocus中当前View的ContentDescription?

在我的 Android 应用程序中,我有一个View显示图像并具有关联的ContentDescription.

我可以启用Settings->Accessibility->Talkback,在 Talkback 设置中使用Explore By Touch,然后单击 View 以ContentDescription大声朗读。

到目前为止,这一切都符合预期。

但是,如果我再次单击相同的内容,我希望通过触摸进行探索。例如,我的图像和描述可能会在它有 时更新,所以说新短语对用户会有帮助。我怎样才能做到这一点?ContentDescriptionViewAccessibilityFocus

我尝试过使用View.clearFocus()and View.invalidate(),但没有成功。

欢迎任何建设性的想法。

更新

我还应该提到我想从 API 8 开始添加支持。因此,我正在尽我所能使用 API 4 的辅助功能接口。

我目前正在研究一种解决方案,用于View.clearFocus()解决View.requestFocus()更新视图问题。到目前为止,这似乎在我使用 API 8 和 16 的测试套件上有效。

我将再次更新最终结果,但欢迎在此期间提供进一步的建议。

0 投票
1 回答
1970 浏览

android - 使用 windowActionBarOverlay=true 时,无法让 ActionBar 首先获得可访问性焦点

我有一个应用程序使用<item name="android:windowActionBarOverlay">true</item>

出于某种原因,这会导致 ActionBar 位于辅助功能焦点列表的末尾,即使它首先出现在页面上,并且似乎具有更高的“z-index”(它绘制在 TextView 的顶部)。

我创建了一个示例 testapp(见截图),当我让 TalkBack “从顶部读取”时,它以“Hello World,Hello World,Hello World,Hello World”而不是“Action Bar Order”开头。操作栏在顶部与 TextView 重叠的屏幕截图

测试项目是一个简单的 1 片段活动。我的 xml 文件如下,Activity 是来自 Android Studio 向导的样板。

activity_my.xml

fragment_my.xml

字符串.xml

谁能告诉我如何让 ActionBar 在这种情况下始终首先获得焦点?我尝试添加 marginTop 以查看是否有帮助,使 TextView 实际上出现在屏幕上的位置比 ActionBar 低,但这也无济于事。

0 投票
2 回答
3342 浏览

android - Android:扩展 SeekBar 时如何从 AccessibilityEvents 中消除语音文本?

我的 Android 应用程序包含一个自定义滑块控件,该控件基于SeekBar,我想将自定义文本短语附加到我的控件以解释其用于辅助功能的用途。

我已经使用 成功完成了此操作View.setContentDescription(text),并且当我请求关注我的滑块控件时,TalkBack 正确地说出该短语Activity.onCreate.

到目前为止,一切都很好。但是,当我触摸控件时,我相信它在我的 Android API 16 测试设备上设置了 AccessibilityFocus,额外的单词被添加到口语短语中,即'...seek control。0%”。我想删除这些额外的词。

我试图event.getText().clear()View.onInitializeAccessibilityEvent(event)没有成功的情况下消除它们。将事件回显到 LogCat 会报告正确的短语 inevent.contentDescription并且没有条目event.text,但是额外的单词会出现在设备硬件的音频输出中以及Menu->Settings->Accessibility->TalkBack-显示的屏幕调试文本中>设置->开发者设置->显示语音输出

请任何人都可以建议在哪里添加额外的单词,以及如何消除它们?

任何建设性的建议都将受到欢迎。谢谢。

更新

我可以看到我的自定义控件上的一些通过触摸探索(初始单击)事件没有通过它onInitializeAccessibilityEventdispatchPopulateAccessibilityEvent我故意调用的方法event.setContentDescription(null)。尽管如此,还是AccessibilityEvent使用我的自定义控件生成了一个,在代码ContentDescription中设置Activity.onCreate,加上我试图消除的额外单词。

我还在AccessibilityDelegate自定义控件的父级上设置了一个ViewGroup以显示其onRequestSendAccessibilityEvent调用。这确认没有包含 myContentDescription的事件通过。

这非常令人费解,并且在使用 API 16 的模拟器和真实硬件上都会发生。有什么想法吗?