用途:为 .NET MAUI 应用提供无障碍(可访问性)实现指导,帮助屏幕阅读器正确朗读界面并保留可操作提示。
主要能力:覆盖 SemanticProperties 的 Description、Hint、HeadingLevel,AutomationProperties 的可见性控制(IsInAccessibleTree、ExcludedWithChildren),以及 SemanticScreenReader.Announce、SetSemanticFocus、TabIndex 等动态内容与焦点、Tab 顺序处理。
关键平台限制:
- 不要在 Label 上设置 SemanticProperties.Description,否则会覆盖 Text,导致重复朗读或异常,直接保留 Text 即可。
- Android 上给 Entry/Editor 设置 Description 会破坏 TalkBack 的“双击编辑”提示,应改用 Placeholder。
- iOS/VoiceOver 上给布局容器设置 Description 会把整个容器变成单一可访问元素,子元素无法聚焦,应让子元素各自可聚焦。
- Android 上 SemanticProperties.Hint 与 Entry.Placeholder 映射到同一属性,二者只能选一。
- HeadingLevel 在 Windows Narrator 支持 Level1–Level9,Android TalkBack 与 iOS VoiceOver 只区分是否为标题,层级仅在 Windows 呈现。
检查清单:有意义的图片加 Description,装饰性图片设 IsInAccessibleTree="false";纯图标按钮需 Description,文字按钮一般不需要;Entry/Editor 用 Placeholder,必要时加 Hint,避免 Description;Label 不加 Description,章节标题加 HeadingLevel;避免在布局容器上加 Description,装饰性分组用 ExcludedWithChildren 隐藏;状态变化调用 SemanticScreenReader.Announce,导航或报错后用 SetSemanticFocus;交互控件设置 TabIndex 保证逻辑顺序;最后用 TalkBack、VoiceOver、Narrator 实测朗读顺序与操作。
适用场景:MAUI 页面无障碍审计与改造。限制:资料未提供安装命令、版本要求或收费信息。