屏幕阅读器无法访问 wxWidgets 中的 wxGrid

wxGrid in wxWidgets not accessible in screen readers

考虑:

wxGrid* grid = new wxGrid(panel, -1, wxPoint( 0, 0 ), wxSize( 400, 300));
grid->CreateGrid( 5, 5);
grid->SetColLabelValue(0, _T("col0"));
grid->SetColLabelValue(1, _T("col1"));
grid->SetColLabelValue(2, _T("col2"));
grid->SetRowLabelValue(0, _T("ro0"));
grid->SetRowLabelValue(1, _T("ro1"));
grid->SetRowLabelValue(2, _T("ro2"));

当我 运行 我的项目时,屏幕 reader JAWS 似乎无法识别 wxGrid,它只显示 "Grid window",但它不会读取其中的任何列或行按 T​​ab 键并使用箭头键导航。我应该怎么做才能让 JAWS 和其他屏幕 readers 访问 wsGrid?

不幸的是,这不是一项微不足道的任务。您需要更改 wxGridWindow 以派生自 wxWindowAccessible 并实现其虚拟方法,以便在 Windows 下工作。目前 wxWidgets 中的其他平台完全没有可访问性支持。