【问题标题】:UISegmentedControl accessibility hintUISegmentedControl 可访问性提示
【发布时间】:2015-02-04 05:42:10
【问题描述】:

在 Xcode 6.1 和基本 sdk 8.0 部署 7.1 中

我正在尝试为段设置可访问性标签、值和提示。我检查了 How do I set the accesibility label for a particular segment of a UISegmentedControl?

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

我们如何表达价值和暗示?

【问题讨论】:

  • 在我看来,您可能正在使用 iOS 预期使用方式之外的分段控件。如果您多描述一下您的场景,而不是您的问题,我们或许可以提供替代方案。

标签: accessibility uisegmentedcontrol


【解决方案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 #”。我相信,正在发生的事情是框架忽略了任何用户提供的提示,并使用段数和最大段数来代替提示。由于我能够成功地覆盖协议,并且仍然让它以这种方式运行,我相信你被卡住了。如果您提供有关您的用户体验需求的更多信息,我很乐意提出替代方案。

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

【讨论】:

    【解决方案2】:

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

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

    你不能做的是覆盖辅助功能提示。这似乎是系统生成为“1 of 4”之类的。但是,通过使可访问性标签更好,您可以减少对提示的需求。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2021-11-29
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2015-07-01
      相关资源
      最近更新 更多