【问题标题】:Screen Reader reading disabled button's AutomationProperty.Id屏幕阅读器读取禁用按钮的 AutomationProperty.Id
【发布时间】:2019-03-18 23:37:51
【问题描述】:

我添加了一个简单的 WPF 窗口,其中有两个按钮。 这些按钮通过某种逻辑可见,并具有更改其VisibilityIsEnabled 属性的绑定。 现在,我正在使用 windows navigator 进行测试,并看到默认的 windows navigator 正在阅读有关按钮的信息,即使它们不可见。 当按钮被禁用或不可见时,我应该如何使屏幕阅读器(或 Windows 默认导航器)不读取该按钮?

<Button Margin="0,0,80,10" Height="25" HorizontalAlignment="Right" Name="failedButton" 
        VerticalAlignment="Bottom" Width="75" DataContext="{Binding InstallationViewModel}" 
        Command="{Binding Failed}" 
        Visibility="{Binding Failed, 
                             Converter={StaticResource BooleanToVisibilityConverter}}"
        Content="Failed?" />

【问题讨论】:

    标签: c# wpf button accessibility screen-readers


    【解决方案1】:

    自动化 api 读取提供自动化对等方的所有内容。因此,如果您不希望您的 ui 元素暴露给自动化客户端,您需要覆盖 OnCreateAutomationPeer 并返回 null。这意味着,您可以选择是否支持自动化,但不能在运行时更改它。

    【讨论】:

    • 根据您的建议,对于运行时更改,我不能使用RaisePropertyChanged 如此示例中所示CodeProjectExample 来更改启用或不启用自动化的元素吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2013-10-10
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多