路口观察器和辅助功能

问题描述 投票:0回答:1

我在客户的站点上使用 Intersection Observer 来延迟加载页面的昂贵部分,直到用户将它们部分滚动到视图中。

例如,HTML 可能如下所示:

<html>

<body>
    <header>
        <h1>Page Title</h1>
    </header>
    <section aria-labelledby="section-1-title">
        <h2 id="section-1-title">Section One Title</h2>
        <p>Lorem ipsum, dolor sit amet...</p>
    </section>
    <section aria-labelledby="section-2-title">
        <h2 id="section-2-title">Section Two Title</h2>
        <p>Lorem ipsum, dolor sit amet...</p>
    </section>
    <section data-lazyload="true" aria-labelledby="section-3-title"> <!-- Clearly poor aria use here. Could use aria-label, but is that best? -->
        <!-- This content would be programmatically rendered once scrolled into view -->
    </section>
</body>

</html>

我的问题是:

  • 我应该考虑和准备哪些无障碍问题?

  • 这种延迟加载方法如何影响文档的辅助功能树?

  • 加载新内容后文档的辅助功能树是否刷新?

  • 我可以做些什么来更好地帮助辅助技术用户导航页面内容?

  • 是否有我应该学习的最佳实践或更多信息?

html accessibility intersection-observer
1个回答
0
投票

加载页面中昂贵的部分,直到用户将它们部分滚动到视图中。

我应该考虑和准备哪些无障碍问题?

屏幕阅读器用户通常不需要滚动页面来阅读更多内容。他们可以遍历整个 DOM(实际上是“可访问性树”,但与 DOM 类似)并听到整个页面。如果您在他们滚动之前不加载内容,则可能会非常混乱,除非他们收到有关该行为的通知。也就是说,屏幕阅读器用户可以通过页面上的所有标题进行导航,以了解页面结构,但如果某些标题在滚动到视图中之前才加载,则用户将无法获得完整的图片页面。

这种延迟加载方法如何影响文档的辅助功能树?

加载新内容后文档的辅助功能树是否刷新?

如果 DOM 发生变化,可访问性树将会更新。因此向页面添加新元素将会更新 a11y 树。如果你在一个元素上设置 CSS
display:none

,它将更新 a11y 树。如果更改 ARIA 属性的值,例如

aria-checked
,它将更新 a11y 树。

我可以做些什么来更好地帮助辅助技术用户导航页面内容?

如上所述,如果存在延迟加载,请确保用户知道它。

© www.soinside.com 2019 - 2024. All rights reserved.