diff --git a/quickstep/res/layout/taskbar_edu_tooltip.xml b/quickstep/res/layout/taskbar_edu_tooltip.xml
index 29f49566f6..3fcd713147 100644
--- a/quickstep/res/layout/taskbar_edu_tooltip.xml
+++ b/quickstep/res/layout/taskbar_edu_tooltip.xml
@@ -21,6 +21,8 @@
android:clipChildren="false"
android:clipToPadding="false"
android:fitsSystemWindows="true"
+ android:focusable="true"
+ android:importantForAccessibility="yes"
android:gravity="center"
android:orientation="vertical">
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt
index bc582e2b65..e56e258d12 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt
@@ -17,10 +17,13 @@ package com.android.launcher3.taskbar
import android.graphics.PorterDuff.Mode.SRC_ATOP
import android.graphics.PorterDuffColorFilter
+import android.os.Bundle
import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
+import android.view.accessibility.AccessibilityNodeInfo
import androidx.annotation.IntDef
import androidx.annotation.LayoutRes
import com.airbnb.lottie.LottieAnimationView
@@ -153,6 +156,7 @@ class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) :
FLAG_AUTOHIDE_SUSPEND_EDU_OPEN,
true
)
+
tooltip.onCloseCallback = {
this.tooltip = null
controllers.taskbarAutohideSuspendController.updateFlag(
@@ -161,11 +165,47 @@ class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) :
)
controllers.taskbarStashController.updateAndAnimateTransientTaskbar(true)
}
+ tooltip.accessibilityDelegate = createAccessibilityDelegate()
overlayContext.layoutInflater.inflate(contentResId, tooltip.content, true)
this.tooltip = tooltip
}
+ private fun createAccessibilityDelegate() =
+ object : View.AccessibilityDelegate() {
+ override fun performAccessibilityAction(
+ host: View?,
+ action: Int,
+ args: Bundle?
+ ): Boolean {
+ if (action == R.id.close) {
+ hide()
+ return true
+ }
+ return super.performAccessibilityAction(host, action, args)
+ }
+
+ override fun onPopulateAccessibilityEvent(host: View?, event: AccessibilityEvent?) {
+ super.onPopulateAccessibilityEvent(host, event)
+ if (event?.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
+ event.text?.add(host?.context?.getText(R.string.taskbar_edu_a11y_title))
+ }
+ }
+
+ override fun onInitializeAccessibilityNodeInfo(
+ host: View?,
+ info: AccessibilityNodeInfo?
+ ) {
+ super.onInitializeAccessibilityNodeInfo(host, info)
+ info?.addAction(
+ AccessibilityNodeInfo.AccessibilityAction(
+ R.id.close,
+ host?.context?.getText(R.string.taskbar_edu_close)
+ )
+ )
+ }
+ }
+
override fun dumpLogs(prefix: String?, pw: PrintWriter?) {
pw?.println(prefix + "TaskbarEduTooltipController:")
pw?.println("$prefix\tisTooltipEnabled=$isTooltipEnabled")
diff --git a/res/values/id.xml b/res/values/id.xml
index dc819443a6..7b812de71e 100644
--- a/res/values/id.xml
+++ b/res/values/id.xml
@@ -28,6 +28,7 @@
+
@@ -41,4 +42,5 @@
+