我正在开发一款在屏幕上使用表情符号的应用。 这些表情符号显示在用户可以按下的按钮上。
为了使这个应用程序兼容“可访问性要求”,又称语音等,我需要获取所有emojis的描述文本,当用户使用“语音结束”时,可以向用户读取表情符号。
例如,当用户选择表情符号是“笑脸”时,语音结束应该向用户读取“笑脸”。但是,我不能手动为每个表情符号标记,因为它们有数千个。
我想知道我应该在哪里获得所有的表情符号描述文本?
谢谢!
答案 0 :(得分:2)
正如您已经注意到的那样,如果将表情符号作为面向辅助功能的文本的一部分(如控件的accessibilityLabel
),辅助功能子系统已经知道如何可访问地描述表情符号。
但是,如果您需要将表情符号描述用于其他目的(可能是某种无法通过操作系统辅助功能系统访问的设施),那么了解如何自行查找它们可能会有所帮助。
您可以使用Swift String
。applyingTransform
或ObjC NSString
。stringByApplyingTransform:
执行此操作。 (这两个都是CoreFoundation CFStringTransform
API的包装器,更好地记录并在旧的NSHipster post中显示。)使用toUnicodeName
转换来获取表情符号的名称和其他特殊字符 - 例如,如文档中所述,将“”转换为“{DOG FACE} {COW FACE}”。
(正如您在StringTransform
文档和上面提到的NSHipster文章中可能会注意到的那样,您还可以使用字符串转换执行许多其他有趣的操作,例如从其他脚本中拉入文本或生成XML / HTML异常字符的十六进制转义码。)
答案 1 :(得分:0)
前几天忘记发布我的回答。
事实证明Apple已经在框架中处理了这个问题。
我们需要做的就是设置* .accessibilityLabel =表情符号本身。然后它全部正确读出,例如"笑脸"当开启配音功能时。
真棒!