Javascript 通过箭头键读取div的最后一个元素而不是可访问性中的第一个元素

Javascript 通过箭头键读取div的最后一个元素而不是可访问性中的第一个元素,javascript,html,angular,accessibility,nvda,Javascript,Html,Angular,Accessibility,Nvda,阅读-加载页面上的一些文本,然后选择“否”而不是“是” 页面加载中的一些文本 对 不 您可以简单地切换元素的顺序,如下所示 页面加载中的一些文本 不 对 如果按钮是通过tab而不是箭头导航的,则可以使用tabindex对其进行相应的排序 页面加载中的一些文本 对 不 按照迪利普·托马斯(DILEEP THOMAS)的建议,除了交换两个按钮之外,没有其他解决方案 屏幕阅读器的文档/浏览/虚拟游标总是按照可访问性树的顺序读取内容,这与DOM树大致相同。 没有办法改变阅读顺序。如果希望内容按特定

阅读-加载页面上的一些文本,然后选择“否”而不是“是”

页面加载中的一些文本 对 不
您可以简单地切换元素的顺序,如下所示

页面加载中的一些文本 不 对
如果按钮是通过tab而不是箭头导航的,则可以使用tabindex对其进行相应的排序

页面加载中的一些文本 对 不
按照迪利普·托马斯(DILEEP THOMAS)的建议,除了交换两个按钮之外,没有其他解决方案

屏幕阅读器的文档/浏览/虚拟游标总是按照可访问性树的顺序读取内容,这与DOM树大致相同。 没有办法改变阅读顺序。如果希望内容按特定顺序读取,则必须按该顺序显示在树中。句号

如果它在视觉上没有以正确的顺序出现,那么您有责任修复CSS,使其看起来像您想要的。 然而,在这样做之前要三思:为什么屏幕阅读器用户应该先读“否”,然后读“是”,而普通用户应该先读“是”,然后再读“否”

很多时候,这是一个糟糕设计的信号,无论你是否有视力,对所有用户来说都是糟糕的设计

还请注意,如果使用CSS直观地交换按钮

根据使用的确切代码,一些屏幕阅读器会考虑您的CSS,而另一些则不会。大多数人不会,但你永远不能百分之百肯定。 部分视力和只使用键盘的用户仍然会遇到问题,因为标签顺序将是意外的/不合逻辑的顺序,即西方文化中的人期望标签顺序从上到下、从左到右运行,而CSS代码必然会暗示相反的情况。 对于最后一点,对tabindex使用0和-1以外的其他值是一个非常糟糕的主意,因为我对这个答案投了反对票。有关原因的详细信息已经在网络上的许多地方进行了讨论。 你不能。 您的帖子带有nvda和辅助功能标签,那么辅助功能是您关心的问题

声明

如果可以按顺序导航网页,并且导航顺序会影响意义或操作,则可聚焦组件会按保留意义和可操作性的顺序接收焦点

你必须创建一个文本,这意味着如果你的语言阅读顺序是ltr从左到右。左边的元素应该在右边的元素之前聚焦


对于rtl从右到左的语言,您必须按照元素在DOM中的显示顺序从上到下、从右到左放置元素,并定义dir=rtl属性。

为什么不简单地切换这两个按钮?在Yesplus 1之前放置No,只需切换DOM顺序即可解决问题。我可以为此开始悬赏吗?xD@himanshi你能解释一下为什么不能切换DOM顺序吗。这可能是一个很好的理由,但在你不知道的情况下,你会得到大量的答案,这可能会让你的情况变得更糟。想要更改顺序的原因是什么?为什么不能更改DOM?这是否意味着类似于您正在创建的默认为“否”的确认对话框?或者你正在创建一个RTL主题或者类似的东西?如果div处于页面加载状态,那么它的断言目的是什么?抱歉,有很多问题,但是通过了解您的用例和约束条件,您可以更轻松地完成。相反,您可以简单地更改顺序。我认为这会创建额外的逻辑,UI外观将在sameI中。同意,我只是给出一个备选方案,假设OP有一些限制以保持顺序不变。很酷,没有问题:需要使用arrow吗keys@himanshi如果箭头键用于在按钮之间导航,则必须有一些脚本来实现这一点,因为我不认为浏览器在默认情况下都是这样的。请分享它的脚本,我们可以建议修改它。这将改变UI结构,所以改变它的问题是什么,这是最简单的方法,而不是在它上面写更多的逻辑