ARIA :如何专注于我想要的每一个元素?

ARIA : how to focus on every element I want?

我正在尝试通过 WAI-ARIA 和所有这些东西学习可访问性,但我真的迷路了,我去了 W3C 和 MDN 上的官方文档,但无法准确了解如何继续。


这是我的网站(不要介意左上角的蓝色和红色的东西,它是 NVDA 的焦点)。

我还不知道我是否在正确的轨道上,如何继续以及它是否是好方法,但我希望在输入文档时,当我按 TAB 键时,它会专注于标签,当我再次按 TAB 时,它会下降到 header,所以这里是 navbrand,然后是 navmenu,当我在 navmenu 上再次按 TAB 时,它会下降到它。事实上,我想要一种能够专注于“每个”重要部分的制表导航(这里:header,主要,页脚,主要的每个部分,部分的每个卡片,每个部分的每个文本卡等...)

为了让您直观地了解正在发生的事情,当我在文档的根目录并按下 TAB 键时,它将直接进入导航的第一个 link。

有人可以照亮我的路吗?我的计划好不好?如果是,如何进行? (即使不好,如何进行?)


非常感谢您的宝贵时间。


N.B.: 我听说使用 tab-index > 0 并尝试 tab-index = 0 甚至 -1 是不好的,但它不起作用,我不知道是否这是否是不好的做法,因为可能会破坏 DOM 命令或者我不知道...

一般来说,如果您使用语义 html(意思是当您有 table 时使用 <table> 元素,当您有列表时使用 <ul><h2> 当你有标题时,等等),那么你不需要任何 ARIA 属性。其实the first rule of ARIA就是不使用ARIA。

ARIA 应该只用于填补语义 html 不可用或有理由不能使用语义 html 的空白(例如出于样式目的,您必须使用 <div> 和 CSS 而不是原生 <button>).

但是,您的大部分问题都是关于 tabindex,从技术上讲,这不是 ARIA 属性。 Tabindex 已经存在很长时间了。 doc on tabindex解释了4种类型的值:

  • 没有价值
  • 负值
  • 0 值
  • 正值

除非您需要,否则我不会解释差异,因为在您的情况下,您根本不需要 tabindex。您不想让 non-interactive 元素键盘可聚焦。您提到将焦点移动到 header、页脚、主要内容等。None 这些元素是交互式元素,因此它们不应获得焦点。

如果您的菜单正在使用链接 (<a>) 或按钮 (<button>),那么它们已经可以通过 tab 键和tabindex 不需要。

when entering in document, that when I press TAB key, it focuses on the tag and when I press TAB again, it goes down into the header

我不确定你说的“关注标签”是什么意思

在您的屏幕截图中,如果使用的是真实链接,则“自然”Tab 键顺序为:

  1. 获取
  2. 产品
  3. 服务
  4. 联系方式
  5. Découvir ce 服务
  6. Découvir ce 服务
  7. Découvir ce 服务

而且你不需要任何额外的代码就可以工作。

听起来您需要的是一本关于键盘辅助功能的入门读物。

Tab 键的正确行为是将焦点移动到网页的交互部分(例如按钮、链接、表单输入、等)。

Tab 键通常不会也不应将焦点放在非交互式分节元素(例如页眉、主要部分、页脚、导航等)或静态内容(例如段落、列表、div、跨度等)上。

如果您想提高页面导航的可访问性,则可能需要考虑以下事项:

tabindex 通常应该避免使用,除非您真的知道自己在做什么并且有充分的理由使用它。一般来说,阅读顺序应该遵循页面的视觉排序,也应该遵循DOM排序。

其他资源: