jquery - 如何淡入整个网页——可访问

标签 jquery accessibility progressive-enhancement

客户要求他们的主页开始为空白(仅可见 Logo 和背景图像),然后在一两秒后淡入导航和内容。

我可以从通过 CSS 隐藏的内容开始,然后使用 jQuery 淡入淡出。不幸的是,这违反了渐进增强:在事件代码运行之前,该网站将完全无法使用,从而给使用屏幕阅读器的视障人士带来问题。

我考虑过的两种解决方法是 Flash 和 <noscript>标签。 Flash 似乎有些过分了,因为网站的其他地方没有使用它;此外,主页内容丰富,有一组不断更新的新闻项目,有点像一个轻型博客。 <noscript>标签不会帮助使用屏幕阅读器的视障人士,因为他们的浏览器通常启用了脚本。

我是否缺少解决方案?或者这不是一个好主意?

最佳答案

执行以下操作

<html>
....
<body>
<script>$("body").addClass("hide");</script>
...

有了这个CSS

body.hide #myHidden-div{
  opacity: 0;
}

然后暂停两秒后,您应该能够执行 $("#myHidden-div").fadeIn();

如果用户禁用了 js,则 addClass标签永远不会被触发,并且不会隐藏任何内容。我认为您不需要使用 <noscript>根本没有标签。

您必须确保脚本标记位于 <body> 之后这样用户就不会看到内容跳转然后突然隐藏。这比默认情况下隐藏所有内容要好,因为某些搜索引擎可能会注意到您隐藏了文本并出于垃圾邮件原因而忽略它。

关于jquery - 如何淡入整个网页——可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042670/

相关文章:

javascript - jQuery.ajax 返回 jsonp 而不是 json

jquery - 向下滚动时删除粘性类?

ios - 有没有什么办法可以让 VoiceOver 按命令朗读标签?

accessibility - 屏幕阅读器忽略焦点事件

angularjs - 具有渐进增强功能的基于混合页面/单页的网络应用程序(Angularjs、Ember.js)?

javascript - Intranet 站点的 IE9 兼容模式具有错误的用户代理字符串

javascript - jQuery.validate 和隐藏输入

ios - 忽略 iOS 中的动态类型 : Accessibility

javascript - 这种浏览器技术有名称吗?

jquery - 首先加载内容的网页,然后通过延迟加载高分辨率图像交换来美化它?