UISegmentedControl辅助功能提示

时间:2015-02-04 05:42:11

标签: accessibility uisegmentedcontrol

在Xcode 6.1和基础sdk 8.0部署7.1

我正在尝试为细分设置辅助功能标签,值和提示。我查过了 How do I set the accesibility label for a particular segment of a UISegmentedControl?

但这也不适用于该设备。在为标签或图像设置时,配音仅说明accessibilityLabel而不是值或提示。

我们怎样才能说出价值和提示?

3 个答案:

答案 0 :(得分:1)

在您想要完成的内容中,iOS不会让您这样做。对于分段控件,iOS以自定义方式运行。即使您尝试覆盖UIAccessibilityContainer协议,iOS框架的内容也会覆盖您尝试获取的行为。我试图覆盖UIAccesssibilityElement和UIAccessibilityContainer协议。什么对我来说,是我的重写

- (NSString*)accessibilityHint { return @"This is my hint";}
正在调用

函数,但仍然忽略了提示值。如果你注意到,这些段就是这样读出的

(label) The title for the segment
(trait) button
(hint) 1 of 2

然后最后一部分读取"#of#"。我相信,正在发生的是框架忽略了任何用户提供的提示,并使用段数和最大段数来代替提示。由于我能够成功覆盖协议,并且STILL的行为方式如此,我相信你会陷入困境。如果您提供有关用户体验需求的更多信息,我们很乐意为您提供替代方案。

编辑: 如果您处于可访问性问题,请在界面构建器中进一步支持这一点。选择分段控件进行编辑时,提示和标签将消失。他们并不打算为这些类型的控件更改这些字符串。很可能是因为在后端,他们正在以自定义方式处理这种特定类型的UI对象,这种方式不会被覆盖,或者没有意义被覆盖。

答案 1 :(得分:1)

这里有一点澄清。 Apple Doc是正确的,因为您可以通过编程方式将每个段设置为具有与其可视标签不同的辅助功能标签:

NSString *title = @”Rating”;
title.accessibilityLabel = @”Sort by highest rated”;
[segmentedControl insertedSegmentedWithTitle:title];

这似乎是系统生成的4' 1管他呢。但是通过使可访问性标签更好,您可以减少对提示的需求。

答案 2 :(得分:0)