【发布时间】:2021-12-07 04:37:43
【问题描述】:
在努力使网站更易于访问时,我遇到了一个与大多数网站上都可用的“返回顶部”按钮有关的问题。我必须找到一个解决方案来滚动到顶部,然后将键盘焦点设置到页面顶部,这样用户就可以从顶部开始再次切换和导航。
首先,我直接在正文之后(以及在可访问的“跳转到内容”链接之前)添加了一个链接,该链接使用以下代码隐藏:
<body>
<a id="hidden-top-of-the-page-link" tabindex="-1"></a>
<a class="skip-to-content-link" tabindex="0" href="#main-content">Skip to content</a>
然后在我的“到顶部”按钮功能中,我在调用滚动事件后将此隐藏链接设为焦点。
$("#to_top").on("click", function () {
$("html, body").animate({scrollTop: $("html").offset().top}, 500);
$("#hidden-top-of-the-page-link").focus();
});
这个解决方案似乎很好用,虽然感觉很hacky。我真正想做的是“重置”页面上的键盘位置,并想知道是否有人知道这样做的好方法/最佳实践方法。
提前谢谢大家。
注意: 首先查看问题how to set focus on top of the page,但所有答案都集中在滚动上,这不是我需要帮助的。
【问题讨论】:
-
在 Firefox 中你可以使用
document.documentElement.focus(),但显然,这只适用于 Firefox... -
你说要“重置页面上的键盘位置”是什么意思?您的意思是您只想让键盘焦点位于不可见的链接元素#hidden-top-of-page-link 上?还是您希望键盘焦点位于 HTML 标签上?
-
@George,我认为
#hidden-top-of-page-link是将键盘焦点放在顶部的解决方法。 OP 宁愿不必这样做,而是希望“将焦点放在顶部,就好像页面是新加载的一样”。 -
是的,@slugolicious 我的解决方法确实可以完成这项工作,但如果有内置的东西会很棒。
标签: javascript html jquery user-interface accessibility