我们有带有自定义Listview控件的Windows窗体,并且所有的行和子项都使用draw()方法呈现。现在,我们要使我们的应用程序可访问性兼容,并且诸如Narrator / NVDA工具之类的屏幕阅读器不会读取Listview项。在选择行时,应仅在读取“选定项目”的地方读取“选定项目0列文本”的工具。
我们尝试将“名称”属性设置为列值,还尝试将“ AccessibleName”属性设置为无效。 我们在第一列绘制图标的地方,曾尝试删除图标列但没有运气。
使用反射添加属性后,使用“ Inspect.exe”工具观察UI时,属性值在其中显示为空字符串。
public class QueueListItem : ListViewItem
{
public QueueListItem(){
Type type = this.GetType();
PropertyInfo property = type.GetProperty("AccessibleName");
property.SetValue(this, "Test QueueListView Item", null);
}
}
有人可以帮助我们指导最佳方法吗?屏幕阅读器工具在选择时应至少读取第一列的值。