是否有可能改變其在iPad上的VoiceOver功能,可訪問讀出的元素,當「兩指快速向下滑動」手勢完成的順序?
對於附加的圖像,其中包含3級的標籤和一個按鈕,將VoiceOver讀取以下列方式中的元素,
標籤1 - >標籤2 - >按鈕 - >標籤3
制罐爲了改變爲,
標籤1 - >標籤2 - >標籤3 - >按鈕
是否有可能改變其在iPad上的VoiceOver功能,可訪問讀出的元素,當「兩指快速向下滑動」手勢完成的順序?
對於附加的圖像,其中包含3級的標籤和一個按鈕,將VoiceOver讀取以下列方式中的元素,
標籤1 - >標籤2 - >按鈕 - >標籤3
制罐爲了改變爲,
標籤1 - >標籤2 - >標籤3 - >按鈕
實現這個爲你的榜樣的最快方法是將三個標籤放置在一個透明的UIView
子類來作爲y的容器我們的標籤。這個子類必須正確設置才能讓VoiceOver知道如何解釋它。如果您的部署目標是iOS6
,那麼您可以簡單回答此子類中的「應該組可訪問性子項」問題。
-(BOOL)shouldGroupAccessibilityChildren{
return YES;
}
對於低於iOS6
會比較複雜,除了你的UIView
容器子類將只包含UILabels
它們是可訪問的元素。您可以實現這樣的:
-(BOOL)isAccessibilityElement{
return NO;
}
-(NSInteger)accessibilityElementCount{
return self.subviews.count;
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
return [self.subviews objectAtIndex:index];
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
return [self.subviews indexOfObject:element];
}
我已經測試此示例代碼和它你在找什麼,如果你需要任何澄清,請添加註釋。總是樂於幫助使事情更容易獲得。
我認爲你可以在故事板中做到這一點。 VoiceOver訂單由文檔大綱中視圖的順序決定。
只需以正確的順序拖放視圖層次結構中的視圖即可。
我有他們在正確的順序,但仍然VoiceOver不正確讀取它們。儘管我使用的是iOS 9,但我不知道事情是否改變。 – user1366265
不,它們通常在屏幕上基本上是從左到右讀取的 –
我嘗試將shouldGroupAccessibilityChildren
設置爲YES
,但它對我無效。
爲我工作的是直接設置父視圖的輔助功能標籤(因爲我希望一次讀取所有項目/一個VoiceOver手勢)。
[cell setAccessibilityLabel:[NSString stringWithFormat:@"%@, %@", cityLabel, temperatureLabel]];
碼的上述片段是由Apple的文檔Enhancing the Accessibility of Table View Cells
在夫特,附接一個IBOutlet到母體的UIView,然後shouldGroupAccessibilityChildren設置爲true就足夠了。
abc.shouldGroupAccessibilityChildren =真
我沒注意,如果還設置isAccessibilityElement = true
分組將不會生效。同樣,檢查故事板或xib中的可訪問性複選框也會阻止分組發生。
謝謝你的回答。但是,'shouldGroupAccessibilityChildren'似乎沒有被調用。 – Breakpoint
@Vittal'shouldGroup..'只會被iOS6設備調用,而不是所有使用> = 6 SDK構建的應用程序。同時確認包含標籤的視圖是使用身份檢查器在xib或故事板中的自定義類。讓我知道你是否仍然有麻煩。 – NJones
啊,自定義類的一部分就是我所缺少的。愚蠢的錯誤。它現在有效。非常感謝。 是的,我在iOS6上測試。需要讓我的手在6以下的版本測試其餘的。所以只需將以下iOS 6的代碼添加到自定義類中就行了嗎? – Breakpoint