如何在UILabel上以编程方式设置accessibilityLabel?

时间:2019-01-14 18:18:37

标签: ios objective-c cocoa-touch uilabel uiaccessibility

我正在尝试在我的UIViewController中以编程方式为UILabel(标题为“ Mega Title!”的一个)设置可访问性标签和值。这是我的viewDidLoad ...

- (void)viewDidLoad {
    [super viewDidLoad];

    // seems you can only set value on UILabel
    self.powLabel.isAccessibilityElement = YES;
    self.powLabel.accessibilityLabel = @"lbl label";    // sets value ???
    self.powLabel.accessibilityValue = @"lbl value";    // this doesn't work.

    // you can set title and value on UIView
    self.powView.isAccessibilityElement = YES;
    self.powView.accessibilityLabel = @"view label";    // sets title
    self.powView.accessibilityValue = @"view value";    // sets value


    // you can set title and value on UIButton
    self.powButton.isAccessibilityElement = YES;
    self.powButton.accessibilityLabel = @"btn label";    // sets title
    self.powButton.accessibilityValue = @"btn value";    // this value   
}

可访问性标题/值已在UIView和UIButton控件中正确设置...但是,仅可访问性值在UILabel控件上已设置。这是辅助功能检查器显示的屏幕截图...

enter image description here

如何设置UILabel,以使accessibilityLabel实际上具有值?

2 个答案:

答案 0 :(得分:0)

UILabel将使用.text设置文本作为accessibilityLabel,这取决于您要执行的操作,我认为最好使用accessibilityIdentifier来标识UI元素并保留默认值。

答案 1 :(得分:0)

在模拟器上检查应用程序内视图的可访问性时,需要确保选择模拟器作为当前上下文,而不是计算机。单击左上角的当前选择将显示一个下拉列表。

Accessibility Inspector Example