2017-02-18 26 views
2

我正在使用屏幕上使用emojis的應用程序。 這些表情符號顯示在用戶可以按下的按鈕上。哪裏可以找到適用於iOS「語音轉換」功能的表情符號可訪問性文本?

爲了使這個應用程序兼容「可訪問性要求」,又名聲音等等,我需要獲取所有emojis的描述文本,並且當用戶使用「voice over」時,emojis可以被讀取給用戶。

例如,當用戶選擇表情符號是「笑臉」時,語音應該向用戶讀取「笑臉」。但是,我無法爲每個表情符號手動標記,因爲其中有成千上萬個表情符號。

我在想我應該在哪裏得到所有表情描述文字?

謝謝!

+1

你說你不能手動標記它們,但你想要表情符號描述文本。你是否試圖以編程方式添加文本?你有沒有看到這篇文章? http://tink.uk/accessible-emoji/ – aardrian

+0

謝謝@aardrian我已經找到了答案... – RainCast

回答

2

正如您已經注意到的那樣,輔助功能子系統已經知道如果給定一個表情符號作爲面向輔助功能的文本的一部分(如控件的accessibilityLabel),就已經知道如何描述表情符號。

但是,如果您需要爲其他目的使用表情符號描述(也許某種不通過操作系統的輔助功能系統的輔助功能),那麼您可以幫助您瞭解如何自己找到它們。

你可以用Swift String來做到這一點。 applyingTransform或ObjC NSStringstringByApplyingTransform:。 (這兩個都是CoreFoundation的CFStringTransform API的封裝器,它有更好的文檔記錄,並且在舊的NSHipster post中有特色。)使用toUnicodeName轉換來獲取表情符號和其他特殊字符的名稱 - 例如,如文檔中所述,將「 「變成」{狗臉} {牛臉}「。 (你可能會注意到在StringTransform文檔和前面提到的NSHipster文章中,還有很多其他有趣的東西你可以用字符串轉換來做,比如從其他腳本拉丁文本或者生成XML/HTML十六進制轉義代碼對於不尋常的字符。)

+0

謝謝@rickster,你的答案比我的更全面,標記爲答案:) – RainCast

0

忘記發佈我的答案前一天。

原來,蘋果已經在框架中處理了這個。

我們需要做的只是設置* .accessibilityLabel =表情符號本身。然後,所有內容都可以正確讀出,例如打開語音播放功能時的「笑臉」。

太棒了!

相關問題