gpt4 book ai didi

ios - 使用 UIAccessibility 读取 HTML 选择

转载 作者:行者123 更新时间:2023-11-28 08:24:02 24 4
gpt4 key购买 nike

我正在尝试实现一项功能,该功能将使用 VoiceOver 读取显示在 WKWebView 中的选定 HTML 片段。

我最初尝试将 html 扁平化为文本,然后使用 AVSpeechSynthesizer() 读取用文本实例化的 AVSpeechUtterance:

let synth = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: myFlattenedText)
if synth.isSpeaking {
synth.stopSpeaking(at: .immediate)
}
synth.speak(utterance)

这通常有效,但 VoiceOver 提供的体验更出色。例如,我的 HTML 启用了辅助功能 MathJax . VoiceOver 可以很好地阅读上下文数学方程式,而将 html 扁平化为文本的策略则不行。

我尝试用 html 片段创建一个 NSAttributedString,详见 here ,但这并没有带来任何好处。

有没有一种方法可以利用 VoiceOver 的功能,也许以某种方式使用 UIAccessibility,这将以与 VoiceOver 相同的方式读取支持辅助功能的 HTML?

最佳答案

您看到的是 WebKit 的 MathJax 支持与经过仔细考虑的 UIAccessibility 支持相结合。虽然我发现的最新文档表明 these properties are not accessible to web developers ,作为 iOS 开发人员,您应该能够遍历 UIAccessibility 元素层次结构以转储 MathJax< 的 accessibilityLabelaccessibilityValue/内容。

编辑:正如@mattsven 指出的那样,问题在于 WKWebView 内容是在远程进程中呈现的,因此不会将其可访问性元素暴露给包含它的应用程序。

关于ios - 使用 UIAccessibility 读取 HTML 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com