13

Apple のナレーションは、UINavigation コントローラー内にある私のビューの 1 つのタイトルを誤って発音します。

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

4

4 に答える 4

22

これは iOS 8.2 で動作します。でviewDidLoad

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

ナビゲーション コントローラーがビュー コントローラーに遷移すると、ビュー コントローラーのaccessibilityLabel代わりに が読み込まれますtitle

于 2015-05-18T20:25:24.073 に答える
15

アクセシビリティ ラベルを追加できませんでしたが、回避策を見つけました。

navigationItem のタイトル View を、アクセシビリティが設定された UILabel に置き換えます。

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;

アクセシビリティ ラベルの設定が機能しない理由はわかりませんが、上記のコードは私のニーズには合っています。

于 2012-07-24T03:25:36.470 に答える
0

iOS 11 および 12 でテストした同様の回避策があり、期待どおりに動作します。navigationItem.titleViewオブジェクトを設定してUILabelから、 のアクセシビリティ識別子を設定しますnavigationItem.titleView

self.navigationItem.titleView = YOUR_CUSTOM_UILABEL;

アクセシビリティ識別子部分

self.navigationItem.titleView.accessibilityIdentifier = YOUR_ACCESSIBILITY_IDENTIFIER;

Xcode のAccessibility Inspectorを使用して識別子を確認できます。

于 2018-11-02T10:14:31.733 に答える
0

からUINavigationBar継承しているため、そのプロパティUIViewを設定できるはずです。accessibilityLabel試してください: yourUINavigationBar.accessibilityLabel = @"title";.

また、アクセシビリティ要素としてマークされていることを確認する必要がある場合がありますyourUINavigationBar.isAccessibilityElement = YES;(また、アクセシビリティ要素としてマークされている別のビュー内にない)。(アクセシビリティ ラベルについては既にご存じのように思われるので、この最後の部分が問題である可能性があると推測しています。シミュレーターでアクセシビリティ インスペクターを使用して、要素の周りのボックスを見て、これが当てはまるかどうかを確認できます。それをタップして、ナビゲーター バーよりも大きなものの周りにあるかどうかを確認します。)

于 2012-07-24T01:30:20.507 に答える