在屏幕阅读器可以使用JavaScript或CSS阅读网站内容之前删除网站内容。。。?
我负责这个网站-[编辑:我已经删除了输入菜单]-我们是盲人阅读服务,所以我们需要这个网站对屏幕阅读器非常好 该网站由一所大学托管,我们使用他们的Drupal模板,该模板在页面顶部包含一个大学范围的菜单(电子邮件、黑板等,以及一个非常大的目录菜单) 我们需要从网站上删除菜单,这样屏幕阅读器就不会开始阅读它(这是一个非常大的菜单) 我有CSS和Javascript权限,但没有PHP权限 实现这一目标的最佳方式是什么?屏幕阅读器是否会使用在屏幕阅读器可以使用JavaScript或CSS阅读网站内容之前删除网站内容。。。?,javascript,css,drupal,screen-readers,Javascript,Css,Drupal,Screen Readers,我负责这个网站-[编辑:我已经删除了输入菜单]-我们是盲人阅读服务,所以我们需要这个网站对屏幕阅读器非常好 该网站由一所大学托管,我们使用他们的Drupal模板,该模板在页面顶部包含一个大学范围的菜单(电子邮件、黑板等,以及一个非常大的目录菜单) 我们需要从网站上删除菜单,这样屏幕阅读器就不会开始阅读它(这是一个非常大的菜单) 我有CSS和Javascript权限,但没有PHP权限 实现这一目标的最佳方式是什么?屏幕阅读器是否会使用style=“display:none”阅读某些内容?我认为这比
style=“display:none”
阅读某些内容?我认为这比style=“可见性:隐藏”
要好。这应该输入到CSS文档中,还是通过javascript执行?Ala$('.ku菜单').display.toggle()代码>
谢谢 如果使用可见性:hidden
隐藏内容,屏幕阅读软件仍将拾取该内容,因此盲人用户不会真正“隐藏”该内容。要从DOM中完全删除菜单,可以执行以下操作:
纯JavaScript版本
document.getElementById("ku_main_nav").remove();
$("#ku_main_nav").remove();
jQuery版本
document.getElementById("ku_main_nav").remove();
$("#ku_main_nav").remove();
结果是,菜单不再可见,但更重要的是,它不再出现在DOM中:
在JS之前:
<div class="content clearfix" style="font-size: 14px !important; line-height: 16.8px !important;">
<ul class="inline-list" id="ku_main_nav" style="font-size: 14px !important; line-height: 28px !important;">
[...]
</ul>
</div>
[...]
在JS之后:
<div class="content clearfix" style="font-size: 14px !important; line-height: 16.8px !important;">
</div>
编辑:
添加了jQuery版本所以您不能更改模板?@epascarello不,我不能,这是Drupal多站点配置,我有用户访问Drupal网站的权限,但我没有服务器访问PHP文件的权限。多站点中的所有站点共享相同的模板文件,因此如果我在我们的站点上更改它,它将在所有站点上更改它,这将很好地回答您的问题。不要隐藏导航,这实际上会妨碍访问。尝试在没有鼠标/触摸屏的情况下使用该网站,以了解屏幕阅读器的行为。如果你真的隐藏了它,请确保使用ARIA attribs让需要的人知道发生了什么。谢谢@dandavis,但是已经有一个跳过导航链接,但是人们仍然在抱怨考虑一个建议,将书签改为,“可见性:隐藏;和/或显示:无;这些样式将对所有用户隐藏文本。文本将从页面的可视流中删除,并被屏幕阅读器忽略。如果您希望屏幕阅读器读取内容,请不要使用此CSS。“我使用的软件会将其拾取,可能值得对其进行测试。此外,如果您依赖JS来隐藏它,我建议您在$(文档)上执行此操作.ready
。您可以创建一个要更改的类/id数组,并在其中循环并设置样式。什么?显示:无
和可见性:隐藏
都会对屏幕阅读器隐藏文本。这在w3规范中。如果您的屏幕阅读软件不这样做,那么很多页面将无法显示正常工作。听起来你正在使用的软件有严重问题。document.getElementById(“ku_main\u nav”).remove()
更简洁,更不容易从树修剪中中断;一定会喜欢DOM4。。。