2017-04-18 70 views
1

我正在爲視障人士開發安卓照片應用程序。關於Android輔助功能Talkback。有沒有對講焦點聽衆?

當然,我的應用程序正在Talkback上下文中運行。 在Talkback上下文中,當按鈕被聚焦時,系統讀取按鈕的文本。 the green box represents the focused content

我想要做的是播放音頻文件,當按鈕被聚焦而不是按鈕的文本標籤。 但是,我找不到任何偵聽器檢測到按鈕的焦點狀態。 有沒有辦法做到這一點?

回答

1

免責聲明:發生在焦點上的事件可能是每WCAG 2.0 - 3.2.1的主要輔助功能違規。我鼓勵你重新考慮你的設計/做廣泛的用戶研究,以確保你最終做的不僅僅是創造令人沮喪的用戶體驗。不僅如此,還記得TalkBack不是唯一的輔助技術,它讓我感到這種機制對於使用Switch Access的用戶來說可能令人難以置信地令人沮喪,並且對於盲文用戶可能完全破壞。

話雖這麼說,這是你將如何完成這一行爲:

你想看看我相信你應該尋找代碼看起來像這樣在View.AccessibilityDelegate

提供的回調:

void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) { 
    if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) { 
     //do stuff here 
    } 
} 

將此附加到接收焦點的視圖,或者根據您使用的回調,您可以將其附加到包含一系列控件的佈局。

現在,我說「類似這樣的事情」,因爲有很多不同的可訪問性委託回調,事件前觸發,事件發射後觸發,事件允許您調整事件,因爲它被填充到視圖層次結構中,等等。您選擇哪種回調取決於您何時想要發生這種情況,以及您可能需要調整的關於正在觸發的AccessibilityEvent的事情的性質。

+0

實際上,我無法理解如何將此代碼應用於我的項目。 你的意思是我必須將此代碼附加到我的活動課程中? 那我怎麼知道哪個按鈕被點擊? 簡單地說,就是我想做的事: 當Button1的聚焦 - >播放A.mp3文件 當BUTTON2集中 - >玩B.mp3文件 (?有沒有完整的代碼示例) –

+0

點擊 - >關注在之前的評論 –

+0

謝謝我做到了。我將Accessibility委託設置爲按鈕! –