如何将VoiceOver辅助功能添加到应用程序的图标徽章编号?

时间:2016-10-07 17:05:47

标签: ios swift optimization accessibility uiaccessibility

  

问题:

     

如何向应用添加自定义VoiceOver辅助功能LabelHint   图标徽章编号?

enter image description here enter image description here enter image description here

例如,当iOS设置Accessibility > VoiceOver变为On时,VoiceOver会朗读屏幕上的项目。对于App Store和Mail图标,将大声朗读以下内容:

  

App Store图标,VoiceOver说:“App Store。 2个可用更新。   双击打开。“

     

邮件图标,VoiceOver说:“邮件。 1条未读邮件。双击   打开。“

但是 ,对于我正在处理的项目,VoiceOver读出是通用的,并不完全有用:

  

我的应用程序图标,VoiceOver说:“我的应用程序。 123个新项目。双击到   开“。

短语 “...新项目” 过于模糊,不准确,我确信必须有一种方法可以使用自定义字符串更改此项通过设置accessibilityLabelaccessibilityHint或类似内容来使其更好地阅读。

但是Swift代码到底是怎么回事?

非常感谢。

补充观察:

使用模拟器辅助功能检查器,VoiceOver值显示为Label - “我的应用程序”和Value - “123个新项目”。在代码中进行了更新,我尝试将accessibilityValue设置为自定义内容 - “123自定义说明”。但仍然没有运气,VoiceOver继续阅读“我的应用.123 新项目。双击打开。”

为什么VoiceOver没有按预期读取自定义徽章值?

enter image description here

代码:

以下方法将红色圆圈App图标徽章编号添加到我的应用程序的图标:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let badgeCount: Int = 123
        let application = UIApplication.sharedApplication()
        if #available(iOS 8.0, *) { 
            //// iOS 8, iOS 9, iOS 10
            application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
        } else {
            //// iOS 7
        }
        application.applicationIconBadgeNumber = badgeCount
        application.accessibilityValue = "123 custom description."
    }
}

1 个答案:

答案 0 :(得分:5)

看起来这只是一个仅限Apple的"截至目前的功能... source

通过API文档挖掘,似乎没有任何可以为您设置此标识符的标识符,因此我认为它尚未公开支持。它可能已经被报道过,但报告这个请求Apple永远不会受到伤害。

对不起,这可能不是你所希望的答案! :/