WCAG 等可访问性标准的主要要求之一是网站或应用程序在不使用 javascript 的情况下显示或提供某种非 JS 替代方案。我做了一些初步研究,但找不到太多关于 websockets 的信息。我应该假设 websocket 的处理方式与 AJAX 类似吗?
2 回答
由于 Websockets 需要 JavaScript 来做任何有用的事情,如果您有一个要求您提供非 JavaScript 替代方案的标准,那么您将需要提供一个不使用 Websockets 的非 JavaScript 替代方案。是的,Websockets 就像 AJAX;它们实际上只是一种创建持久的双向连接的方法,而不是 AJAX 提供的一次性请求响应。您应该像对待 AJAX 一样对待它们。
虽然 WCAG 1.0 要求您提供 JavaScript 的替代方案,但 WCAG 2.0 更加技术中立;它不需要替代 JavaScript,而是提供了一组技术,使涉及客户端脚本的网页更易于访问。您应该记住,并非所有用户都启用了 JavaScript。仍然有一些用户更喜欢完全禁用或默认禁用它来浏览。但是今天的可访问性技术能够处理 JavaScript 的某些用途,因此即使没有非 JavaScript 后备,您也可以编写可访问的网站。
布赖恩的回答很好,但我想我会添加一些额外的见解。
这里实际上有两个问题:技术和合规性。
就合规性而言,如果出于某种原因您需要 WCAG 1.0,那么您需要一个非 JS 版本。因为 WCAG 1.0 是这么说的。过去,一些屏幕阅读器用户会禁用 JS,因为它会给屏幕阅读器带来问题,但这是几代前的技术。最近对网络屏幕阅读器用户的一项调查显示,98.6% 的用户启用了 Javascript。
就技术而言,Javascript 和可访问性的问题实际上与 Javascript 本身无关:可访问性问题与某些东西(通常是 Javascript)通过 DOM 操纵 UI的事实有关。可访问性存在问题的是对 UI 的操作;必须注意确保生成的 DOM 是可访问的,并且屏幕阅读器会适当地处理更改 - 例如,使用 ARIA 活动区域来确保屏幕阅读器将在适当的情况下读出新内容,或者键盘焦点不会消失,并且最终到达意想不到的地方。
任何根据定义几乎不会改变 UI 的 javascript 本身都不会存在可访问性问题:因此 Web 套接字、Web 工作者、本地存储等本身不会存在可访问性问题;重要的是您以后是否以及何时更新 DOM。