Category

Archive for the 'Practical UE' Category

可访问的JavaScript原则

  • JavaScript可以增强可用性但是不要依赖JavaScript
  • Usability:容易使用。
    Accessibility:任何人都可以访问站点。

      使用JavaScript增强大多数用户的可用性,不要因此而给少数用户的可访问性带来负面影响。你可以退一步使用一个纯HTML页面或服务器端的方案来替代JavaScript带来的好处。

  • 提供一个无JavaScript替代
  •   这并不意味着使用通常的noscript标记,多数情况下你可以脱离noscript标记。

  • 避免貌似聪明的技巧
  •   不要使用滚动的或者经常动态变化的文本,这会使屏幕阅读器失去作用,这样视力障碍的人就无法访问了。
      避免使用闪烁的或持续移动的图片,这样会使用户无法集中注意力。更糟的是大块的闪烁区域会使用户产生反感情绪。

  • 不要对用户浏览器卡油
  •   

    • 永远不要使用用户没有同意的弹出窗口。
    • 不要调整窗口尺寸或移动窗口。
    • 如果要弹出窗口,事先告知用户。
    • 不要关闭弹出窗口的缩放和滚动条功能。
  • 考虑不同残障人士的需求。
  • Ajax应用程序的Accessibility

    怎样提高你的Ajax应用程序的Accessibility(之二)
    –Ajax应用程序的Accessibility
    原文

    什么是Ajax?

      Ajax是一份集合多种WEB技术的“瑞典式自助餐”,可以进行不刷新页面的客户-服务器动态交互。Ajax基于异步Javascript对XML调用。Ajax不是一种技术,而是多种技术的组合应用模式。Ajax使用下列技术:

    • (X)html和CSS建立用户界面,并且XHTML和CSS元素可以被通过DOM对象动态地改变,以显示新地信息和样式。
    • Javascript用来操纵页面元素,并通过XMLHttpRequest同WEB服务器进行通信,这样可以实现客户端和服务器间地数据传输,而不用刷新重载页面。

      使用Ajax可以进行高级的交互和数据处理,不需要通常的客户服务器交互步骤:

    • 显示一个网页。
    • 收集用户信息(通过表单、链接等)。
    • 用户提交信息(通过表单、链接等)。
    • 服务器处理信息。
    • 返回一个新页面给用户浏览器。

      有了Ajax,上面的步骤可以通过一个界面完成。这里有一些典型的Ajax应用:地图应用实时搜索聊天实时表单验证处理购物车程序邮件程序,应用列表还在增长中。Ajax类的应用使WEB进入了2.0时代,WEB2.0可以说是WEB应用方式的一种革命。随着Ajax的破土而出和广泛应用,给开发人员带来了相关的可访问性问题。

    为什么要Ajax?

      像上面提到的,Ajax允许丰富的、动态的页面应用程序,而不使用以往的“提交数据-获得页面”的方法。使用XMLHttpRequest,数据在后台传输,Javascript用来操作用户界面,显示动态数据。这样可以减少客户端和服务器间的数据传输,因为页面不需要重新生成并传输给客户端,所有的改变都在一个页面实现。JavaScript也可以实现更高级的交互操作,例如快捷键、托拽。

    为什么不要Ajax?

      Ajax不是所有的浏览器都支持,正像它的名字,Ajax需要Javascript,不支持Javascript的浏览器无法支持Ajax应用。Web Content Accessibility Guidelines也要求WEB应用在Javascript不被支持的时候能够完成必要的功能。浏览器还要支持XMLHttpRequest,否则无法获得XML数据。

      现在的解决方案是同时提供不支持Ajax的替换版本,保证不支持Javascript或XMLHttpRequest的浏览器能正确显示信息。这种要求通常无法实现。开发人员可能会要求用户使用支持AJAX的浏览器,但是这可能也是不容易的,尤其是使用移动设备和旧版本浏览器的用户。

      Ajax往往是动态操纵和更新页面元素。Ajax可以在用户没有操作或没有注意的情况下提交信息。例如,用户一项认为只有在自己点击蹄提交按钮后,表单才会被提交、校验,但是有了AJAX,可能在任何时候都可能有数据提交,例如在文本框失去焦点后的5秒钟。并且这种操作对用户来说不是显而易见的,尤其是在操作很快的情况下用户更加迷惑。多数用户认为在提交数据后到得到反馈会有一些延时,并且等待整个页面的刷新,有了AJAX就不会有这些情况。

      另一种情况是AJAX的引用程序界面如何更新。当界面被更新的时候可能不是很明显可以看出来,这种情况在使用屏幕阅读软件的用户中更为严重,因为屏幕阅读采用线性的方式阅读页面,当页面内容发生改变的时候,新内容可能不会被读到。

      简单地说,保证应用程序及时通知用户数据的改变,并保证程序的顺利进行。就现在的发展趋势AJAX还是很有前景的。相信从浏览器厂商到阅读器等应用厂商都会努力支持这种技术。

    Ajax和Accessibility的3个谬误

    怎样提高你的Ajax应用程序的Accessibility(之一)
    --Ajax和Accessibility的3个谬误
    原文

    谬误1:Accessibility是一个单纯问题

      可访问性的一个问题就是根本不存在联系的可访问性要求被混淆在一起当成一个概念来对待。视觉障碍的人同视觉正常的人或者有运动损伤的的人的可访问性需求是不同的。使用低速调制解调器的人同要求严格的网络安全的用户的需求是不同的。我们需要分别思考不同的需求… 分别的。

    谬误2:所有的Accessibility问题都要被修正

      我们对于那些残障人士的态度在Accessibility问题上应该是不同的。我们不管是从道德上还是法律上都不应该忽略盲人。我们要忽略那些钟爱Netscape 3并且不愿意去升级的人吗?现在是一个商业抉择,而不是一个道德或法律问题。可访问性的书籍提到了许多关于文本浏览器和小屏幕设备的Accessibility案例,我们不必要在所有的方面都花精力去做。

    谬误3:Javascript 在屏幕阅读器中不会正常工做

      绝大多数阅读程序都以插件的方式嵌入到IE或Firefox等浏览器中,对屏幕显示的东西进行阅读。 高级的阅读器可以使聆听者用键盘触发一个存在onclick或onmouseover事件的按钮。屏幕阅读器不会阅读已经阅读过的区域上生成的新的内容,这就是Ajax的最大的Accessibility问题,我们必须注意。
      DWR 1.1推出很好的解决了屏幕阅读器阅读Ajax生成的内容的问题。