用途:帮助 MAUI 界面通过辅助技术可理解、可操作。无障碍元数据应在构建 UI 时加入,而非最后的美化步骤。
主要能力:使用 SemanticProperties.Description 添加无障碍名称,用 SemanticProperties.Hint 提供操作引导,用 SemanticProperties.HeadingLevel 标记页面与区块标题;从无障碍树中隐藏装饰性或重复内容;用 SemanticScreenReader.Announce 播报重要动态变化;在导航或验证后有意识地移动焦点;保留 AutomationId 用于测试但不得当作无障碍标签。
使用方式:先确定用户任务与目标控件,再按上述属性补充元数据。图标按钮示例:<ImageButton AutomationId="save-button" Source="save.png" SemanticProperties.Description="Save" SemanticProperties.Hint="Saves the current form" />。标题示例:<Label Text="Account settings" SemanticProperties.HeadingLevel="Level1" Style="{StaticResource TitleStyle}" />。装饰图片示例:<Image Source="card_background.png" AutomationProperties.IsInAccessibleTree="False" />。动态播报:SemanticScreenReader.Announce("Profile saved");。
适用场景:页面与区块标题、仅图标控件、装饰图片、动态验证/保存/导航结果、CollectionView 行、多个验证错误等。检查清单包括:仅图标控件有描述与必要提示;标题有层级;装饰与重复标签被隐藏;重要动态结果被播报;触控目标足够大且不拥挤;不只用颜色传递信息;AutomationId 不替代无障碍名称。
限制与注意事项:不同平台(Android TalkBack、iOS VoiceOver、macOS VoiceOver、Windows Narrator)读取提示与分组内容的方式不同,关键流程需在目标平台验证。Label 的 Text 已作为无障碍名称时不要再加 Description。避免过度播报,多个错误只播报汇总数量。不要用占位符文本作为唯一字段标签,不要将 AutomationId 用作无障碍名称,不要为缩短播报而隐藏真实交互内容。官方资料未提供具体版本、依赖或安装命令,暂未提供。