我目前正在为盲人制定一个计划。在我的程序中,我有几个使用SWT MessageDialog
或MessageBox
实现的对话框。
这适用于有视力的人或使用屏幕阅读软件的盲人。但是盲人使用可刷新的盲文显示器(只有文本,只有一行40个字符)在对话框中阅读短信有问题,因为对话框的焦点在按钮上,所以可刷新的盲文显示器显示文本按钮。盲人必须向上滚动才能找到短信。
有时候滚动很难,他们不得不抱怨。如果焦点在文本消息上会更好,然后他们可以在阅读文本时向下滚动,然后在结尾处是按钮文本。
如何使用SWT MessageDialog
或MessageBox
类来管理短信的焦点?
我不想创建自己的MessageDialog
类,因为我已经使用了SWT
库的几个选项。
答案 0 :(得分:1)
除了名称中的“消息”部分,MessageBox
和MessageDialog
根本不同。
MessageBox
是SWT的一部分,使用本机平台的组件来显示对话框,因此应用程序代码无法更改其行为。
MessageDialog
由JFace提供,可以自定义。如果您确实需要更改默认焦点行为,则应仅使用MessageDialog
。
要将焦点放在显示消息的标签上,您可以覆盖create()
,如下所示:
class MyMessageDialog extends MessageDialog {
@Override
public void create() {
super.create();
if( usingBraille ) {
messageLabel.forceFocus();
}
}
}