隱藏元素

大多數 UIKit 類,包括 UIView,都遵守 UIAccessibilityProtocol 並預設返回正確的值。很容易理所當然地認為,設定為隱藏的 UIView 也不存在於輔助功能層次結構中,並且不會被 VoiceOver 導航。雖然此預設行為通常已足夠,但有時檢視層次結構中將顯示檢視但不可見或可導航。例如,按鈕集合可能與另一個檢視重疊,使得它們對有視力的使用者不可見。然而,VoiceOver 仍會嘗試導航它們,因為它們在技術上不會從 UIKit 中隱藏,因此仍然存在於輔助功能層次結構中。在這種情況下,你必須提示 VoiceOver 無法訪問父檢視。你可以通過在檢視離屏時設定隱藏來顯式隱藏 UIKit 中的檢視來執行此操作:

myViewFullofButtons.hidden = YES;

或者,你可以將父檢視保持可見,並將其子項隱藏在輔助功能層次結構中:

myViewFullofButtons.accessibilityElementsHidden = YES;

臨時檢視是另一個你希望隱藏可訪問性層次結構中的元素同時使其對使用者可見的位置。例如,當你點選音量按鈕時彈出的檢視對於有視力的使用者是可見的,但不像普通警報那樣需要引起注意。你不希望 VoiceOver 中斷使用者並將游標遠離他們正在做的任何事情以宣告新音量,特別是考慮到調節音量已經通過其發出的咔噠聲提供聽覺反饋。在這種情況下,你將要使用 accessibilityElementsHidden 隱藏檢視。