3

我正在尝试围绕一些核心图形逻辑编写 UIAutomation 测试。目前我们正在使用核心图形来绘制图像。我正在尝试在图像上设置可访问性标签/标识符/值,以便我可以通过 UIAutomation 测试验证它的存在,但无论我做什么,我都没有在 DOM 上获得可访问性标签/标识符/值我的测试。以下是我尝试过的事情:

直接在图像上设置。

UIImage *uiImage = [UIImage imageWithData:bfCaseStudy.image];
uiImage.isAccessibilityElement = YES;
uiImage.accessibilityLabel = bfCaseStudy.name;
uiImage.accessibilityValue = bfCaseStudy.name;
uiImage.accessibilityIdentifier = bfCaseStudy.name;

CGContextDrawImage(context, [self rectForAttr:bfCaseStudy], uiImage.CGImage);

核心图像上的设置

UIImage *uiImage = [UIImage imageWithData:bfCaseStudy.image];
uiImage.CIImage.isAccessibilityElement = YES;
uiImage.CIImage.accessibilityLabel = bfCaseStudy.name;
uiImage.CIImage.accessibilityValue = bfCaseStudy.name;

CGContextDrawImage(context, [self rectForAttr:bfCaseStudy], uiImage.CGImage);

无论哪种方式都会产生相同的结果。这是尝试访问信息的 UIAutomation 代码。

UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].label());
UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].name());
UIALogger.logDebug(bookTwoHelper.mainWindow.images()[5].value());

Debug: (2013-02-25 16:06:33 +0000) - (null)
Debug: (2013-02-25 16:06:33 +0000) - (null)
Debug: (2013-02-25 16:06:33 +0000) - (null)

这是 DOM 的相关部分

UIAImage "(null)" {{0, 149}, {316, 55}}

有没有办法在使用核心图形绘制的图像上设置可访问性标签/标识符/值?

4

1 回答 1

6

属性 likeaccessibilityLabel仅在与 UIKit 控件(例如UIView等)一起使用时才有效UIImageView。因为您的图像不是真实的UIView,您需要通过使容器视图或视图控制器实现UIAccessibilityContainer协议来向 UIKit 提供额外信息。

有关更多信息,请参阅iOS 的辅助功能编程指南,特别是使自定义容器视图的内容可访问。

于 2013-02-25T17:11:15.573 回答