如何在使用 Core Graphics 绘制的图像上设置辅助功能标签?

2024-01-06

我正在尝试围绕一些核心图形逻辑编写 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}}

有没有办法在使用核心图形绘制的图像上设置辅助功能标签/标识符/值?


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

See the iOS 辅助功能编程指南 https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html欲了解更多信息,特别是使自定义容器视图的内容可访问。 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW10

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用 Core Graphics 绘制的图像上设置辅助功能标签? 的相关文章

随机推荐

  • 如何使用jquery选择表中的一行?

    我在我的应用程序中创建了一个表格 我想在单击复选框时选择 更改背景颜色 整行 就像 gmail 所做的那样 当我们单击 gmail 中的复选框时 整行变为黄色 table tbody tr td td tr tbody table
  • 对“gluOrtho2D”的未定义引用[重复]

    这个问题在这里已经有答案了 http programanddesign com cpp qt opengl code example http programanddesign com cpp qt opengl code example
  • 正则表达式如何匹配 2 个字段

    如何捕获引号内的文件名以及后面的数字作为命名捕获 正则表达式 C Files fileone txt 5969784 file2 txt 45345333 在字符串中的每次出现中 能够捕获 fileone txt 和后面的整数 循环循环每对
  • 为什么 gevent.spawn 在调用 Greenlet.join 之前不执行参数化函数?

    我想使用发出异步 HTTP POST 请求gevent 我不关心响应 我只想尽快执行请求 但是 每当我尝试使用gevent spawn 请求永远不会执行 我知道这一点是因为调用 ready or successful 上的方法Greenle
  • 模态窗口和对话窗口有什么区别?

    这个问题准确地描述了我想知道的内容 模态窗口和对话有什么区别 当模式窗口变成对话时 反之亦然 我该如何实现这两个目标 非常感谢朝正确方向的推动 模态窗口是在应用程序之上运行的窗口 因此在关闭模态窗口之前您无法对应用程序执行任何操作 jQue
  • Laravel - 将 PHP 资源传递给 Storage::put

    Laravel 文档 https laravel com docs 5 2 filesystem storing files https laravel com docs 5 2 filesystem storing files 说明这一点
  • Swift 中两个弱变量相互引用?

    今天我再次尝试理解 Swift 中的保留循环和弱引用 阅读通过文档 https developer apple com library ios documentation Swift Conceptual Swift Programming
  • 可视化解决方案资源管理器中的实际文件夹?

    MS Visual Studio 有解决方案资源管理器 我可以在其中查看所有项目文件 我还可以创建类似于文件文件夹的过滤器 以将它们分组 问题是 我希望我的文件在磁盘上的视觉和物理上分组 但我不想在视觉和磁盘上应用每个更改两次 有没有什么方
  • Go中的PostgreSQL列表参数(使用数据库/SQL和pq)

    我正在尝试编写一个采用列表参数 即作为值列表的单个参数 的查询 看来这在 PostgreSQL 中至少有时是可能的 https stackoverflow com a 10829760 836390 https stackoverflow
  • Swing 组件何时“可显示”?

    有没有办法 例如 通过事件 来确定 Swing 组件何时变为 可显示 根据 JavadocsComponent getGraphics http java sun com j2se 1 5 0 docs api java awt Compo
  • HttpClient - 处理聚合异常

    您好 我正在使用与此类似的 HttpClient public static Task
  • github 上的 Teamcity 构建徽章

    我想在我的 github 页面上添加 teamcity 构建徽章 我的存储库是私有 github 存储库 我首先将下面的代码包含为link https blog jetbrains com teamcity 2012 07 teamcity
  • 定义实体框架 1:1 关联

    我试图在实体框架模型中定义两个实体之间的 1 1 关联 一个映射到表 另一个映射到视图 使用 DefinedQuery 当尝试在设计器中定义映射时 它让我选择 1 表或视图来映射关联 我应该选择什么 我可以选择两个表中的任何一个 但随后我被
  • 更新 Ruby on Rails 控制器中的参数

    我有一个控制器 我想在更新之前更新其中一个参数的值 以便在同一个保存到数据库的操作中进行更新 不幸的是 下面的代码没有设置z在数据库中 if model x YES model z blank model params z Time now
  • 如何在Eclipse的“运行配置”中设置“主类”

    在一个Java项目中 有两个java文件都有main方法 这两个java文件的绝对路径是 C Desktop project1 src com pre moveposition1 java And C Desktop project1 sr
  • TypeError:TextIOWrapper 类型的对象不可 JSON 序列化

    如果代码正常工作 那么每当有人在聊天中输入内容时 他们都会获得 5 经验 并且该信息会被放入 json文件 但发生的情况是每当有人在聊天中输入内容时就会出现此错误 on message users json dumps f TypeErro
  • Visual Studio Code 语言扩展继承现有的

    在 Visual Studio Code 中 只需提供语法文件即可添加自己的语言扩展 例如通过 JSON 我想为我使用的特定脚本语言提供语法文件 脚本语言嵌入在 ARM 汇编源代码中 并且已经存在一个插件 所以我基本上想通过我的脚本语言来扩
  • Log4j 1:如何在不更新版本到2.15.0的情况下缓解Log4j中的漏洞

    我正在使用 Log4j 1 2 16 我将其与 Maven 一起使用Selenium https en wikipedia org wiki Selenium 28software 29测试Java项目 我正在寻找一种无需升级Log4j版本
  • 创建动态 php 插入 mysql 函数?

    我有一篇包含很多变量的帖子 我想知道是否有某种方法可以动态地将信息插入到 mysql 中 而不是手动全部输入 因为帖子变量会根据用户选择的内容而变化 这就是我们用来做类似事情的方法 插入到我们无法控制的表中 并且没有 API 访问权限 使用
  • 如何在使用 Core Graphics 绘制的图像上设置辅助功能标签?

    我正在尝试围绕一些核心图形逻辑编写 UIAutomation 测试 目前我们正在使用核心图形来绘制图像 我正在尝试在图像上设置可访问性标签 标识符 值 以便我可以通过 UIAutomation 测试验证其存在 但无论我做什么 我都无法在 D