2014-01-08 18 views
7

一般來說,我會查看Apple的UICatalog示例代碼以獲取基本的VoiceOver支持,但它看起來像示例代碼中的UIPickerViews支持VoiceOver。我是否需要在某處添加accessibilityLabel方法以添加VoiceOver支持?我試圖實現UIPickerViewAccessibilityDelegate方法,但voice over只讀取我的選取器視圖中的標籤,而不是上下滑動以更改值的提示。如何在運行僅iPhone應用程序(非通用)的iPad上的UIPickerView中支持VoiceOver?

此外,我的選擇器視圖設置爲UITextField的輸入視圖。所以我不確定這是否相關。

更新: https://github.com/stevemoser/VoiceOverPicker

我創建了一個示例項目演示該問題。在這個例子中,顯示了一個正常的選擇器視圖和一個文本框。還有一個選擇器設置爲文本框的輸入視圖屬性。我似乎無法通過在使用VoiceOver時點擊它來激活任一拾音器。雖然我可以通過在屏幕上瀏覽視圖(左側和右側)來激活任意一個。有任何想法嗎?

更新2: 看起來,如果應用程序是在iPhone或iPad應用程序在iPad上運行它工作正常,但如果是在iPad上運行的iPhone唯一的應用程序運行的iPhone應用程序,敲擊選擇一個UIPickerView不起作用。

+0

另外我不知道是否重要,我在iPad上測試這個iPhone應用程序。 –

+0

您的示例代碼適合我。在這兩種情況下,直接選擇選取器視圖(在點擊文本字段之後)或通過向左滑動(左右)即可。給它幾秒鐘來閱讀它。你還使用什麼操作系統版本?我已經在iPhone 4上測試了這個iOS 4 –

+0

@FerasArabiat我剛剛在運行iOS 7的iPhone 5S上運行它,它工作正常。看起來這只是在iPad上運行僅iPhone應用程序時的一個問題。 –

回答

2

你只是做一個香草UIPickerView使用標題爲每一行(而不是自定義視圖)?如果是這樣,那你就不需要做任何事情。

您提到VoiceOver正確讀取每行上的標籤,因此我們知道UIPickerView正確地將isAccessibilityElement設置爲YES。它也正確讀取accessibilityLabels。

在您有機會閱讀accessibilityHint之前,您是否有可能與選取器進行交互? (爲了其他人的利益,可訪問性提示是Steve在他的問題中提到的「用一根手指輕掃或調低價值」)。或者也許某些通知會在提示有機會閱讀之前更改VoiceOver焦點?

+0

我可以讓VoiceOver通過從左向右滑動瀏覽來激活選取器,但不能直接點擊選取器。我添加了一個示例項目。 https://github.com/stevemoser/VoiceOverPicker –

1

默認情況下,如果你的選擇器視圖是可訪問的,當你專注於它的VoiceOver會讀沿着這些路線的東西:

「[行標籤]可調[#NUMBER]出[#的總]選擇器項」一個2至 3秒暫停然後‘向上或向下滑動以選擇值’

幾的注意事項:

  1. 有一個2〜3秒的延遲在閱讀標籤和提示之間,確保您在等待它。
  2. 如果您提供自己的提示,默認的提示不會被讀取我相信
  3. 提示只有當您通過直接按下或通過向右或向左滑動到達某個控件時纔會被讀取。它會不是如果你做了2個手指向下或向上滑動,就可以閱讀。
  4. 確保您在實際設備上進行測試,而不是模擬器,因爲它不會顯示VoiceOver宣佈的所有內容。
相關問題