Flutter iOS端VoiceOver无法读取自定义semantic label问题求助
Flutter 3.0.2版本iOS端VoiceOver无法正确读取自定义语义标签问题求助
我开发的应用面向盲人和低视力用户群体,这类用户多数使用iPhone设备,对系统内置VoiceOver屏幕朗读功能依赖度极高。升级到Flutter 3.0.2版本后,我先后执行flutter clean、flutter pub upgrade、flutter pub get操作重新构建项目,问题始终存在,当前测试环境为搭载iOS 15.5系统的第二代iPhone SE设备,现征集可行的临时解决方案。
复现步骤
- 针对提供的代码示例执行
flutter run指令启动项目 - 开启iOS系统内置的VoiceOver功能
- 点击页面上展示的「compose」「camera」「chat」三个图标控件
预期结果
VoiceOver可以准确朗读开发者预先设置的语义标签:edit profile、camera screen、chat screen。
实际结果
VoiceOver实际朗读内容为:compose、camera button、chat button。
我已经尝试使用Semantics组件包裹目标控件、设置label属性并配置excludeSemantics: true参数排除子节点语义信息,问题没有改善;但相同代码在搭载Android 11系统的OnePlus Nord2 CE设备上运行完全正常。
已尝试方案
我先后测试了三种实现方式,均无法解决iOS端的问题,相关实现代码见对应代码块:
- 直接给Icon组件配置
semanticLabel属性 - 使用Semantics组件包裹目标控件,同时设置
label属性与excludeSemantics参数 - 监听
onDidGainAccessibilityFocus事件,调用SemanticsService.announce主动触发播报
环境与附件说明
- 已附上iOS端
Info.plist配置文件内容、测试设备参数信息 flutter analyze检测结果:无代码语法/规范问题flutter doctor -v检测结果:本地开发环境无异常- 补充说明:该问题在iOS模拟器中使用Accessibility Inspector工具检测时,语义识别表现完全正常,相关问题截图、真机复现录屏可查看对应附件。
内容的提问来源于stack exchange,提问作者Sid
相关产品推荐
相关产品推荐

