Html &引用;元素的tabindex不应大于零非零索引中断验证&;508遵守

Html &引用;元素的tabindex不应大于零非零索引中断验证&;508遵守,html,css,accessibility,section508,Html,Css,Accessibility,Section508,我们正在运行一个名为“检查HTML页面的有效性和508符合性/可访问性”的工具 此错误被视为违规: 元素的tabindex不应大于零 该应用程序由顶部链接和导航栏组成。如果我们不放入tabindex,那么tabing将从这些元素开始。这个想法是在进入页面时直接点击表单输入。当然这是有道理的,应该被允许(即使是残疾用户)?那么为什么一个合法的用例会被标记 无论AXE怎么说,HTML中都允许tabindex大于零 但是,您使用tabindex的方式是向有视力的用户呈现信息,而这些信息基本上对无视

我们正在运行一个名为“检查HTML页面的有效性和508符合性/可访问性”的工具

此错误被视为违规:

元素的tabindex不应大于零

该应用程序由顶部链接和导航栏组成。如果我们不放入tabindex,那么tabing将从这些元素开始。这个想法是在进入页面时直接点击表单输入。当然这是有道理的,应该被允许(即使是残疾用户)?那么为什么一个合法的用例会被标记


无论AXE怎么说,HTML中都允许tabindex大于零

但是,您使用tabindex的方式是向有视力的用户呈现信息,而这些信息基本上对无视力的用户不可用,因为他们无法使用tab

更好的方法是使用隐藏的“”

这个想法很简单:在页面顶部提供一个链接,让用户跳转到主内容开头的锚或目标


对于有远见的用户来说,关注第一个可操作的元素是很好的,例如amazon.com上的搜索字段(尽管他们不这样做)。但是有眼光的用户可以快速浏览整个页面。他们可以看到焦点相对于页面其余部分的位置(假设您有一个焦点指示器),并且会立即知道焦点位置之前有导航元素,焦点位置之后有更多的东西可以交互

对于使用放大镜的低视力用户,他们的视口将被移动以包括具有焦点的元素。通常在加载页面时,焦点会转到DOM中可以接收焦点的第一个元素。通常在左上角有一个“家”的标志(例如)。由于视口位于左上角,低视力用户将知道他们可以向右或向下拖动视口以浏览页面的更多部分。但是如果最初的焦点是在页面中间的某个地方,那可能会迷失方向。用户可能不知道他们在页面上的位置。视口从左上角移动了多远?他们可以向上或向下、向左或向右探索多远

对于视力极低或视力受损或失明的用户,使用屏幕阅读器的用户,迷失方向的情况更为严重。屏幕阅读软件具有强大的导航工具,因此只要使用语义html元素(如或
    ),就可以轻松浏览页面的各种元素。您可以使用“H”键导航到标题,通过“T”键导航到表格,通过“L”键导航到列表。但同样,屏幕阅读器用户希望最初的焦点在左上角。他们当然可以确定自己的方向,并找出自己在页面上的位置,但这确实需要一些认知努力,类似于屏幕放大镜用户

    那么,您如何为所有这些类型的用户(以及许多其他类型的用户)提供愉快的体验呢

    作为一个答案,笔记“是非常方便的。在可访问性方面,这些被称为“”(2.4.1)。它们允许默认焦点位于左上角(或默认焦点所在的位置),当您进行制表时,焦点将移动到“跳过链接”,这是一个允许您跳转到页面主要部分的页内链接。这对于只使用键盘的用户(可能是视力或视力受损的用户)、屏幕放大镜用户和屏幕阅读器用户来说非常有用

    但是,如果确实希望焦点集中在某个特定元素上,如果该元素是or元素,则可以使用该属性。对于其他本机可聚焦的元素,例如“.”请注意,对于大于0的tabindex值,它表示:

    “强烈建议作者不要使用这些值。”


    这会导致可访问性方面的问题。我认为,因为每个tabindex都会被读取,请参见此处:显然,您应该只对第一个元素使用tabindex=“0”,然后在tabindex顺序中使用HTML DOM顺序(不专门设置tabindex)不幸的是,仅针对第一个标签,标签索引=0也不起作用。您发布的链接上写着:
    Setting tabindex=“0“将获取元素并使其可聚焦。它不设置元素在选项卡顺序中的位置,它只允许用户按照元素在DOM中的位置确定的顺序聚焦元素我试过了,但我仍然是第一个到达顶端的。