<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false" />
</runtime>
</configuration>
Windows Workflow Foundation (WF) 工作流设计器
.NET Framework 4.8 中的工作流设计器包含以下更改:
使用讲述人的用户将体验到 FlowSwitch 事例标签的改进。
使用讲述人的用户将体验到按钮描述的改进。
选择高对比度主题的用户将看到工作流设计器及其控件可见性方面的改进,例如元素间的对比度效果更好和用于焦点元素的更明显的选择框。
如果应用程序面向 .NET Framework 4.7.2 或更早版本,则可以通过在应用程序配置文件中将Switch.UseLegacyAccessibilityFeatures.3
AppContext 开关设置为 false
来选择这些更改。 有关详细信息,请参阅本文中的利用辅助功能改进部分。
.NET Framework 4.7.2 中辅助功能的新增功能
.NET Framework 4.7.2 在以下几个领域包含新增辅助功能:
Windows 窗体
Windows Presentation Foundation (WPF)
高对比度主题中的 OS 定义的颜色
自 .NET Framework 4.7.2 起,Windows 窗体使用高对比度主题中的操作系统定义的颜色。 这会影响以下控件:
ToolStripDropDownButton 控件的下拉箭头。
FlatStyle 设为 FlatStyle.Flat 或 FlatStyle.Popup 的 Button、RadioButton 和 CheckBox 控件。 以前,所选文本和背景颜色对比度低,难以阅读。
Enabled 属性设为 false
的 GroupBox 中所包含的控件。
在高对比度模式下,ToolStripButton、ToolStripComboBox 和 ToolStripDropDownButton 控件的亮度对比度提高。
DataGridViewLinkCell 的 LinkColor 属性。
讲述人改进
自 .NET Framework 4.7.2 起,讲述人支持在以下几个方面改进:
它在公布 ToolStripMenuItem 的文本时会公布 ToolStripMenuItem.ShortcutKeys 属性的值。
当 ToolStripMenuItem 的 Enabled 属性设置为 false
时,它会有所指示。
当 ListView.CheckBoxes 属性设置为 true
时,它会针对复选框的状态给出反馈。
讲述人扫描模式焦点顺序与 ClickOnce 下载对话框窗口中控件的视觉顺序一致。
DataGridView 改进
自 .NET Framework 4.7.2 起,DataGridView 控件引入了以下辅助功能改进:
可以使用键盘对行进行排序。 用户可使用 F3 按当前列排序。
可使用 Alt + 向左键/向右键来增加或减少当前单元格的列宽。
若 DataGridView.SelectionMode 设置为 DataGridViewSelectionMode.FullRowSelect,当用户按 Tab 键遍历当前行中的单元格时,列标题将更改颜色来指示当前列。
System.Windows.Forms.DataGridViewLinkCell.DataGridViewLinkCellAccessibleObject 的 AccessibleObject.Parent 属性返回正确的父控件。
改进了视觉提示
具有空 Text 属性的 RadioButton 和 CheckBox 控件在接收到焦点时会显示焦点指示器。
改进了属性网格支持
现在,仅在 PropertyGrid 元素启用时,PropertyGrid 控件子元素才会为 IsReadOnlyProperty 属性返回 true
。
仅在用户可更改 PropertyGrid 元素时,PropertyGrid 控件子元素才会为 IsEnabledProperty 属性返回 false
。
改进了的键盘导航
ToolStripButton 控件允许在焦点包含在 ToolStripPanel(其 TabStop 属性设置为 true
)中时进行聚焦
Windows Presentation Foundation (WPF)
对复选框和单选按钮控件的更改
在 .NET Framework 4.7.1 和更低版本中,WPF System.Windows.Controls.CheckBox 和 System.Windows.Controls.RadioButton 控件不一致且在经典和高对比度主题中具有不正确的焦点视觉对象。 控件没有内容集时会出现这些问题。 这会使得主题间的转换变得混乱且难以看到焦点视觉对象。
现在,在 .NET Framework 4.7.2 中,主题间的这些视觉对象更加一致,并且在经典和高对比度主题中更轻松可见。
在 WPF 应用程序中托管的 WinForms 控件
对于 .NET Framework 4.7.1 和更低版本中的 WPF 应用程序托管的 WinForms 控件,如果该层中的第一个或最后一个控件是 WPF ElementHost 控件,那么用户不能按 Tab 退出 WinForms 层。 现在,在 .NET Framework 4.7.2 中,用户能够按 Tab 退出 WinForms 层。
但是,依赖于永不转义 WinForms 层的焦点的自动化应用程序不再会按预期工作。
.NET Framework 4.7.1 中辅助功能的新增功能
.NET Framework 4.7.1 在以下几个领域包含新增辅助功能:
Windows Presentation Foundation (WPF)
Windows 窗体
ASP.NET Web 控件
.NET SDK 工具
Windows Workflow Foundation (WF) 工作流设计器
Windows Presentation Foundation (WPF)
屏幕阅读器改进
如果启用了辅助功能改进,.NET Framework 4.7.1 包括以下可影响屏幕阅读器的增强功能:
在 .NET Framework 4.7 及更低版本中,Expander 控件由屏幕阅读器宣称为按钮。 从 .NET Framework 4.7.1 开始,它们被正确地称为可展开/可折叠组。
在 .NET Framework 4.7 及更低版本中,DataGridCell 控件由屏幕阅读器宣称为“自定义”。 从 .NET Framework 4.7.1 开始,它们被正确地称为数据网格单元格(已本地化)。
从 .NET Framework 4.7.1 开始,屏幕阅读器宣布可编辑 ComboBox 的名称。
在 .NET Framework 4.7 及更低版本中,PasswordBox 控件被宣称为“视图中没有任何项”或有其他错误行为。 此问题已在 .NET Framework 4.7.1 及更高版本中解决。
UIAutomation LiveRegion 支持
屏幕阅读器(如讲述人)可帮助用户阅读应用程序的 UI 内容,通常通过具有焦点的 UI 内容的文本到语音转换输出实现。 但是,如果 UI 元素更改,并且不具有焦点,则用户可能不会收到通知,并且可能会错过重要信息。 活动区域旨在解决此问题。 开发人员可使用它们来通知屏幕阅读器或任何其他 UIAutomation 客户端 UI 元素有重要更改。 然后,屏幕阅读器可确定向用户通知此更改的方式和时间。
为了支持活动区域,向 WPF 添加了以下 API:
AutomationElementIdentifiers.LiveSettingProperty 和 AutomationElementIdentifiers.LiveRegionChangedEvent 字段,用于标识 LiveSetting 属性和 LiveRegionChanged 事件。 可通过使用 XAML 来进行设置。
AutomationProperties.LiveSetting 附加属性,用于向屏幕阅读器通知 UI 更改对用户的重要性。
AutomationProperties.LiveSettingProperty 属性,用于标识 AutomationProperties.LiveSetting 附加属性。
AutomationPeer.GetLiveSettingCore 方法,可替代该方法以提供 LiveSetting 值。
AutomationProperties.GetLiveSetting 和 AutomationProperties.SetLiveSetting 方法,用于获取和设置 LiveSetting 值。
System.Windows.Automation.AutomationLiveSetting 枚举,用于定义以下可能的 LiveSetting 值:
AutomationLiveSetting.Off. 如果活动区域的内容已更改,则该元素不会发送通知。
AutomationLiveSetting.Polite. 如果活动区域的内容已更改,则该元素将发送非中断通知。
AutomationLiveSetting.Assertive. 如果活动区域的内容已更改,则该元素将发送中断通知。
可通过对相关元素设置 AutomationProperties.LiveSetting 属性来创建 LiveRegion,如以下示例所示:
<TextBlock Name="myTextBlock" AutomationProperties.LiveSetting="Assertive">announcement</TextBlock>
活动区域中的数据发生更改,并且需要通知屏幕阅读器时,可显式引发事件,如以下示例所示。
var peer = FrameworkElementAutomationPeer.FromElement(myTextBlock);
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
Dim peer = FrameworkElementAutomationPeer.FromElement(myTextBlock)
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged)
从 .NET Framework 4.7.1 开始,对多种 WPF 控件进行了高对比度改进。 可在设置 HighContrast 主题后看到这些改进。 这些方法包括:
Expander 控件
Expander 控件的焦点视觉对象现在可见。 ComboBox、ListBox 和 RadioButton 控件的键盘视觉对象也可见。 例如:
CheckBox 和 RadioButton 控件
在高对比度主题下选中时,CheckBox 和 RadioButton 控件中的文本更易于查看。 例如:
ComboBox 控件
从 .NET Framework 4.7.1 开始,已禁用的 ComboBox 控件的边框与禁用的文本颜色相同。 例如:
此外,已禁用的按钮和具有焦点的按钮使用正确的主题颜色。
最后,在 .NET Framework 4.7 及更低版本中,将 ComboBox 控件的样式设置为 Toolbar.ComboBoxStyleKey
会导致下拉箭头不可见。 此问题已在 .NET Framework 4.7.1 及更高版本中解决。 例如:
DataGrid 控件
从 .NET Framework 4.7.1 开始,DataGrid 控件中的排序指示符箭头现在使用正确的主题颜色。 例如:
此外,在 .NET Framework 4.7 及更低版本中,在高对比度模式下,默认链接样式在鼠标悬停在其上时更改为不正确的颜色。 此问题已在 .NET Framework 4.7.1 及更高版本中解决。 同样,从 .NET Framework 4.7.1 开始,DataGrid 复选框列对键盘焦点反馈使用预期的颜色。
有关 .NET Framework 4.7.1 中 WPF 辅助功能改进的详细信息,请参阅 WPF 辅助功能改进。
在 .NET Framework 4.7.1 中,Windows 窗体 (WinForms) 包括以下几个方面的辅助功能改进。
改进了高对比度模式下的显示
从 .NET Framework 4.7.1 开始,多种 WinForms 控件改进了高对比度模式下在操作系统中的呈现方式。 Windows 10 更改了一些高对比度系统颜色的值,而 Windows 窗体基于 Windows 10 Win32 框架。 为获得最佳体验,请运行最新版本的 Windows,并通过在测试应用程序中添加 app.manifest 文件选择使用最新的 OS 更改,同时取消注释 Windows 10 支持的 OS 行,最终结果如下所示:
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
高对比度更改的一些示例包括:
MenuStrip 项中的复选标记更易于查看。
选中后,禁用的 MenuStrip 项更易于查看。
所选 Button 控件中的文本与选中颜色形成鲜明对比。
禁用的文本更易于阅读。 例如:
“线程异常”对话框中的高对比度改进。
改进了讲述人支持
.NET Framework 4.7.1 中的 Windows 窗体对讲述人进行了以下辅助功改进:
讲述人以及其他 UI 自动化工具可访问 MonthCalendar 控件。
当某个项的选中状态更改时,CheckedListBox 控件会通知讲述人,因此用户可获知更改了列表项的值。
DataGridViewCell 控件向讲述人报告正确的只读状态。
讲述人现在可以阅读已禁用的 ToolStripMenuItem 文本,而以前它会跳过禁用的菜单项。
增强了对 UIAutomation 辅助功能模式的支持
从 .NET Framework 4.7.1 开始,辅助功能技术工具的开发人员可以利用常见的 API 辅助功能模式和多个 WinForms 控件的属性。 这些辅助功能改进包括:
ComboBox 和 ToolStripSplitButton 现在支持展开/折叠模式。
DataGridViewCheckBoxCell 现在支持切换模式。
ToolStripItem 控件支持 Name 属性和展开/折叠模式。
NumericUpDown 和 DomainUpDown 控件支持 Name 属性。
改进了属性浏览器体验
从 .NET Framework 4.7.1 开始,Windows 窗体包括以下改进:
更好地通过各种下拉选择窗口使用键盘导航。
减少不必要的制表位。
更好地报告控件类型。
改进了讲述人行为。
ASP.NET Web 控件
自 .NET Framework 4.7.1 和 Visual Studio 2017 版本 15.3 起,ASP.NET 改进了 ASP.NET Web 控件与 Visual Studio 中的辅助功能技术配合使用的方式。 包括以下更改:
在以下控件中实现缺失 UI 的辅助功能模式:例如“详细信息视图”向导中的“添加字段”对话框或“ListView”向导的“配置 ListView”对话框 。
改善在高对比度模式下(如“数据页导航字段编辑器”)的显示。
改善以下控件的键盘导航体验:例如 DataPager 控件的“编辑页导航字段”向导中的“字段”对话框、“配置 ObjectContext”对话框或“配置数据源”向导的“配置数据选择”对话框 。
配置编辑器工具 (SvcConfigEditor.exe) 和服务跟踪查看器工具 (SvcTraceViewer.exe) 通过修复各种辅助功能问题得到改进。 其中大多数都是一些小问题,如未定义名称或未正确实现某些 UI 自动化模式。 虽然许多用户不会意识到这些小问题的重要性,但使用屏幕阅读器等辅助技术的客户会发现这些 SDK 工具更易于访问。
这些改进更改了某些旧行为,例如键盘焦点顺序。
Windows Workflow Foundation (WF) 工作流设计器
工作流设计器中的辅助功能更改包括:
某些控件中 Tab 键顺序更改为从左到右以及从上到下:
设置 InitializeCorrelation 活动相关数据的初始化相关窗口。
Receive、Send、SendReply 和 ReceiveReply 活动的内容定义窗口。
通过键盘可以使用更多功能:
编辑活动的属性时,属性组在第一次聚焦时可以通过键盘折叠。
警告图标可以通过键盘访问。
“属性”窗口的“更多属性”按钮可以通过键盘访问 。
键盘用户可以访问工作流设计器“参数”和“变量”窗格的标题项 。
提升了聚焦项的可见性,例如当:
将行添加到工作流设计器和活动设计器使用的数据网格。
在 ReceiveReply 和 SendReply 活动中按 Tab 键切换字段。
设置变量或自变量的默认值
屏幕读取器现在可以正确识别:
工作流设计器中设置的断点。
FlowSwitch<T>、FlowDecision 和 CorrelationScope 活动。
Receive 活动的内容。
InvokeMethod 活动的目标类型。
TryCatch 活动中的“异常”组合框和“最终”部分。
消息传递活动(Receive、Send、SendReply 和 ReceiveReply)中的“消息类型”组合框、“添加相关初始化表达式”窗口中的拆分器、“内容定义”窗口和“CorrelatesOn 定义”窗口。
状态机转换和转换目标。
FlowDecision 活动上的注释和连接器。
活动的上下文(右键单击)菜单。
属性值编辑器、“清除搜索”按钮、“按类别”和“按字母顺序”排序按钮以及属性网格中的“表达式编辑器”对话框。
工作流设计器中的缩放百分比。
Parallel 和 Pick 活动中的分隔符。
InvokeDelegate 活动。
字典活动(Microsoft.Activities.AddToDictionary<TKey,TValue>
、Microsoft.Activities.RemoveFromDictionary<TKey,TValue>
等)的“选择类型”窗口。
“浏览和选择 .NET 类型”窗口。
工作流设计器中的痕迹导航。
选择高对比度主题的用户将看到工作流设计器及其控件可见性的许多改进,例如元素间更好的对比度和焦点元素更明显的选择框。
.NET Framework 的新增功能