summaryrefslogtreecommitdiffstats
path: root/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2013-01-29 01:04:35 -0800
committerSvetoslav <svetoslavganov@google.com>2013-01-29 13:56:22 -0800
commit3822896e226567c6cd3ef84518d318abd33a7624 (patch)
tree6e755134d69f6b6ecac12d0ee949124e42ed43a3 /core/java/android/accessibilityservice/AccessibilityServiceInfo.java
parent8c47e856b067057b5fcbb6eccfc79d1da4cff8f1 (diff)
downloadframeworks_base-3822896e226567c6cd3ef84518d318abd33a7624.zip
frameworks_base-3822896e226567c6cd3ef84518d318abd33a7624.tar.gz
frameworks_base-3822896e226567c6cd3ef84518d318abd33a7624.tar.bz2
Remove "enhance web scripts" from settings and make it requested by plug-ins.
Currently we have an "enhance web accessibility" setting that has to be enabled to make sure web content is accessible. We added the setting to get user consent because we are injecting JavaScript-based screen-reader pulled from the Google infrastructure. However, many users do not know that and (as expected) do not read the user documentation, resulting in critique for lacking accessibility support in WebViews with JavaScript enabled (Browser, Gmail, etc). To smoothen the user experience now "enhance web accessibility" is a feature an accessibility plug-in can request, similarly to explore by touch. Now a user does not need to know that she has to explicitly enable the setting and web accessibility will work out-of-the-box. Before we were showing a dialog when a plug-in tries to put the device in a touch exploration mode. However, now that we have one more feature a plug-in can request, showing two dialogs (assume a plug-in wants both features) will mean that a user should potentially deal with three dialogs, one for enabling the service, and one for each feature. We could merge the dialogs but still the user has to poke two dialogs. It seems that the permission mechanism is a perfect fit for getting user permission for an app to do something, in this case to enable an accessibility feature. We need a separate permission for explore by touch and enhance web accessibility since the former changes the interaction model and the latter injects JavaScript in web pages. It is critical to get user consent for the script injection part so we need a well-documented permission rather a vague umbrella permission for poking accessibility features. To allow better grouping of the accessibility permissions this patch adds a permission group as well. bug:8089372 Change-Id: Ic125514c34f191aea0416a469e4b3481ab3200b9
Diffstat (limited to 'core/java/android/accessibilityservice/AccessibilityServiceInfo.java')
-rw-r--r--core/java/android/accessibilityservice/AccessibilityServiceInfo.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
index 2006bc7..2dc0501 100644
--- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
+++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
@@ -153,13 +153,25 @@ public class AccessibilityServiceInfo implements Parcelable {
public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE= 0x0000004;
/**
+ * This flag requests from the system to enable web accessibility enhancing
+ * extensions. Such extensions aim to provide improved accessibility support
+ * for content presented in a {@link android.webkit.WebView}. An example of such
+ * an extension is injecting JavaScript from Google. The system will enable
+ * enhanced web accessibility if there is at least one accessibility service
+ * that has this flag set. Hence, clearing this flag does not guarantee that the
+ * device will not have enhanced web accessibility enabled since there may be
+ * another enabled service that requested it.
+ */
+ public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 0x00000008;
+
+ /**
* This flag requests that the {@link AccessibilityNodeInfo}s obtained
* by an {@link AccessibilityService} contain the id of the source view.
* The source view id will be a fully qualified resource name of the
* form "package:id/name", for example "foo.bar:id/my_list", and it is
* useful for UI test automation. This flag is not set by default.
*/
- public static final int FLAG_REPORT_VIEW_IDS = 0x00000008;
+ public static final int FLAG_REPORT_VIEW_IDS = 0x00000010;
/**
* The event types an {@link AccessibilityService} is interested in.