You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS UIKit中使用VoiceOver告知用户链接将跳转至App外的方法问询

iOS UIKit中VoiceOver跳转外部场景的无障碍处理方案

一、提前告知的核心要求

根据Apple无障碍指南,必须在用户激活链接之前就让其知晓操作会跳转到App外部,不能依赖跳转后的系统播报(比如浏览器的“webview”、电话的“phone”)——这类播报是跳转后的场景反馈,不符合“提前告知后果”的要求。

二、官方推荐的处理方式

Apple官方没有统一的固定话术,但明确要求通过accessibilityHint补充跳转说明,且文本必须做本地化适配:

  • 跳转到设备设置:设置本地化提示文本"此操作将跳转到系统设置"
  • 跳转到App Store:设置"此操作将跳转到App Store"
  • 跳转到邮件/浏览器/Deep Link:对应设置"此操作将跳转到邮件应用"、"此操作将跳转到浏览器"、"此操作将跳转到[目标App名称]"

Outlet中控件的代码示例

如果是通过Outlet关联的控件(如UIButton、可点击UILabel),直接在代码中设置accessibilityHint:

// 示例:跳转到App Store的按钮
appStoreButton.accessibilityHint = NSLocalizedString("此操作将跳转到App Store", comment: "Accessibility hint for App Store link")

三、UIAccessibility.screenChanged通知的作用

这个通知是跳转完成后用来告知VoiceOver当前屏幕内容已变更,帮助其聚焦到新场景的核心元素,不属于“提前告知”的前置操作。只有当跳转后的页面需要VoiceOver快速定位关键内容时才需要调用,不是必选项。

四、系统自动播报的局限性

VoiceOver跳转后播报的“webview”“phone”等内容,只是对新场景的类型说明,无法替代操作前的提示——用户需要在决定点击前就明确知道会离开当前App,而不是点击后才得知结果。

内容的提问来源于stack exchange,提问作者AppleDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 23:50:55