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

How to add VoiceOver accessibility to an App's Icon Badge Number?

Question:

How do I add a custom VoiceOver accessibility Label or Hint to an App Icon Badge Number?

                     


例如,当 iOS 设置 Accessibility > VoiceOver 被打开 On 时,VoiceOver 会大声朗读在屏幕上触摸的项​​目。对于 App Store 和 Mail 图标,朗读如下:

App Store icon, VoiceOver says: "App Store. 2 updates available. Double tap to open."

Mail icon, VoiceOver says: "Mail. 1 unread message. Double tap to open."

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

My App icon, VoiceOver says: "My App. 123 new items. Double tap to open."

短语“...新项目”太含糊,不准确,我敢肯定一定有通过设置 accessibilityLabelaccessibilityHint 或类似内容来使用自定义字符串更改它以使其更好地读取的方法。

但是在 Swift 代码中究竟如何呢?

非常感谢。


补充观察:

使用模拟器辅助功能检查器,VoiceOver 值似乎来自 Label - "My App" 和 Value - “123 个新项目”。所以在代码中更新我尝试将 accessibilityValue 设置为自定义的东西 - “123 自定义描述”。但仍然没有运气,VoiceOver 继续阅读 "My App. 123 new items. Double tap to open."

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


代码:

以下方法为我的应用程序图标添加一个红色圆圈应用程序图标徽章编号:

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."
    }
}

目前看来这是“仅限 Apple”的功能...source

仔细研究 API 文档,似乎没有任何标识符可以为您设置此项,因此我认为它尚未得到公开支持。它可能已经被报告过,但将此作为请求报告给 Apple 绝不会造成伤害。

抱歉,这可能不是您想要的答案! :/