Interface BuilderにいくつかのUIBarButtonItemオブジェクトがあり、これらのボタンのアクセシビリティラベルまたはヒントを設定するオプションが見つかりません。
これらの属性を設定するにはどうすればよいですか?
「ユーザー定義のランタイム属性」を使用して、そこでアクセシビリティ情報を指定できます。
さて、IBを使用して他のUI要素にアクセシビリティ属性を設定できたとしても、InterfaceBuilderでそれを行う方法はないようです。そこで、ツールバーにタグを設定してから、このコードをviewWillAppearメソッドに追加しました。
UIToolbar *bottombar = (UIToolbar*)[self viewWithTag:kBottomToolbar];
UIView *view = (UIView*)[bottombar.items objectAtIndex:0];
[view setAccessibilityLabel:NSLocalizedString(@"Add Bookmark", @"")];
[view setAccessibilityHint:NSLocalizedString(@"Add Bookmark", @"")];
各ボタンアイテムなど...
最もエレガントではありませんが、機能します。
私はこれが古いことを知っていますが、私はちょうどこれの必要性に遭遇しました。 iOS 5.0以降、次の手順でUIBarButtonItem
のユーザー補助ラベルを簡単に設定できるようになりました。
UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...;
btn.accessibilityLabel = @"Label";
これ以上のハックはありません。
上記のコードを取得して、UIBarButtonItemsを1行追加しました。
[view setIsAccessibilityElement:YES];
これにはIBInspectable
を使用できるため、InterfaceBuilderのサイドパネルにいくつかの便利なオプションが表示されます。
public extension UIBarButtonItem {
@IBInspectable var accessibilityEnabled: Bool {
get {
return isAccessibilityElement
}
set {
isAccessibilityElement = newValue
}
}
@IBInspectable var accessibilityLabelText: String? {
get {
return accessibilityLabel
}
set {
accessibilityLabel = newValue
}
}
}
https://Gist.github.com/KaneCheshire/dcce5246c3399072a5200189bfc53fe2
アクセシビリティラベルを手動で設定しようとしても、UIBarButtonItem画像では機能しませんでした。ただし、タイトルを手動で設定すると、ラベルは機能します。ただし、画像の下にタイトルが表示されます。
最終的にUIButtonを作成し、それをUIBarButtonItemのカスタムビューとして使用しました。唯一の損失は、UIBarButtonItemが実行する画像マスキングです。追加されたボーナス:IBで構成可能なアクセシビリティ。