我的应用中有自定义的QuickAction菜单。我为ImageView添加了<strong> contentDescription “打开菜单”,打开了菜单。所以我的TalkBack(形成辅助功能设置)宣布相同。
弹出菜单有setOutsideTouchable(true)
在外面触摸时将其解除。当TalkBack开启时,用户必须双击才能将其解除,但Android不会宣布任何此类消息。理想情况下,它应该宣布“双击以解雇......”。
我怎样才能做到这一点?
另外,我想在菜单被驳回时宣布。我尝试在内部发送AccessibilityEvent:
QuickAction.setOnDismissListener(new myQuickAction.OnDismissListener() {
@Override
public void onDismiss() {
// tried sending event here
}
添加了参考图像以进行详细说明。点击按钮蓝色弹出窗口是QuickAction弹出窗口。现在我想在用户点击白色区域的任何地方(黑点)时宣布“关闭菜单”。白色区域实际上是我的LinearLayout包含页眉,页脚等(图中未显示)。我尝试添加contentDescription,importantForAccessibility for layout,但无济于事。
答案 0 :(得分:1)
我会添加一个小“X”框,或者如果你不想搞砸你的UI,让你的布局容器可以聚焦,并添加内容描述“Double Tap to Dismiss”。 (注意:双击是一个对讲手势,不要添加,只是从你的问题复制。)
编辑:基本上,我推荐的不是在视图中添加“X”按钮,而是允许布局视图作为“X”按钮本身。通过向布局添加contentDescription,您可以使其可聚焦,即使典型用户不会与此视图交互,也没有任何东西阻止TalkBack用户这样做。因此,您不会直观地更改布局,但仍然具有单独关闭按钮的可访问性优势,即使从技术上讲这不是必需的,因为用户应该了解如何在没有它的情况下关闭模式。
我不相信宣布被解雇是必要的。在打开模态之前将焦点移回到聚焦的元素是典型的方法。双击后会发生这种情况,并且TalkBack用户会知道菜单被解雇,因为他们回到了主视图中,打开了模态的元素。
旁注:确保您的QuickAction表现为模态!