【发布时间】:2017-05-19 22:38:34
【问题描述】:
We are building a 508 compliant WPF application and testing it with JAWS 18, and one thing we found was that TextBlocks in every cell of the same Grid are being read off back to back when the first item is selected.此外,如果您使用 'shift' + 'tab' 向后移动选择,它也不起作用,只有当您单独使用 'tab' 并向前移动时。我通过在列和行中创建一个带有 Grid 和 TextBlocks 的示例应用程序并选择左上角的单元格来测试它是否是 Grids 的某种属性,但这并没有让 JAWS 读取 Grid 上的所有项目。所以我不认为它是 WPF 中 Grid 的一般属性。我想禁用此功能。
<ScrollViewer>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/> //More of these
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="0"
Grid.Column="0"
Style="{StaticResource FacilityDetailsStackPanelStyle}"
Visibility="{Binding SelectedContact.FirstName, Converter={StaticResource StringToVisibilityConverter}}">
<TextBlock Text="{Binding Source={StaticResource ApplicationSettings}, Path=ContactNameLabelText}"/>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="SelectedContact.FirstName"/>
<Binding Path="SelectedContact.LastName"/>
</MultiBinding>
</TextBlock.Text>
<AutomationProperties.Name>
<MultiBinding StringFormat="{}{0} {1} {2}">
<Binding Source="{StaticResource ApplicationSettings}" Path="ContactNameText"/>
<Binding Path="SelectedContact.FirstName"/>
<Binding Path="SelectedContact.LastName"/>
</MultiBinding>
</AutomationProperties.Name>
</TextBlock>
</StackPanel>
<StackPanel Grid.Row="1"
Grid.Column="0"
Style="{StaticResource FacilityDetailsStackPanelStyle}"
Visibility="{Binding Path=SelectedContact.JobTitle, Converter={StaticResource StringToVisibilityConverter}}">
<TextBlock Text="{Binding Source={StaticResource ApplicationSettings}, Path=ContactJobTitleLabelText}"/>
<TextBlock Text="{Binding SelectedContact.JobTitle}">
<AutomationProperties.Name>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Source="{StaticResource ApplicationSettings}" Path="ContactJobTitleText"/>
<Binding Path="SelectedContact.JobTitle"/>
</MultiBinding>
</AutomationProperties.Name>
</TextBlock>
</StackPanel>
<Grid/> //After all the same type of StackPanel/TextBlock structure.
<ScrollViewer/>
SelectedContact 是一个联系人业务类,通过绑定到 DataGrid 上的 SelectedItem 属性来选择,其中 ItemsSource 是联系人对象的列表。
网格被包裹在一个 ScrollViewer 中,但我将其注释掉了,并且该函数没有任何更改。 编辑:注释掉 ScrollViewer 的功能没有变化,但在所说的 ScrollViewer 中添加 AutomationProperties.Name 即可解决问题。
【问题讨论】:
标签: wpf xaml jaws-screen-reader