在哪里可以找到 iOS "voice over" 功能的表情符号辅助功能文本?

Where to find emoji's accessibility texts for iOS "voice over" feature?

我正在开发一个在屏幕上使用表情符号的应用程序。 这些表情符号显示在用户可以按下的按钮上。

使此应用与 "accessibility requirements"、a.k.a 兼容。画外音等。我需要获取所有表情符号的描述文本,并且当用户使用 "voice over" 时,可以将表情符号读给用户。

例如,当用户选择的表情符号是 "smiley face" 时,画外音应向用户读出 "smiley face"。但是,我无法为每个表情符号手动标记,因为它们有数千个。

我想知道我应该从哪里获得所有表情符号描述文本?

谢谢!!

前几天忘了post我的回答。

原来Apple已经在框架中处理了这个。

我们需要做的只是设置 *.accessibilityLabel = 表情符号本身。然后它全部正确读出,例如打开画外音功能时"smiley face"。

太棒了!

正如您已经注意到的那样,如果将表情符号作为 accessibility-oriented 文本的一部分(例如控件的 accessibilityLabel),辅助功能子系统已经知道如何方便地描述表情符号。

但是,如果您出于其他目的需要表情符号描述(可能是某种不通过 OS 的辅助功能系统的辅助功能),了解如何找到它们可能会有所帮助你自己。

您可以使用 Swift String.applyingTransform or ObjC NSString.stringByApplyingTransform:. (Both of these are wrappers for CoreFoundation's CFStringTransform API, which is better documented and featured in an old NSHipster post.) Use the toUnicodeName 转换来获取表情符号和其他特殊字符的名称——例如,如文档中所述,转换“ ”变成“{狗脸}{牛脸}”。

(您可能会在 StringTransform 文档和前面链接的 NSHipster 文章中注意到,您还可以使用字符串转换做很多其他有趣的事情,例如拉丁化来自其他脚本的文本或生成 XML/HTML 不常见字符的十六进制转义码。)