我正在使我的iPhone應用程序可訪問。 VoiceOver令人印象深刻。當用戶使用VoiceOver時,會自動讀取屏幕上的項目,並允許用戶雙擊屏幕上的任意位置以選擇該項目。不過,我希望VoiceOver以特定順序讀取項目,但始終以UINavigationBar項目(包括後退按鈕)開頭。我不希望這些項目而不是被讀取,我只想從一個特定的項目開始。是否有VoiceOver等效的「firstResponder」?以編程方式確定UIView項目應由VoiceOver讀取的順序
9
A
回答
0
在某些情況下,在一個項目上設置UIAccessibilityTraitSummaryElement可以做到這一點。 (我的比賽顯得過於動態此幫助很大。)
6
是
有一個名爲UIAccessibilityContainer
由NSObject的實施方案。它可以讓您通過以下三種方法來定製容器行爲:
accessibilityElementCount
accessibilityElementAtIndex:
indexOfAccessibilityElement:
如果你有,你想控制的無障礙順序的主視圖元素,你只需要實現這三個方法並返回合適的視圖/索引。還有一件事是容器視圖本身不能作爲輔助元素,所以你應該覆蓋isAccessibilityElement:
並返回NO
;
- (BOOL)isAccessibilityElement {
return NO;
}
示例實現
我建議你要麼在你希望它們出現或使用tag
財產,如果你不使用它的任何訂單的所有意見的數組其他。該協議的實施變得非常簡單。
數組元素
我假設你有一個數組稱爲accessibleElements
存儲在正確的順序元素。
- (NSInteger)accessibilityElementCount {
return self.accessibleElements.count;
}
- (id)accessibilityElementAtIndex:(NSInteger)index {
return self.accessibleElements[index];
}
- (NSInteger)indexOfAccessibilityElement:(id)element {
return [self.accessibleElements indexOfObject:element];
}
標籤元素
我假設你的子視圖是從0開始連續標記達子視圖的數量。
- (NSInteger)accessibilityElementCount {
return self.subviews.count;
}
- (id)accessibilityElementAtIndex:(NSInteger)index {
// Not that self should have a tag<0 or tag>count otherwise it will
// return itself for that tag instead of the element you want it to.
return [self viewWithTag:index];
}
- (NSInteger)indexOfAccessibilityElement:(id)element {
return ((UIView *)element).tag;
}
相關問題
- 1. 以編程方式讀取用戶定義的項目宏
- 2. VoiceOver不讀UIView
- 3. 從plist中以正確的順序讀取項目的範圍
- 4. 以編程方式讀取logcat以獲得應用程序
- 5. 以編程方式獲取由hook_menu定義的菜單項?
- 6. 以編程方式確定項目分支的TFS 2010
- 7. 以編程方式確定UIView的最大可用幀大小
- 8. 以編程方式讀取iOS應用程序.crash文件?
- 9. 以編程方式綁定項目源程序
- 10. 如何以編程方式確定Word應用程序凍結
- 11. 以編程方式MFC Tab鍵順序
- 12. 以編程方式編譯Android項目
- 13. 如何重新排序VoiceOver讀取UIAccessibilityElements的方式?
- 14. 在Delphi中以編程方式設置選項卡順序
- 15. 以編程方式讀取Hadoop Mapreduce程序的輸出
- 16. 如何以編程方式編輯選定的子項目?
- 17. 以編程方式更改TabBar順序目標C
- 18. 如何以編程方式確定支持的應用程序方向?
- 19. 以編程方式讀取DMQ
- 20. 以編程方式讀取網頁
- 21. 以編程方式讀取Manifest文件?
- 22. 以編程方式讀取Internet Explorer cookies
- 23. 以編程方式讀取.resx文件
- 24. 如何在應用程序項目中以編程方式創建目錄?
- 25. Winforms listview以編程方式取消項目編輯
- 26. 以編程方式修改UIToolBar項目
- 27. 以編程方式訪問ResourceDictionary項目
- 28. 以編程方式生成Eclipse項目
- 29. Sitecore以編程方式傳輸項目
- 30. 選擇項目以編程方式UICollectionView
或者可能不是 - 我可能會誤解UIAccessibilityTraitSummaryElement,它可能僅僅是屏幕輸入時所說的內容。這與重點項目不一樣。 –