使用JAWS无法访问ComboBox

时间:2017-03-02 09:05:02

标签: c# uwp accessibility jaws-screen-reader

当专注于ComboBox时,JAWS表示您可以使用键盘上的箭头键更改选择。但是当改变时,用户不会获得所选项目的音频反馈。

讲述人正确处理此事。

我试过了:

- 将AutomationProperties添加到组合框的Datatemplate:

<DataTemplate x:Name="ComboOCRLanguageTemplate" x:DataType="data:OCRLanguage">
        <TextBlock Text="{x:Bind Culture.DisplayName}" AutomationProperties.Name = "{x:Bind Culture.DisplayName}" TextTrimming="CharacterEllipsis" />
</DataTemplate>

创建自定义组合框以尝试使用实时区域:

class AccessibleComboBox: ComboBox
{
    public AccessibleComboBox()
    {
        AutomationProperties.SetLiveSetting(this, AutomationLiveSetting.Polite);
    }

    protected override void OnKeyDown(KeyRoutedEventArgs e)
    {
        base.OnKeyDown(e);
        if(e.Key == Windows.System.VirtualKey.Down || e.Key == Windows.System.VirtualKey.Up)
            RaiseLiveRegionEvent();
    }

    protected override void OnKeyUp(KeyRoutedEventArgs e)
    {
        base.OnKeyUp(e);
        if (e.Key == Windows.System.VirtualKey.Down || e.Key == Windows.System.VirtualKey.Up)
            RaiseLiveRegionEvent();
    }

    private void RaiseLiveRegionEvent()
    {
        if (FrameworkElementAutomationPeer.ListenerExists(AutomationEvents.LiveRegionChanged))
        {
            var AP = FrameworkElementAutomationPeer.CreatePeerForElement(this);
            AP.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
        }
    }

}

0 个答案:

没有答案