使用 Dojo 开发支持 Accessibility 的 Web 应用
2009-11-05 00:00:00 来源:WEB开发网而这样的需求,很显然,只是简简单单的使用 HTML 语言规范中的 TabIndex 属性是做不到这一点的。我们必须拦截用户的键盘事件,来判断用户按的键值,并且根据不同的键值做出不一样的响应。
不幸的是,不同的浏览器对于用户按键的捕捉,键值的属性等等都各有差异,很难做到支持各种主流的浏览器,不过 Dojo 针对键盘事件的处理,尤其是在各种键值在浏览器中的属性的不一样,事件机制也有差异的情况下,进行了规范化,屏蔽了浏览器之间的差异性,用户可以在同一个 API 下面进行编程,大大提高了方便程度。
下面是一个简单的利用 Dojo 捕捉键盘事件,处理 Tab 导航的例子:
function onkey(evt){
var key = evt.keyCode;
if(key == dojo.keys.SHIFT_TAB)
{
dojo.stopEvent();
// 阻止事件的往上发布
// 定位到上一个需要定位的元素 prev
prev.focus();
}
else if(key == dojo.keys. TAB)
{
dojo.stopEvent();
// 阻止事件的往上发布
// 定位到下一个需要定位的元素 next
next.focus();
}
}
//利用dojo的事件挂接方法来处理键盘事件,用户按下任意键值,都将出发onKeyPress方法
dojo.connect(document, "onkeydown", "onkey");
使用其他键值进行辅助、快捷的操作
如果您使用过 Google Reader,一个在线的 RSS 内容阅读 Web 应用程序,您可能知道使用 "j" 键来打开下一条 RSS 的 Feed 内容,或者使用 "k" 键来打开上一条内容等等。这些键值不同于 Tab 键,Enter 回车键等 HTML 网页中具有某些默认行为的键值,他们是自定义的,换言之,不同的 Web 站点可能有不同的操作规范,但是不管怎么样,他们提供了除鼠标操作之外的另外一个方便快捷的途径,大大提高了 Web 应用程序的易用性。
更多精彩
赞助商链接