在哪里可以找到 iOS“配音”功能的 emoji 辅助功能文本?
Posted
技术标签:
【中文标题】在哪里可以找到 iOS“配音”功能的 emoji 辅助功能文本?【英文标题】:Where to find emoji's accessibility texts for iOS "voice over" feature? 【发布时间】:2017-02-18 00:50:27 【问题描述】:我正在开发一个在屏幕上使用表情符号的应用。 这些表情符号显示在用户可以按下的按钮上。
为了使这个应用程序与“辅助功能要求”,也就是画外音等兼容。我需要获取所有表情符号的描述文本,当用户使用“画外音”时,表情符号可以被读给用户。
例如,当用户选择的表情符号是“笑脸”时,旁白应该向用户朗读“笑脸”。但是,我无法为每个表情符号手动标记,因为它们有数千个。
我想知道我应该从哪里获得所有的表情符号描述文本?
谢谢!!
【问题讨论】:
你说你不能手动标记它们,但你想要表情符号描述文本。您是否尝试以编程方式添加文本?你看到这篇文章了吗? tink.uk/accessible-emoji 感谢@aardrian 我实际上已经找到了答案... 【参考方案1】:正如您已经注意到的那样,如果将表情符号作为面向可访问性的文本的一部分(例如用于控件的accessibilityLabel
),辅助功能子系统已经知道如何以可访问的方式描述表情符号。
但是,如果您出于其他目的需要表情符号描述(可能是某种不通过操作系统的无障碍系统的无障碍设施),了解如何自己找到它们可能会有所帮助。
您可以使用 Swift String
.applyingTransform
或 ObjC NSString
.stringByApplyingTransform:
来做到这一点。 (这两个都是 CoreFoundation 的 CFStringTransform
API 的包装器,它在旧的 NSHipster post 中有更好的文档和特色。)使用 toUnicodeName
转换来获取表情符号和其他特殊字符的名称 - 例如,如在文档,将“??”转换为“DOG FACECOW FACE”。
(您可能会在StringTransform
文档和前面链接的 NSHipster 文章中注意到,您还可以使用字符串转换做许多其他有趣的事情,例如从其他脚本中拉丁化文本或生成 XML/html 十六进制转义不寻常字符的代码。)
【讨论】:
谢谢@rickster,你的回答比我的全面很多,标记为答案:)【参考方案2】:前几天忘记发布我的答案了。
事实证明,Apple 已经在框架中处理了这个问题。
我们需要做的只是设置 *.accessibilityLabel = 表情符号本身。然后一切都正确读出,例如打开画外音功能时的“笑脸”。
太棒了!
【讨论】:
以上是关于在哪里可以找到 iOS“配音”功能的 emoji 辅助功能文本?的主要内容,如果未能解决你的问题,请参考以下文章