虽然有许多浏览器扩展程序和小书签以纯 HTML 源代码中定义的方式显示标题大纲,但没有一个(据我所知)以与屏幕阅读器相同的方式显示大纲(其中实际上是我们大多数时候感兴趣的东西)。
一些背景知识:为了在网页中保持良好的可访问性,整个网页必须以有效且有意义的标题结构进行组织。这可能如下所示:
H1 Navigation
H1 Content: Here comes the "real" title and content of the current page
H2 Content sub section 1
H2 Content sub section 2
H3 Content sub section 2.1
etc.
H1 Related
H2 News
H3 News 1
H3 News 2
H3 News 3
通常,在图形设计中,许多标题都被省略(例如导航或相关),它们的含义通过页面的图形结构传递。尽管如此,非图形用户代理(例如屏幕阅读器)依赖于这些标题,因此它们应该仍然存在于 HTML 源代码中,并且仅对图形用户代理(“普通”网络浏览器)隐藏。
现在,有两种方法可以从网页中以视觉方式隐藏某些内容:
首先,我们可以使用 CSS 属性 display: none 或 visibility: hidden。有些人不知道的是:使用这些属性,屏幕阅读器也可以省略隐藏内容。因此,这不是隐藏屏幕阅读器仍应看到的内容的好方法,因此不是适合我们目的的隐藏标题的方法。
第二种方法是将要隐藏的内容移出视口。这通常由position: absolute, left: 10000px, width: 1px; height: 1px; overflow: hidden 之类的东西完成(网上有很多变体,但基本上都是一样的)。因此,通常您使用上述属性定义一个 CSS 类,如 .visually_hidden,并将该类分配给您想要直观地隐藏的标题(但不是来自屏幕阅读器)。
H1 Navigation.visually_hidden
H1 Content
H2 Content sub section 1
H2 Content sub section 2
H3 Content sub section 2.1
etc.
H1 Related.visually_hidden
H2 News
H3 News 1
H3 News 2
H3 News 3
现在,回到原来的话题!
如前所述,上述标题概述工具/扩展都不区分视觉元素和完全隐藏的元素(事实上,它们根本不关心 CSS)!所以它们只在有限的范围内有用。 (如果我错了,或者如果有人知道实现此功能的扩展,请纠正我。)
如果您需要以屏幕用户通过屏幕阅读器感知的方式查看标题轮廓,您必须自己安装屏幕阅读器(例如免费的 NVDA)并使用其内部标题轮廓。
更新
似乎 Internet Explorer 的 Web 可访问性工具栏在其“结构 => 标题结构”功能中尊重了上述显示/可见性 CSS 属性,因此它似乎适合以实际方式显示标题层次结构。