2012-07-24 195 views

回答

10

我不能添加輔助功能的標籤,但我發現了一個解決辦法:

我更換有無障礙一個UILabel的navigationItem的標題查看建立。

UILabel *titleLabel = [[UILabel alloc] init]; 
titleLabel.text = @"myTitle"; 
[titleLabel setAccessibilityLabel:@"myCustomAccessiblityLabel"]; 
[titleLabel setFont:[UIFont boldSystemFontOfSize:20.0]]; 
[titleLabel setBackgroundColor:[UIColor clearColor]]; 
[titleLabel setTextColor:[UIColor whiteColor]]; 
[titleLabel sizeToFit]; 
self.navigationItem.titleView = titleLabel; 

我不確定爲什麼設置輔助功能標籤不起作用,但上面的代碼適用於我的需要。

+2

感謝您發佈您的解決方法! UINavigationBar的問題可能值得向Apple提出。他們在解決與可訪問性相關的錯誤報告(包括上面提到的UIBarButtonItem問題)方面相當不錯。 – Turix 2012-07-24 03:32:51

+0

好主意的人! – Husam 2017-11-15 11:38:26

0

由於UINavigationBar繼承自UIView,您應該可以設置其accessibilityLabel屬性。試試:yourUINavigationBar.accessibilityLabel = @"title";

此外,您可能需要確保確保它被標記爲可訪問元素與yourUINavigationBar.isAccessibilityElement = YES;(而不是另一種觀點認爲它也被標記爲可訪問性元素中)。 (我猜這最後一點可能是問題所在,因爲看起來您已經瞭解了輔助功能標籤,您可以在模擬器中使用輔助功能檢查器,通過查看元素周圍的框來查看是否屬於這種情況點擊它,看它是否是周圍的東西比導航欄更大)

+0

這對我來說並不適用,我很害怕。我設置了isAccessibilityElement = YES,並且該標題不在另一個被標記爲可訪問性元素的視圖內。 – 2012-07-24 02:12:20

+0

@RobertWagstaff對不起!我承認我從來沒有遇到過這個問題,但是在我看來,也許你需要爲'UINavigationItem'對象的'titleView'屬性來做這件事。 (順便說一句,這似乎類似於我在過去的可訪問性'UIBarButtonItem'的問題,它不像「正常」UIView相關的東西那樣。) – Turix 2012-07-24 02:33:49

+0

仍然沒有運氣,我試過了: self.navigationItem。 title = @「myTitle」; [self.navigationItem.titleView setIsAccessibilityElement:YES]; [self.navigationItem.titleView setAccessibilityLabel:@「AccessibilityTitle」]; loadView – 2012-07-24 03:10:21

14

適用於iOS 8.2。在viewDidLoad

self.navigationItem.accessibilityLabel = @"My accessible label"; 

當導航控制器轉換到視圖控制器,所述accessibilityLabel被讀取而不是視圖控制器title

+0

在iOS 7.1.2上爲我工作。這是完美的答案,應選擇正確的答案。 – Vlad 2015-07-20 05:55:27

+0

最佳答案,在iOS9上工作。 – BollMose 2015-11-17 07:00:17

+0

同意,最佳答案。 – Tyten 2016-01-21 21:22:05