gpt4 book ai didi

html - 如何分别在同一行上使 NVDA 读取元素?

转载 作者:行者123 更新时间:2023-12-01 11:34:56 27 4
gpt4 key购买 nike

我在使用 NVDA 屏幕阅读器时遇到问题,因为它将在一个块中的同一行上读取所有元素。

例如,使用以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
<style>
nav > ul > li {
list-style: none;
display:inline-block;
}

</style>
</head>
<body>
<h1>Title 1</h1>
<nav role="navigation">
<ul>
<li>
<a href="#">Link 1</a>
</li>
<li>
<a href="#">Link 2</a>
</li>
<li>
<a href="#">Link 3</a>
</li>
<li>
<a href="#">Link 4</a>
</li>
</ul>
</nav>
</body>
</html>

这将在一行中显示所有导航链接,这在视觉上是正确的,但 NVDA 在浏览模式下,当使用箭头键滚动时,会将所有链接一起阅读。用户不能在每个单独的链接之间移动,这意味着不可能停留在一个链接上并选择它。

段落中间的链接也会发生同样的情况:
<p>NVDA will not stop on <a href="#">This link</a> so a user can select it.</a>

在我的导航示例中,更改样式使每个链接位于单独的行上:
        nav > ul > li {
list-style: none;
display:block;
}

修复了 NVDA 的问题 - 用户可以在链接之间移动 - 但在视觉上是错误的。

我发现使其视觉上正确并强制 NVDA 单独读取它的唯一方法是将每个 anchor 显示为列表项内的一个块:
        nav > ul > li {
list-style: none;
display:inline-block;
}

nav > ul > li > a {
display: block;
}

但这感觉很糟糕,并且不是在每种情况下的解决方案(例如,这在段落内不起作用)。

有没有我可以添加的属性,或者有其他更好的方法让 NVDA 分别读取每个元素?

此问题存在于所有浏览器中。

最佳答案

您不需要做任何事情,用户可以导航到每个链接并可以激活它们。用户可以随时使用 CONTROL 键中断读数。同样在阅读链接后,用户可以使用 SHIFT-TAB 键向后导航到每个链接。用户还可以使用 K 键在链接之间导航。此外,用户可以使用 NVDA+control+leftArrow 键逐字向后移动。

这里的关键是通过确保每个链接具有 href 来确保每个链接可通过 TAB 聚焦。属性。所以<a>Not really a link</a>不会被识别为链接,也不会成为 TAB 焦点。

这是 NVDA 的键盘命令引用 http://community.nvda-project.org/documentation/userGuide.html

如果您想更改默认行为以使 NVDA 读取链接,就像 JAWS 那样每行只有一个链接,请执行以下操作:

  • 转到 NVDA 菜单(插入|n)。
  • 转到首选项。
  • 选择浏览模式。
  • 取消选中第二个复选框“支持时使用屏幕布局”。
  • 选择确定。
  • 返回 NVDA 菜单 (insert|n)。
  • 选择“保存配置”。如果您不这样做,根据您配置 NVDA 的方式,此更改可能不会在重新启动后持续存在。
  • 关于html - 如何分别在同一行上使 NVDA 读取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28092861/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com