MAUI无障碍开发关键在于正确设置控件的可访问名称、角色、状态及焦点顺序,并适配系统级无障碍设置。需用AutomationProperties.Name设语义化名称,动态更新状态,合理使用TabIndex,响应字体缩放与高对比度模式,全程结合TalkBack/VoiceOver测试。
MAUI 本身支持基础的无障碍(Accessibility)特性,但要真正为视障用户做好辅助功能开发,关键不在“有没有”,而在于“怎么设、设得对不对”。核心是让屏幕阅读器(如 TalkBack、VoiceOver)能准确识别控件类型、状态、内容,并提供有意义的操作反馈。
很多默认控件(比如 Button、Label、Image)如果没有显式设置文本或 Source,屏幕阅读器会读成“按钮”“图像”这类无意义名称。必须通过 AutomationProperties.Name 明确指定语义化名称。
button.SetValue(AutomationProperties.NameProperty, "删除这条消息");
MAUI 会自动推断部分 Role(如 Button 是“button”,Switch 是“switch”),但复杂自定义控件需要手动标注。状态变化(如禁用、选中、加载中)也需同步更新,否则屏幕阅读器无法感知。
视障用户靠方向键或滑动来遍历界面,如果控件顺序混乱、不可聚焦或跳过关键元素,体验会断裂。
不要硬编码字号或颜色——MAUI 提供了响应式机制,但需要主动适配。
TextColor="{AppThemeBinding Light={StaticResource PrimaryTextColor}, Dark={StaticResource PrimaryTextColorDark}, Default={StaticResource PrimaryTextColor}}"
Fon
tSize="Body" 或 16),避免写死 FontSize="12";启用 FontScaling 支持系统字体缩放(Android/iOS 默认支持,Windows 需确认 OS 设置)基本上就这些。MAUI 的无障碍不是加几个属性就完事,而是贯穿设计、开发、测试全流程的习惯。边写边用 TalkBack/VoiceOver 实时听一遍,比看十篇文档都管用。