iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用

Posted

技术标签:

【中文标题】iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用【英文标题】:iOS 7 + Calabash: UITextView with NSLinkAttributeName and accessibility on links not working 【发布时间】:2014-05-05 20:58:37 【问题描述】:

我们有一个UITextView,它包含一个带有两个嵌入链接的属性字符串,这些链接是使用NSLinkAttributeName 在文本视图中创建的。我们正在使用 Calabash 来自动化测试,而 Calabash 不能“点击”这些 TextView 内的链接。我是否遗漏了什么使UITextView 中的这些链接可点击到自动化/可访问性工具?

用户可以点击这些链接,并确认预期的委托回调正在工作。唯一不起作用的情况是使用辅助工具尝试点击 UITextView 内的嵌入链接。

供参考:

 NSDictionary *plainAttributes = [self plainTextAttributes];
 NSDictionary *linkAttributes = [self linkAttributes];
 NSMutableDictionary *linkOneAttributes = [linkAttributes mutableCopy];
 termsOfUseAttributes[NSLinkAttributeName] = @"linkOne";
 NSMutableDictionary *linkTwoAttributes = [linkAttributes mutableCopy];
 privacyPolicyAttributes[NSLinkAttributeName] = @"linkTwo";

 NSMutableAttributedString *string = [NSMutableAttributedString new];
 [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"Blah blah blah blah " attributes:plainAttributes]];
 [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"Link One" attributes:linkOneAttributes]];
 [string appendAttributedString:[[NSAttributedString alloc] initWithString:@". Blah blah blah blah" attributes:plainAttributes]];
 [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"Link Two" attributes:linkTwoAttributes]];
 [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"." attributes:plainAttributes]];

非常感谢在UITextView 的属性字符串中使用NSLinkAttributeName 时对可访问性的任何见解。

【问题讨论】:

【参考方案1】:

好吧,如果辅助功能不能自动工作并且我认为它应该自动工作,那么你唯一的改变就是覆盖 UIAccessibilityContainerUITextView 方法。

您确定为该视图启用了辅助功能吗?

【讨论】:

以上是关于iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cucumber/Calabash-iOS 和 Xamarin.iOS

如何在 mac OS 中使用 calabash-ios 测试 ipa 文件?

calabash-ios物理设备测试,app启动但崩溃

运行 Cucumber 时 Calabash iOS cal 应用程序显示为空白

无法在 iOS 设备上为 Xamarin 应用程序运行 Calabash 测试

使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境