万博体育官网网址 Javascript
其他问题

动态内容和可访问性

CSS和JavaScript有时用于根据用户输入或预编程命令显示,隐藏或移动信息这有时称为动态HTML(DHTML)大多数下拉菜单或飞出菜单或其他类型的丰富交互都涉及脚本因为大多数这些元素都是基于鼠标输入进行修改的,所以它们通常用于不使用鼠标的用户使用动态内容和交互时,必须评估两个项目以确定其对可访问性的影响:

  1. Is the event used to trigger a change device independent? If the mouse is required, then it is not fully 万博体育官网网址.
  2. Is the dynamic content or functionality itself 万博体育官网网址? If assistive technologies cannot adequately access dynamically triggered content or functionality, then it is not fully 万博体育官网网址.

JavaScript生成的内容

JavaScript生成的内容,例如通过文件撰写或其他功能一般是辅助技术In some cases, however, if the dynamic content is constantly changing or if it changes while the user is reading it or has set focus to it, this can interfere with navigation or browser functionality and cause accessibility problems例如,如果具有键盘焦点的元素显着更改,隐藏或从页面中删除,键盘焦点可能会恢复到页面的最开头。

使用动态信息时,您必须首先询问自己是否对页面的功能或内容有必要且至关重要如果是这样,通常有一种方法可以在不使用JavaScript的情况下提供内容例如,确保通过用户命令或交互生成动态内容,而不是自动或随机生成,可以确保内容在聚焦或被读取时不会改变。

此外,有时动态内容需要接收键盘焦点例如,出现的对话框可能需要重点关注(使用JavaScript焦点())它似乎确保它被导航或立即阅读可能需要其他技术来确保这些动态元素的可访问性 - 例如,可能需要对模态对话框进行编程以保持键盘焦点(而不是将焦点放在页面中不可用的其他部分)。

弹出窗口

弹出窗口提供了一个独特的可访问性问题首先,除极端情况外,大多数可用性专家都反对使用弹出窗口对于可视用户,可能难以注意并导航到新窗口或选项卡对于正在使用辅助技术的人来说,新窗口可能会令人烦恼并且令人困惑,因为链接的默认行为已被修改JavaScript实现可能使新窗口难以或不可能使用屏幕放大器调整大小或缩放对于盲人,通常会显示新窗口已打开,但是返回原始页面可能会很麻烦当屏幕阅读器用户通过选择后退按钮尝试返回上一页时,发现这不起作用可能会令人困惑。

使用JavaScript打开新窗口时,可以修改新窗口的大小和位置您还可以添加或删除窗口的功能,例如调整大小,显示滚动条,显示工具栏等功能更改浏览器窗口的默认行为时要非常小心如果用户视力低下并且必须放大内容,那么一个无法放大且不显示滚动条的小窗口将非常有用。有运动障碍的人可能依靠大型工具栏来准确控制网络浏览器,因此删除或修改它们可能会给这个用户带来困难。

正如您所看到的,通过使用弹出窗口在可用性和可访问性方面存在许多困难在决定使用它们时必须小心如果使用它们,对您的实施进行全面的用户测试对于确保可访问性至关重要通常最好提醒用户打开弹出窗口这一事实。

重定向和刷新浏览器Windows

当浏览器正在查看的页面突然改变或刷新时,查看该页面的人可能会迷失方向或混淆,特别是如果该人正在使用辅助技术这通常在页面内容被移动或更新时使用页面重定向,或者使用脚本或的<meta>标签自动刷新页面可访问性指南要求用户可以控制时间敏感的内容更改如果没有先提醒用户发生更改并让他/她能够禁用或推迟更改,或者更好地让用户完全控制页面更改或重定向,请不要自动更改或刷新浏览器窗口。

使用纯CSS作为JavaScript替代品

如前所述,级联样式表(CSS)参数通常使用JavaScript进行修改,以创建动态变化的内容但是,许多通常由JavaScript控制的动态功能现在可直接在CSS本身的规范中使用这允许构建交互式和动态导航和布局元素,而无需JavaScript事件您可以在网站中创建下拉菜单,交互式图像,动画和其他令人兴奋的功能,而无需担心设备相关的事件处理程序。

重要的是要注意CSS是用于视觉样式因此,屏幕阅读器很大程度上忽略了CSS它通常不应该用于呈现内容或功能,至少在没有确保内容或功能完全的情况下是完全的。单独使用CSS生成动态内容只应在各种浏览器和屏幕阅读器中进行大量测试。