我們使用KIF進行功能測試,並使用元素的輔助功能標籤來確定發送事件的位置。我目前正在嘗試測試UISegmentedControl的行爲,但爲了這樣做,我需要爲控件的不同部分設置不同的可訪問性標籤。我如何設置特定細分的訪問標籤?如何爲UISegmentedControl的特定段設置訪問標籤?
回答
我剛剛開始使用KIF自己,所以我沒有測試過,但可能值得一試。我相信我很快就會遇到同樣的問題,所以我很想聽聽它是否有效。
首先,UIAccessibility Protocol Reference有accessibilityLabel下一張紙條,上面寫着:
「如果你提供的UIImage對象在一個UISegmentedControl顯示,你可以在每個圖像上設置該屬性,以確保段正常訪問。 「
所以,我想知道是否可以在每個NSString對象上設置accessibilityLabel,並且可以使用它訪問每個帶有KIF的段。作爲開始,您可以嘗試創建幾個字符串,設置其可訪問標籤,並使用[[UISegmentedControl alloc] initWithItems:myStringArray];填充它。
請更新我們的進度。我想聽聽這是怎麼回事
UISegmentedControl
的每個部分是UISegment
類實例,從UIImageView
的子類。您可以通過subviews
屬性UISegmentedControl
訪問這些實例,並嘗試以編程方式爲它們添加輔助功能。
我試過了,它不適合我。我嘗試了另一種方式,現在它適用於我。 [[segmentedControl imageForSegmentAtIndex:0] setAccessibilityLabel:@「Weapons」]; – UnchartedWorks 2014-04-08 08:59:43
正如頂點表示,
OBJ-C
[[[self.segmentOutlet subviews] objectAtIndex:3] setAccessibilityLabel:@"GENERAL_SEGMENT"];
迅速
self.segmentOutlet.subviews[3].accessibilityLabel = "GENERAL_SEGMENT"
一些建議,這樣你就不會發瘋,像我一樣:
- 要在輔助功能模式中滾動滑動三個手指
- 段的索引向後比您預期的要向後,即最右邊的段是第0個索引,而最靠左的是第n個索引,其中n是元素在UISegmentControl
這在Swift中可能如何? – SwingerDinger 2015-04-28 12:33:17
我添加了一個快速示例。我沒有嘗試過,但編譯器接受了這個語法。對不起,遲交回復@SwingerDinger – anders 2015-10-27 14:08:39
非常感謝老兄! – satheeshwaran 2016-12-15 11:39:43
這是一個老問題,但爲了以防萬一別人遭遇了這一點,我發現,段自動擁有指定作爲其文本的可訪問性標籤的數量。因此,如果加入兩種選擇選項1和選項2的呼叫的到
[tester tapViewWithAccessibilityLabel:@"Option 2"];
成功選擇的段。
它不工作,我檢查了無障礙檢查員,並沒有他們的標籤 – Caipivara 2015-01-05 22:16:38
OMG這應該是接受的答案,這麼簡單!適用於iOS 8的我。 – 2015-04-11 21:53:08
工程,儘管我有一個問題:我的其中一個選項卡與段具有完全相同的文本。因此,它們都具有相同的輔助功能標籤。 – user3099609 2016-03-01 12:10:02
另一種選擇,如果不願意設置無障礙環境頭銜可能要計算每個段部件的poistion和使用
[tester tapScreenAtPoint:segementPosition];
觸發動作
這是一個老問題,但爲了以防萬一任何人都遇到這種情況,我發現這些細分市場自動將可訪問性標籤指定爲他們的文本。
而且斯圖爾特的回答,我發現它編寫測試用例時真正有用的點亮在模擬器「輔助檢查」(設置 - >通用 - >輔助功能 - >輔助檢查)。您會驚訝有多少元素已包含輔助功能標籤,如標準的iOS界面元素甚至第三方框架。
注意:手勢現在會有所不同 - 點擊可查看輔助功能信息,雙擊選擇。最小化「輔助功能檢查器」窗口(通過點擊X按鈕)將使手勢恢復正常。
好的建議! – anders 2015-04-28 14:18:04
- 1. 如何在MVC中爲標籤設置特定的寬度?
- 2. 如何在打開標籤時設置特定標籤
- 3. 如何在StarTeam中爲結帳操作設置特定標籤?
- 4. 在R中,如何設置軸標籤的特定位置?
- 5. Android tabHost訪問特定標籤
- 6. 如何使用$(this)訪問div標籤中的特定元素?
- 7. 如何設置一個NSMutableArray從不同的標籤頁訪問
- 8. 如何在dygraph中設置特定的y軸標籤點?
- 9. 如何將變量設置爲輸入字段的標籤?
- 10. UISegmentedControl書寫文字標籤問題
- 11. 如何爲具有CSS特定內容的標籤設置樣式?
- 12. 從NSArray設置UISegmentedControl的標題
- 13. 在UISegmentedControl中設置默認段
- 14. 如何爲標籤設置TextBlock樣式?
- 15. 如何將h:selectOneMenu標籤設置爲值?
- 16. 如何將標籤設置爲MenuItem?
- 17. 如何設置UISegmentedControl的默認狀態?
- 18. 如何設置UISegmentedControl的初始選擇
- 19. 如何設置默認的UISegmentedControl外觀?
- 20. 在Chrome中爲特定標籤設置分辨率
- 21. 在netlogo中的特定座標處設置標籤
- 22. 自定義UITabBarController - 使用帶有UISegmentedcontrol的UIToolBar作爲標籤欄?
- 23. 只爲特定用戶設置訪問權限
- 24. 如何從特定表格中爲特定字段設置唯一性?
- 25. 如何在div中設置p標籤,在td標籤中設置div標籤
- 26. 如何設置UISegmentedControl不調用方法
- 27. 如何將UISegmentedControl設置回默認值
- 28. 如何刪除特定字段的zend形式的dt標籤
- 29. 訪問特定的表中的HTML標籤
- 30. 如何在jsviews中將css設置爲自定義標籤(datepicker)?
不,這是行不通的。您必須使用已接受的答案來以編程方式自定義這些答案,而且這很醜陋。 – Josh 2012-10-20 17:09:03
這適用於我,至少從iOS 5.1開始。我還沒有進一步測試。如果我設置圖像的accessibilityLabel,然後在UISegmentedControl中使用圖像,它可以按預期工作。 – rmaddy 2013-03-11 04:06:28
在'NSString'對象上設置accessibilityLabel ... mind = blown – 2015-01-11 19:10:08