2012-07-24 14 views
7

アップルの音声は、UINavigation Controllerの中にある自分のビューのタイトルを誤って発音してしまいます。iOSアクセシビリティ - UINavigationBarのタイトルにアクセシビリティラベルを設定するにはどうすればよいですか?

アプリの他の部分では、会社名を正しく発音するためのカスタムアクセシビリティラベルが追加されています。どのようにしてUINavigationBarのアクセシビリティラベルを設定できますか?

答えて

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

+0

偉大なアイデア男! – Husam

0

UINavigationBarUIViewから継承されているため、accessibilityLabelプロパティを設定する必要があります。試してください:yourUINavigationBar.accessibilityLabel = @"title";

また、yourUINavigationBar.isAccessibilityElement = YES;というアクセシビリティ要素としてマークされていることを確認する必要があります(アクセシビリティ要素としてマークされている別のビュー内にはありません)。 (アクセシビリティ・ラベルについて既に知っているように思われるので、この最後のビットが問題になるかもしれないと思っています。アクセシビリティ・インスペクタをシミュレータで使用して、要素の周りのボックスを見ると、 。私はアクセシビリティラベルを追加することができませんでした

+0

それは私のために働かなかった私は恐れている。私はisAccessibilityElement = YESを設定し、タイトルはアクセシビリティ要素としてマークされた別のビューの中にはありません。 –

+0

@RobertWagstaff申し訳ありません!私はこの問題を抱えていないことを告白しますが、代わりに 'UINavigationItem'オブジェクトの' titleView'プロパティのためにこれを行う必要があるかもしれません。 (これは、これまでUIView関連のものと同様に動作しなかったアクセシビリティUIBarButtonItemの問題と似ています)。 – Turix

+0

まだ運がありませんでした。私は試しました: self.navigationItem。タイトル= @ "myTitle"; [self.navigationItem.titleView setIsAccessibilityElement:YES]; [self.navigationItem.titleView setAccessibilityLabel:@ "AccessibilityTitle"]; inside of loadView –

14

これはiOS 8.2で動作します。 viewDidLoadで:ビュ​​ーコントローラへ

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

ナビゲーションコントローラ遷移、accessibilityLabel代わりにビューコントローラtitleから読み出されます。

+0

iOS 7.1.2で働いてくれました。これは完璧な答えであり、正解として選択する必要があります。 – Vlad

+0

ベストアンサー、iOS9で動作します。 – BollMose

+0

同意、最高の答え。 – Tyten

関連する問題