【问题标题】:Screenreaders 'skip to main content' function in angularjsangularjs中的屏幕阅读器“跳到主要内容”功能
【发布时间】:2021-01-01 01:15:25
【问题描述】:

正如标题所述,我需要一个与以下引导程序 sn-p 具有相同结果的函数。焦点部分的显示效果很好,但是在单击按钮时滚动到“主要内容”在 angularjs 中不起作用。

 <body>
      <a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
      ...
      <div class="container" id="content" tabindex="-1">
        <!-- The main page content -->
      </div>
 </body>

我了解理论上需要什么,但我是 angularjs 的新手,我不完全确定如何处理这个问题。

  1. “显示主要内容”按钮最初将设置为 position: absolute; left: -9999; 以隐藏视图。
  2. 在键盘焦点上,按钮将被设置为position: static,这将在页面上显示该按钮。
  3. 点击后,用户将被带到页面的“主要内容”部分,使用类似 $anchorScroll();我在这里找到https://docs.angularjs.org/api/ng/service/$anchorScroll

我想我在这里真正的问题是,将焦点上的两个功能结合起来,点击时执行此操作。

感谢任何帮助!

提前致谢。

【问题讨论】:

  • stackoverflow.com/a/62760090/2702894 展示了如何处理 CSS 方面的事情。您实际上不需要使用 angular,因为链接到相应锚点 &lt;div id="main"&gt;#main 会自动滚动页面。我链接的示例允许多个跳过链接。单击示例并按 Tab,将出现跳过链接。如果您只需要一个,则只需删除第二个跳过链接。如果你这样做,你也不需要tabindex="-1"
  • @GrahamRitchie 感谢您的回复。但是,主题标签会添加到 URL 的末尾,并且页面会在 angularjs 中重新加载。虽然 css 部分工作得很好,但这只是问题所在。

标签: javascript css angularjs twitter-bootstrap accessibility


【解决方案1】:

我找到了解决方法。事实证明,因为锚标签期待一个 href 它弄乱了焦点。将a标签改为按钮元素后,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2012-04-11
    相关资源
    最近更新 更多