在哪里可以找到 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 辅助功能文本?的主要内容,如果未能解决你的问题,请参考以下文章

OPPO手机怎么没有emoji表情啊

IOS Emoji表情

小米4的qqemoji表情在哪里

iOS 14 更多小功能与隐藏设定盘点

让MySQL支持emoji表情

让MySQL支持emoji表情