2015-03-13 89 views
0

我的應用程序中有一個自定義的QuickAction菜單。我添加了contentDescription打開菜單的ImageView的「打開菜單」。所以我的TalkBack(形成輔助功能設置)宣佈相同。
彈出菜單有setOutsideTouchable(true)在外面觸摸時將其解除。當「話語提示」處於「啓用」狀態時,用戶必須雙擊才能解除該提示,但Android不會宣佈任何此類消息。理想情況下,它應該宣佈「雙擊解散...」。
我該如何做到這一點?

另外,我想宣佈菜單何時被解僱。我已經嘗試發送AccessibilityEvent裏面:
QuickAction.setOnDismissListener(new myQuickAction.OnDismissListener() { @Override public void onDismiss() { // tried sending event here }

添加參考圖像來詳細解釋。點擊按鈕藍色彈出窗口是QuickAction彈出窗口。現在,當用戶點擊白色區域的任何地方(黑點)時,我想宣佈「關閉菜單」。白色區域實際上是我的LinearLayout,包含頁眉,頁腳等(圖像中未顯示)。我嘗試添加contentDescription,importantForAccessibility的佈局,但無濟於事。

Reference Image宣佈使用TalkBack解除QuickAction窗口

+2

您不應該手動宣佈被解僱的窗口。讓話語提示處理該問題。如果沒有公告,則不應該有公告。另外,不需要添加解僱的動作。使用後退按鈕(或後退的話語提示手勢快捷鍵)應關閉彈出窗口。 – alanv 2015-03-24 22:01:43

回答

1

我想補充或者是小「X」框,或者如果你不想弄糟你的用戶界面,使您的佈局容器可聚焦,並添加內容描述「槍王解僱」。 (注:雙擊是一個對講手勢,不要添加這個,只是複製你的問題。)

編輯:本質上,我推薦的是,而不是添加到視圖的「X」按鈕,允許佈局視圖本身充當「X」按鈕。通過將內容描述添加到佈局中,即使典型用戶不會與此視圖交互,您也可以將其聚焦,但TalkBack用戶無法執行此操作。因此,您不要直觀地更改佈局,但仍然具有單獨關閉按鈕的可訪問性優勢,即使技術上來說這不是必需的,因爲用戶應該瞭解如何在沒有它的情況下關閉模式。

我不認爲宣佈它已被解僱是必要的。典型的方法是將焦點移回到打開模式之前聚焦的元素。發生這種情況後,您的雙擊,TalkBack用戶將知道菜單已被解僱,因爲他們回到主視圖,打開模式的元素。

旁註:確保您的QuickAction表現爲模態!

+0

我不想添加不可見的「X」框。我試圖讓佈局可調焦,並添加contentDescription,但無濟於事。 QuickAction行爲是默認的(它使用了一個PopupWindow),當點擊我的佈局中的視圖時,它會彈出。我已經使用https://github.com/lorensiuswlt/NewQuickAction。當我在QuickAction彈出窗口外面觸摸時,你能告訴我哪個佈局/視圖獲得點擊嗎?如果我可以知道這些信息,那麼我可以爲該視圖/佈局設置contentDescription。 – 2015-03-24 09:10:04

+0

您應該可以將內容描述添加到「@ + id/tracks」,並確保importantForAccessibility設置爲yes,而不是no或auto。 http://androidsbs.blogspot.com/2013/11/androidimportantforaccessibility.html – ChrisCM 2015-03-24 13:29:32

+1

這是一個合理的解決方案,但請不要在內容描述中包含交互模型(例如「雙擊」)。話語提示自行添加,您提供的任何靜態交互模型對於盲文或交換機訪問都沒有意義。 – alanv 2015-03-24 21:59:57