我正在处理的应用程序有一个由对讲错误发出的名称.我可以通过更改拼写在应用程序中修复此问题.但是,如果我在清单中更改android:标签中的拼写,则会在手机上的应用程序图标上拼写错误.有没有人有办法解决这个问题?
我正在开发原生Android应用程序,它实现了最新的GoogleMap API(V2),我需要尽可能多地进行可访问性投诉.
我可以将contentDescription属性添加到mapView,它工作正常 - TalkBack识别它.
但是,当我将相同的属性添加到Marker或InfoWindow的布局时,TalkBack会忽略它.
似乎GoogleMap只是在内部将膨胀的布局呈现为位图,并在mapview的顶部显示此位图,忽略contentDescription属性.因此,当点击相应的图像时,TalkBack不会说任何内容.
任何人都有不同的经验或知识如何使用最新的Googlemap向InfoWindow或Marker添加contentDescription?
谢谢.
我有一个解锁屏幕,提示用户输入一个四位数的引脚.如果用户输入的引脚不正确,TextView
则会显示先前不可见的错误消息.此时,TalkBack可以大声读出错误消息的内容.
通过一些实验,我意识到我可以设置android:focusableInTouchMode="true"
视图并以编程方式调用View#requestFocus()
.这是第一次工作,但由于视图已经具有焦点,因此后续错误失败.通常,覆盖当前视图焦点似乎也是一个坏主意.
然后我尝试View#announceForAccessibility(java.lang.CharSequence)
在显示错误消息时调用.显然,如果视图当前不可见,此方法将无声地失败.没问题,否则它完美无缺.但是,它仅适用于API级别16+(Jelly Bean),它确实限制了它的实用性.由于TalkBack支持API级别7以上,因此必须有更好的解决方案.
我已经看过关于可访问性的2011和2012年Google I/O会议,但似乎都没有涵盖这个基本用例.最好的方法是什么?
编辑1: TLDR; 有没有办法强制 TalkBack在引入View#announceForAccessibility(java.lang.CharSequence)
Jelly Bean 之前大声读出一些文本?
处理长号码的首选方法是什么,例如银行帐号,应该一次读取一个字符?我知道用户可以通过这种方式让TalkBack读出一个数字,但如果我们能暗示它应该从一开始就这样做就会很好.
设置数字之间有空格的内容描述是一个好主意,还是用户会觉得这很烦人?
谢谢!
我有四个TextViews,我试图控制当用户使用TalkBack和触摸手势导航时获得焦点的顺序.
TextView android:text="foo" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_foo" android:nextFocusDown="@+id/id_baz"/>
TextView android:text="bar" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_bar" android:nextFocusDown="@+id/id_qux"/>
TextView android:text="baz" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_baz" android:nextFocusDown="@id/id_bar"/>
TextView android:text="qux" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_qux" android:nextFocusDown="@id/id_foo"/>
Run Code Online (Sandbox Code Playgroud)
当用户打开TalkBack时,触摸"foo",然后向下滑动以在TextView之间导航,我希望订单转到foo-> baz-> bar-> qux.但是,我尝试使用nextFocusDown设置的顺序似乎没有效果,而焦点顺序总是只跟随屏幕上TextView的位置.我已经尝试了clickable,focusable和focusableInTouchMode的所有可能组合.我试过在代码中的视图上调用setNextFocusDownId.我试过在TextViews上设置android:imeOptions ="actionNext".似乎没什么用.我错过了什么?
我正在为应用程序实现" Read Aloud
"或" Talkback
".一切都在使用contentDescription
文本,但是通过选项菜单,我发现没有任何相关内容contentDescription
,我希望系统读取"Menu "+ item's name
.
EX:我的菜单有2个项目:" 创建新文件夹 "和" 删除当前文件夹 ",目前,当我关注菜单项(支持轨迹球和蓝牙键)时,系统可以准确地说出菜单的文本.但我希望它更像" 1:菜单创建新文件夹 "和" 2:菜单删除当前文件夹 ".
那么,我该如何更改阅读文本?menu item
当蓝牙键盘UP/DOWN
按键时,如何获得专注?
我有一个自定义控件扩展SeekBar
,其中我已重写onInitializeAccessibilityNodeInfo
如下:
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(TextView.class.getName());
}
Run Code Online (Sandbox Code Playgroud)
然后我将内容描述设置为该控件的“我的控件”,但是当辅助功能焦点来到该控件时,对讲仍然会说“我的控件,%x百分比”。我不想让它说出进度,即“x%”。相反,我想覆盖对讲文本,这样它就不会宣布“x 百分比...”,而是宣布我设置的自定义文本,例如“选择的 x 值”。怎么做?
在某些设备(nexus)中,当我们点击列表视图中的第一项时,它将以列表项+“X 项列表中”的形式进行对讲。我们如何删除文本“在 X 项列表中”?
请分享您的想法
提前致谢
我有一个大的TextView
,它是大量的 HTML 文本,具体取决于所显示的内容。
尽管所有内容都在一个 中TextView
,但我希望视图中包含的段落是单独的 Talkback 项目。它们是带有<p>
标签的 HTML 格式
现在,它会立即读取所有内容
Lorem ipsum dolor sat amet,consectetur adipiscing elit。Etiam consequat,magna a ornare pharetra,diam arcu rhoncus elit,at consectetur arcu lectus nec nulla。
Ut hendrerit id ante ac lobortis。Morbi ante quam,malesuada eget lobortis vel,porttitor ac felis。Quisque diam purus,dignissim id eros ac,semper mollis elit。
Vivamus iaculis mollis suscipit。Vivamus vel posuere ipsum, et Accumsan lectus。Donectinciduntjustoorci,egetmolestiesemtemporsed。Duis quis lorem neque。
但我希望将其分解而不将文本分解为TextView
列表。
Lorem ipsum dolor sat amet,consectetur adipiscing elit。Etiam consequat,magna a …
我现在使用RecyclerView而不是ListView来构建一个旨在帮助盲人的Android应用程序.
问题是当我启动对讲功能时,读者逐个读取列表,我无法通过我的手势控制读者跳转到下一个或前一个项目.我能做的就是等待读者到达我需要的那个.我的测试手机是三星S4.
根据我同事的经验,对讲功能适用于普通ListView上的手势.
现在我只是想知道它是RecyclerView API中的一个错误吗?或者设置或代码有问题?
无论如何,我会继续测试它.
android ×10
talkback ×10
google-maps ×1
infowindow ×1
listview ×1
menuitem ×1
optionmenu ×1
seekbar ×1
textview ×1