summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Phil Weaver <pweaver@google.com> 2018-04-24 17:09:26 -0700
committer Phil Weaver <pweaver@google.com> 2018-04-25 17:25:25 -0700
commit568cf662da579a66081f97150a562998b18a2d06 (patch)
tree6e5fa7d397f4b8e8b8dabd916a48c4fd55073d74
parent2897fd315d3899a3fced8187cb5acd48c1f07b63 (diff)
Expose a11y overlay window titles to a11y services
Bug: 78463085 Test: Adding CTS test: atest AccessibilityOverlayTest Change-Id: I9b8ec7368b6684018a43c8bca07fd1eac5969a4e
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 6c2821d9d740..2616d1dd858c 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -3865,9 +3865,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
windowInfo.title = mAttrs.accessibilityTitle;
// Panel windows have no public way to set the a11y title directly. Use the
// regular title as a fallback.
- if (TextUtils.isEmpty(windowInfo.title)
- && (mAttrs.type >= WindowManager.LayoutParams.FIRST_SUB_WINDOW)
- && (mAttrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW)) {
+ final boolean isPanelWindow = (mAttrs.type >= WindowManager.LayoutParams.FIRST_SUB_WINDOW)
+ && (mAttrs.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW);
+ // Accessibility overlays should have titles that work for accessibility, and can't set
+ // the a11y title themselves.
+ final boolean isAccessibilityOverlay =
+ windowInfo.type == WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
+ if (TextUtils.isEmpty(windowInfo.title) && (isPanelWindow || isAccessibilityOverlay)) {
windowInfo.title = mAttrs.getTitle();
}
windowInfo.accessibilityIdOfAnchor = mAttrs.accessibilityIdOfAnchor;