渐进式编程课
React Native 目录
第 20 课2026.09.28

刷新失败文字变化时,提示 TalkBack 用户,但不强行打断正在朗读的内容。

第 20 课:在 Android 上温和播报刷新结果

  • 日期:2026-09-28
  • 课程序号:第 20 课
  • 知识点:accessibilityLiveRegion="polite"

用途或适用场景

刷新失败文字变化时,提示 TalkBack 用户,但不强行打断正在朗读的内容。

核心概念

React Native 的 accessibilityLiveRegion 仅适用于 Android;polite 要求辅助服务在适当时机播报已有视图的内容变化。保留上一课的 alert 角色,并使该 Text 常驻以便内容变化可被检测。

最小代码或操作示例

tsx
// 沿用第 19 课的 errorMessage 和 lastSuccess;只替换错误 Text。
<>
  <Text>{lastSuccess ? `上次成功:${lastSuccess.toLocaleTimeString()}` : '尚未成功刷新'}</Text>
  <Text accessibilityRole="alert" accessibilityLiveRegion="polite">
    {errorMessage}
  </Text>
</>

3~5 分钟练习

在 Android 设备开启 TalkBack,先成功刷新,再触发失败。

参考答案

成功时间保留、错误文字出现;官方定义 polite 为播报内容变化,但具体播报时机须在目标设备验证,不能仅凭代码断言。

与上一课的联系

沿用第 19 课的 errorMessage、lastSuccess 和 alert 角色;本课只让错误 Text 保持挂载并加 Android 的 polite 实时区域;下一课可分别记录 Android TalkBack 与 iOS VoiceOver 的实际结果。

时效校验

时效校验:2026-09-28(已核对 React Native 当前 Accessibility 文档;accessibilityLiveRegion 标为 Android 专用,polite 与 alert 未见废弃标记;未做设备朗读测试)。

官方参考