Articles of 可访问性

在AccessibilityNodeInfo中设置文本

我正在开发一个Android辅助function服务。 我有一个AccessibilityNodeInfo表示一个EditText。 是否可以编辑包含的文本? 我尝试使用mynode.setText("aaa")但我得到IllegalStateException正如文档中所述http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html 有任何想法吗? 谢谢

如何使我的iOS / Android应用程序符合美国康复法案第508条?

是否有可能使iOS和Android应用程序符合美国康复法案第508条 ? 我有一个即将召开的会议,会提出这个问题。

使用“话语提示”时,如果TextView的内容发生更改,首选的方式是提醒用户?

我有一个解锁屏幕,提示用户input一个四位数的引脚。 如果用户input不正确的引脚,则会显示以前不可见的TextView并显示错误消息。 此时,“话语提示”将大声朗读错误消息的内容。 通过一些实验,我意识到我可以在视图上设置android:focusableInTouchMode="true" ,并以编程方式调用View#requestFocus() 。 这是第一次工作,但由于视图已经有了焦点,所以后来的错误失败了。 一般来说,重写当前的视图焦点似乎是一个糟糕的主意。 然后,当显示错误消息时,我尝试调用View#announceForAccessibility(java.lang.CharSequence) 。 显然,如果视图当前不可见,则此方法将静默失败 。 没问题,否则它完美的作品。 但是,它只能在API级别16+(Jelly Bean)中使用,这实际上限制了它的实用性。 由于话语提示支持API级别7+,因此必须有更好的解决scheme。 我已经观看了2011年和2012年的Google I / O会话,但都没有涉及这个基本的用例。 什么是最好的方法来做到这一点? 编辑1: TLDR; 在Jelly Bean中引入View#announceForAccessibility(java.lang.CharSequence)之前,有没有办法强制 TalkBack读取一些文本?

有没有一个标准的方法来暗示一个数字应该一次读一个字符?

处理长号码的首选方式是什么,比如银行账号,一次只能读一个字符? 我知道用户可以通过TalkBack以这种方式读出一个数字,但是如果我们能够暗示它应该从一开始就这样做的话,那将会很好。 用数字之间的空格来设置内容描述是个好主意,还是会让用户感到烦恼? 谢谢!

android内部和内存/处理器的限制?

我正在考虑为Android创build一个屏幕阅读器。 我的问题如下。 有多lessAndroid内部通过Java API公开? 我正在寻找诸如显示文本时的系统范围通知,正在启动的新应用程序的通知等。我宁愿不必修改内核源代码,只允许我的应用程序在开发人员手机上运行。 二,假设没有应用程序在运行,G1上剩下多less处理器和内存? 三,假设手机上的应用平均使用了多less处理器和内存? 更多信息 我知道,应用程序不应被devise为在特定的手机上工作。 我select了G1,因为它是目前运行Android的最stream行的手机,我知道。 我正在寻找低端系统的规格,我的程序将不得不适应,它可能运行在安装有Android的上网本很好,但用于大多数Android手机上运行的内存和处理器。 更新: 现在有两个使用Android 1.6的屏幕阅读器项目,可以在http://google-opensource.blogspot.com/2009/10/talkback-open-source-screenreader-for.html http:// spiel上find它们。 thewordnerd.info/

如何在Android中启动我的APP的辅助function设置页面?

我正在开发基于Accessibilityfunction的Android APP。 由于无法以编程方式在Android中Enable/Disable Accessibility服务(请参阅如何以编程方式在Android中启用/禁用辅助function服务 ),因此我通过以下代码指导用户进入Accessibility Settings页面(图1): public static boolean gotoAccessibilitySettings(Context context) { Intent settingsIntent = new Intent( Settings.ACTION_ACCESSIBILITY_SETTINGS); if (!(context instanceof Activity)) { settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } boolean isOk = true; try { context.startActivity(settingsIntent); } catch (ActivityNotFoundException e) { isOk = false; } return isOk; } 然后用户需要find我的APP的子设置标签,点击它,现在我的APP展示的Accessibility Settings页面(图2)。 我怀疑,如果有任何方式直接启动我的APP的Accessibility Settings页面(图2)?

一个Android应用程序能通过UI Automator控制另一个应用程序吗?

我正在尝试编写一个可以部署在目标设备上的Android应用程序/服务。 该应用程序可以用作钩子来远程控制目标设备。 从Jelly Bean发布开始,提供了可用的UI Automator实现,它提供了类似的function。 但是,似乎UI Automator只能通过ADB接口使用。 在设备上运行的应用程序不能直接使用UI Automator(???)。 我试图find一个解决scheme,可以在没有亚行的帮助下工作。 例如,钩子可以作为protobuf服务器在套接字上侦听。 客户端可以发送命令到钩子远程控制和设备。 我看了一下Andorid SDK的源代码。 它看起来像唯一的方法是使用android可访问性API。 我想知道有没有更好的办法?

如何添加contentDesctiption信息窗口或标记在Android的GoogleMaps V2 TalkBack

我正在开发实现最新的GoogleMap API(V2)的原生Android应用程序,并且我需要尽可能地使它成为无障碍投诉。 我可以将contentDescription属性添加到mapView,它工作正常 – TalkBack可以识别它。 但是,当我将相同的属性添加到Marker或InfoWindow的布局时,它仅被TalkBack忽略。 好像GoogleMap只是在内部将浮点布局呈现为位图,并在mapview顶部显示此位图,而忽略contentDescription属性。 因此,TalkBack在单击相应的图像时不会说任何内容。 任何人有不同的经验或知识如何添加contentDescription到InfoWindow或标记与最新的Googlemap? 谢谢。

Android AutoCompleteTextView onItemSelectedListener不是用蓝牙键盘触发的

我有一个简单的应用程序,只包含一个AutoCompleteTextView (代码如下)。 我有OnItemClickListener和OnItemSelectedListener定义。 点击下拉build议中的单个项目会触发onItemClick事件。 但是,使用蓝牙键盘,使用箭头键导航到给定的项目似乎不触发onItemSelected事件(日志不会看到此事件)。 什么触发这onItemSelected事件? 我的印象是,下拉菜单中的一个highlight就是它,但似乎并非如此。 如果OnItemSelectedListener不是突出显示的项目的正确事件侦听器,是否有满足此要求的事件? activity_main.xml中 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <AutoCompleteTextView android:id="@+id/autoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout> MainActivity.java public class MainActivity extends Activity { String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // An adapter object ArrayAdapter<String> […]

如何在Android中以编程方式打开/closures辅助function设置中的所有声音?

在Android 4.0+中,有一个选项“设置” – >“辅助function” – >转动所有声音。 如果我检查该选项,任何运行在android设备上的应用程序都不会产生任何声音。 我的应用程序必须发出警报声,所以如果有人检查了该选项,该应用程序不会发出任何声音。 所以,每次用户启动应用程序时,我都必须自动取消选中该选项。 通过代码,我该怎么做? 如果有人可以分享一段代码,这将是有帮助的。 我曾尝试AudioManager,但只有在启用移动audio时才有效。 amanger.setRingerMode(AudioManager.RINGER_MODE_NORMAL); amanger.setStreamMute(AudioManager.STREAM_MUSIC, false); amanger.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(amanger.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*(75.0/100.0)), 0);