Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在屏幕阅读器可以使用JavaScript或CSS阅读网站内容之前删除网站内容。。。?_Javascript_Css_Drupal_Screen Readers - Fatal编程技术网

在屏幕阅读器可以使用JavaScript或CSS阅读网站内容之前删除网站内容。。。?

在屏幕阅读器可以使用JavaScript或CSS阅读网站内容之前删除网站内容。。。?,javascript,css,drupal,screen-readers,Javascript,Css,Drupal,Screen Readers,我负责这个网站-[编辑:我已经删除了输入菜单]-我们是盲人阅读服务,所以我们需要这个网站对屏幕阅读器非常好 该网站由一所大学托管,我们使用他们的Drupal模板,该模板在页面顶部包含一个大学范围的菜单(电子邮件、黑板等,以及一个非常大的目录菜单) 我们需要从网站上删除菜单,这样屏幕阅读器就不会开始阅读它(这是一个非常大的菜单) 我有CSS和Javascript权限,但没有PHP权限 实现这一目标的最佳方式是什么?屏幕阅读器是否会使用style=“display:none”阅读某些内容?我认为这比

我负责这个网站-[编辑:我已经删除了输入菜单]-我们是盲人阅读服务,所以我们需要这个网站对屏幕阅读器非常好

该网站由一所大学托管,我们使用他们的Drupal模板,该模板在页面顶部包含一个大学范围的菜单(电子邮件、黑板等,以及一个非常大的目录菜单)

我们需要从网站上删除菜单,这样屏幕阅读器就不会开始阅读它(这是一个非常大的菜单)

我有CSS和Javascript权限,但没有PHP权限

实现这一目标的最佳方式是什么?屏幕阅读器是否会使用
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。。。