当专注于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);
}
}
}