问题标签 [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 投票
2 回答
3464 浏览

android - 可访问性 Dialog/DialogFragment 读取文本而不是内容描述

我有一个对话框,只有很少的文本视图。对于每个文本视图,我都设置了不同的内容描述和文本。例如。

当我向用户显示对话框时,Talkback 会读取每个文本视图的文本(即文本编号 3)而不是内容描述(即 TV 3)。

但是,如果我将鼠标悬停在任何文本视图上,Talkback 会读取内容描述。

显示对话框时如何使其读取内容描述?

PS:我试图在布局中设置内容描述以及通过代码但没有运气

提前致谢。

0 投票
1 回答
1053 浏览

android - Android 对讲问题

通过在启用对讲时检查其行为,我正在使我的应用程序更“易于访问”。

我正在努力解决的问题:

  • 7.15pm 的时间被称为“晚上七点五分”
  • “pm”没问题,但“am”在“我是”中以“am”的形式出现
  • 当用于分隔单词时,破折号被说成减号

我怎样才能解决这个问题?

0 投票
1 回答
366 浏览

android - 如何在 DrawerLayer 上获取 Talkback 的矩形焦点?

在我的应用程序中,我使用 DrawerLayout 来显示相同​​的帮助信息。所以我把它放在实际活动上。现在我想添加 TalckBack 函数,我不能让 DrawerLayout 中的任何视图都获得黄色矩形(在对讲模式下标记焦点)。Drawerlayout 视图通过 inflantign 按需加载。

我尝试什么:

在xml中添加:

在代码中:

但仍然没有运气。那么如何在ImageButton的对讲模式下强制矩形标记呢?

0 投票
1 回答
7665 浏览

android - Android如何在显示RelativeLayout时让talkBack读取文本

我有一个活动,它使用以下代码将自定义视图添加到整个活动的视图中

为了显示教练标记/用户提示屏幕。

我的自定义视图从 RelativeLayout 扩展,并在其构造函数中在屏幕底部添加了一个按钮,单击该按钮会关闭视图。

我已经覆盖了“dispatchDraw”方法,这样我就可以将多个coachmark UI 对象(文本视图和位图)添加到特定位置的布局中。这些 coachmark 对象使用如下代码在视图上绘制自己

问题:启用 TalkBack 时

  • 当显示此教练标记视图时,该视图不会大声读出任何内容
  • 如果用户按下文本视图和位图所在的位置,则不会大声读出任何内容

然而,当用户按下按钮时,按钮的 contentDescription 会被大声读出。

我认为 textViews 和 Bitmaps 没有被读出的原因是由于我上面的代码在画布上呈现它们的方式。

问题 1:当点击 textview 和 bitmaps 时,有没有办法让 TalkBack 大声说出来?- 我尝试为 textviews 和 bitmaps 设置 contentDescriptions 和 focusable ,但这没有任何区别。

问题 2:另一种方法是让 TalkBack 在显示自定义视图时读出一些内容,并且此文本可以总结屏幕上显示的所有指导标记。我不知道该怎么做,有人有什么建议吗?- 我已经尝试将我的 customView 设置为可聚焦(setFocasable(true) 并给它一个 contentDescription,但这不起作用。 - 我尝试在绘制自定义视图时发起一个操作,然后向事件添加内容描述,但这也不起作用,即

0 投票
1 回答
273 浏览

android - TalkBack differences on Nexus 4.4.2 and Samsung 4.1.2 when reading screen contents

I am seeing a difference between what TalkBack reads out loud when a screen is displayed on a Nexus 7 (4.4.2) and a Samsung SGH-I317 (4.1.2).

  • On Samsung SGH-I317 (4.1.2) when a screen is displayed some elements are read out loud but not all of the elements displaued.
  • On the Nexus 7 (4.4.2) TalkBack reads only those elements that are specifically
    selected/tapped.

Is this a Samsung/Nexus difference or an Android 4.1.2/4.4.2 difference?

What is the expected behaviour when a screen is displayed, should TalkBack read all the elements on the screen or just read what screen is displayed and leave it to users to touch a UI element before it is read out?

0 投票
1 回答
1051 浏览

android - Android:打开辅助功能时覆盖视图旋转

我陷入了以下问题,需要您的帮助来解决它。任何指导将不胜感激。

场景:我在表面视图之上有一个覆盖视图,这个覆盖视图有几个图像和一个按钮。我已在此活动的清单文件中将“方向”标志设置为“横向”,并编写了一个方向侦听器来识别横向左侧和横向右侧方向。

问题:当我打开辅助功能模式并将内容描述正确设置为小部件时,在初始模式(无论是横向还是横向)下,当我按下任何图像时,我都能正确听到辅助功能对讲。当我将设备方向从左向右旋转时会出现问题,反之亦然,即使覆盖视图旋转正确,辅助功能控件也不会旋转。当我在“辅助功能”仍然打开的情况下以新方向触摸图标时,我没有听到 TalkBalk 文本。当我触摸在上一个方向模式下绘制的叠加层上的图像位置时,我会听到对讲文本。

看起来显示器/视图上的辅助功能区域已锁定,并且在从左到右旋转屏幕方向时不会随着覆盖视图的旋转而旋转。

知道为什么会发生这种情况以及纠正它的方法吗?是唯一打开销毁活动并再次创建它的吗?我不能破坏表面视图,因为它会影响用户体验。如何旋转与图像关联的辅助功能 TalkBack 文本以及屏幕旋转?

在这个问题上花了几天时间。通过旋转它尝试了视图旋转,但这不是问题,因为视图已经在旋转。请帮忙。

非常感谢您提前提供的帮助。

0 投票
1 回答
1173 浏览

android - 单击微调器时,它会在显示下拉视图时显示“显示 2 个项目”。如何为微调器覆盖此对讲?

当我实现 Spinner 来创建下拉视图时,第一个元素始终显示在主视图和下拉列表中。所以我通过覆盖 getDropdrownView() 来隐藏它。但对讲出现问题。

问题是:当我单击微调器时,它会打开下拉视图并显示“显示 2 个项目”,即使那里存在 1 个项目。我想通过提供 onclickListener将读出的文本覆盖为“显示 1 个项目”。但微调器不支持点击事件。

我尝试了 ontouchListener、onkeyListener 但没有什么可以覆盖文本“显示 2 个项目”。 setContentDescription也不起作用。我尝试了以下方法,但也没有用:

请帮帮我..我们发现关于对讲的论坛讨论非常少。

0 投票
1 回答
2789 浏览

android-linearlayout - 对讲专注于android中的线性布局

我在警报对话框内有一个线性布局以及其他视图。我已经设置了该线性布局的内容描述。仍然对讲焦点没有出现在它上面。但是当加载警报对话框时,它会读出其中所有视图的内容描述,包括这个线性布局。如何单独设置对讲可聚焦的线性布局?

0 投票
1 回答
406 浏览

android - 当为 MultiAutoCompleteTextView 选择一个值时,如何设置将要朗读的文本

我有一个从 "MultiAutoCompleteTextView" 扩展的自定义视图。当用户开始在 CustomTextView 中输入时,弹出窗口将显示建议值。在选择这些值之一时,CustomTextView 将填充所选值。

可以选择的值有 ID 和名称。默认情况下,当用户从列表中选择一个值并且 CustomTextView 填充了该选定值时,TalkBack 会以一种奇怪的方式读出选定项的 ID。

它读到

"(itemID as a whole word) 替换 syn (itemId as individual charachers) comma space"

例如,如果 id 是 apple 它读取

“apple 替换了 syn apple 逗号空间”

我希望它只读出名称而不是 ID。

阅读可访问性文档以添加可访问性的自定义视图(http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views)我尝试覆盖不同的 API 并设置事件文本,但是一旦我对事件文本做任何事情,就什么都不会被读出。

我只需要支持 API 15 及更高版本,所以在我的 CustomTextView 中我添加了代码

我可以在我的调试系统输出中看到事件文本正在从 id 更新为“测试”

因此我不明白为什么没有大声读出字符串“Test”?有任何想法吗?

注意:如果我添加以下代码,则当触摸 CustomTextView 时,会正确读出“Touched on CustomTextView”。但是,覆盖此方法对于首次从建议中选择项目并填充 CustomTextView 没有任何影响。

0 投票
2 回答
4915 浏览

android - Android 可访问性:如何更改为 EditText 视图大声朗读的文本

默认情况下,辅助功能服务将为 EditText 视图读出以下内容

  • 如果 EditText 输入了一个值 = 它将读出该值
  • 如果没有输入值=它将读出“提示”

我希望它在两种情况下都能读出完全不同的东西。

我的 xml 片段是

我必须支持 API 14 及更高版本。

我不想为这一个案例麻烦扩展 EditText,因此我使用的是 AccessibilityDelegate。

从文档中我了解到,在我的委托中,我只需要覆盖我想要更改行为的委托中的那些方法。所有其他方法将默认为 View 的实现。

http://developer.android.com/reference/android/view/View.AccessibilityDelegate.html http://developer.android.com/reference/android/view/View.html

“onPopulateAccessibilityEvent”的文档说:“让主机视图有机会使用其文本内容填充可访问性事件。 ”“dispatchPopulateAccessibilityEvent”的文档说:“首先将 AccessibilityEvent 分配给主机视图,然后再分配给它的子视图将他们的文本内容添加到事件中。 ”并且默认行为是为视图本身调用“onPopulateAccessibilityEvent”,然后在其所有子项上调用“dispatchPopulateAccessibilityEvent”

http://developer.android.com/guide/topics/ui/accessibility/apps.html

该文档在“onPopulateAccessibilityEvent”下说“*如果您对此事件的实现完全覆盖了输出文本,而不允许布局的其他部分修改其内容,则不要在您的代码中调用此方法的超级实现。”

因此,我的代表如下

为什么当我使用键盘导航或使用屏幕点击 EditText 视图时,它仍在阅读“我的提示文本”而不​​是“Apples”?

如果我使用调试器,我会看到在设置事件文本之前,文本是空的,设置之后,它是“Apples”,但 TalkBack 仍会读出提示。


奇怪的是,如果我覆盖“onInitializeAccessibilityNodeInfo”并使用我想要的文本发送一个事件,那么这个想要的文本就会被读出(参见下面的代码片段)。但这对我来说似乎是错误的,因为“onInitializeAccessibilityNodeInfo”正在对 EditText 的事件做出反应,但随后只是引发了一个新事件。