屏幕阅读器无法访问 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",但它不会读取其中的任何列或行按 Tab 键并使用箭头键导航。我应该怎么做才能让 JAWS 和其他屏幕 readers 访问 wsGrid?
不幸的是,这不是一项微不足道的任务。您需要更改 wxGridWindow
以派生自 wxWindowAccessible
并实现其虚拟方法,以便在 Windows 下工作。目前 wxWidgets 中的其他平台完全没有可访问性支持。
考虑:
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",但它不会读取其中的任何列或行按 Tab 键并使用箭头键导航。我应该怎么做才能让 JAWS 和其他屏幕 readers 访问 wsGrid?
不幸的是,这不是一项微不足道的任务。您需要更改 wxGridWindow
以派生自 wxWindowAccessible
并实现其虚拟方法,以便在 Windows 下工作。目前 wxWidgets 中的其他平台完全没有可访问性支持。