您好,
我稍后会尝试一下,但这并不是解决方案,因为您没有执行实际屏幕阅读器会执行的步骤。当我移到一个特定的帖子时,可以假定我想要阅读该帖子。Tab键不是阅读命令,而是将焦点移至下一个可获得焦点的元素。阅读命令将是使用向下箭头键或屏幕阅读器特定的“全部朗读”命令。至少,我首选的阅读命令向下箭头键不起作用,焦点根本不在视觉位置上,而通常在帖子列表之前。
当然,Tab键可以作为解决此错误的“脏”方法,但本身并不是解决该错误的解决方案。
您好,
我稍后会尝试一下,但这并不是解决方案,因为您没有执行实际屏幕阅读器会执行的步骤。当我移到一个特定的帖子时,可以假定我想要阅读该帖子。Tab键不是阅读命令,而是将焦点移至下一个可获得焦点的元素。阅读命令将是使用向下箭头键或屏幕阅读器特定的“全部朗读”命令。至少,我首选的阅读命令向下箭头键不起作用,焦点根本不在视觉位置上,而通常在帖子列表之前。
当然,Tab键可以作为解决此错误的“脏”方法,但本身并不是解决该错误的解决方案。
感谢 @thoeg @nolan,非常感激。我认为我明白了问题所在。我们目前使用一个空的 span 元素将焦点设置到帖子。该元素同时具有 aria-hidden=true 和 tabindex=-1,我认为这使得屏幕阅读器无法识别该元素。
我认为最好将焦点切换到帖子中的第一个可聚焦元素。在大多数情况下,这将是用户名链接,即帖子的作者。
您好,
这说得通。Ariahidden 应隐藏该元素,而 -1 可防止其获得焦点。如果此元素会获得焦点到主题标题,那也没关系。如果只将 tabindex 设置为 0,看看会发生什么会很有趣。
是的,@anni_anni,我听到了,我们会解决这个问题。我上周尝试了第一次修改,但由于产生了一些不期望的副作用而不得不回滚。我将很快尝试另一种方法。
关于这个有什么更新吗?还没有解决!
Claus
是的,问题尚未解决。我有一个初步的拉取请求(PR)在这里:https://github.com/discourse/discourse/pull/23367,目前正在等待内部反馈。
好的,终于又有一个修复此问题的合并请求了。目前的实现是:将焦点设置在帖子中的第一个可聚焦元素上,在大多数情况下,这将是帖子的作者用户名。当导航到帖子并按下 Tab 键时,在 Chrome 中应该会是这样的:
请在此处(meta)尝试一下,如果遇到问题请告诉我。
我在 Chrome 上于 Meta 和 community.fly.io 上仍然看到旧的错误行为,但可以确认该修复在我们的 discourse.team 网站上有效。它们运行的是不同版本的 Discourse 吗?我使用的是相同版本的 Chrome 和相同的配置文件。
谢谢。
嗯,这三个站点可能都使用了略有不同的 Discourse 版本,但我相信它们都已应用了上面链接的更改。特别是 Meta 站点,始终与我们 tests-passed 分支的最新更改保持同步,所以我有点担心在这里不起作用……
好的,我这里有更多关于此问题的信息,是在我们的 discourse.team 网站上观察到的,我在那里报告了此问题。
如果我点击一个我从未读过的新帖子,我不会得到任何语音反馈,焦点似乎随机落在页面上的第一个帖子。
如果我点击一个之前访问过的主题,焦点会正确放置,并且我确实会得到语音反馈。
现在,这种行为在 Firefox 和 Chrome 之间似乎是一致的。我认为之前 Firefox 在查看新帖子时能正确地将焦点放在第一个帖子。如果可能的话,希望恢复这种行为,以便第一次阅读和返回的体验相同。我很高兴它至少现在能在 Chrome 中恢复我上次阅读的位置,因为这对我工作来说是必需的。
奇怪的是,这些行为在 Firefox 和 Chrome 之间差异如此之大。
感谢为此付出的所有努力。
很高兴听到这个消息!我确实将这里的更改限制在导航到非主题第一帖的帖子。对于回头客来说,这通常是导航到您已阅读但现在有新回复的主题。
很高兴知道这一点,我认为我们有办法进行迭代和修复。如果您能分享您使用的确切命令顺序,也将有所帮助。
在我普通的 Chrome 浏览器上,如果我进入一个我从未读过的新主题并按下 Tab 键,焦点会落在主题标题上,这对我来说似乎是合理的,但这可能不足以满足您的用例。
再次感谢您持续的反馈,非常感谢!
在 Jaws 和 Chrome 浏览器上测试关于 Meta 的新主题时,我注意到了一种奇怪的新行为。在主题标题上按 Enter 键后,我会得到关于刚刚加载页面的常规信息,这是 Jaws 的标准行为。当我返回主题列表并按 Enter 键进入同一个主题时,焦点会直接移到最后阅读的帖子。这似乎至少解决了两个问题。我还没有测试过在主题列表中“转到最后一篇帖子”的功能,但我猜它应该能正常工作。
当然,并非所有事情都尽如人意,但这可能与此无关。当我使用后退按钮返回主题列表时,焦点会丢失,我不会被放回到我打开并正在阅读的主题上。这可能是 Jaws/Chrome 的一个 bug,我们以前见过类似的情况,但也可能是在你们这边。我需要用 NVDA 检查一下。
我刚试了 NVDA 和 Chrome,这里什么都不管用了,也就是说,我再也不能在表格的任何主题标题上按 Enter 键了。我确定以前是可以的。当然,由于我是 JAWS 用户,这不会困扰我,但对 NVDA 用户来说,情况就不同了。
由于 NVDA 实际上不起作用,我无法测试从主题返回主题列表时焦点的相关问题。
然而,JAWS 在这里是可靠的,焦点会放在页面顶部。
快完成了!
在我们 discourse.team 网站的最新 Chrome 浏览器中,点击一个以前访问过的主题会将我带回到我停止阅读的地方,NVDA 会正确地播报获得焦点的帖子的标题。
不幸的是,点击进入一个新主题不会将焦点放在主题的第一个帖子上。同样,使用“h”键尝试将焦点放在第一个帖子也失败了。我必须手动找到它才能开始阅读。
请注意,在 Firefox 浏览器中,新帖子的位置似乎是正确的。原因似乎只是 Chrome。
总而言之,我很高兴在以前的主题中恢复了位置,因为这对我来说是最痛苦的。但我确实希望在两种用例中都能获得正确一致的行为。
谢谢!
很高兴听到这个消息。
这也是正确的。目前的实现会专门跳过在目标帖子是第一个帖子时设置焦点。我尝试将相同的内容添加到第一个帖子,但这通常会导致在加载主题 URL 时出现不必要的滚动,这对所有用户来说都太具干扰性了。
这应该可以工作。我会做一些测试,看看我们是否可以修复这个问题。
感谢您的反馈!
我想指出另一个一直让我困扰的“纸割伤”(papercut)。
在发布新主题时,添加标签/类别的下拉菜单有点奇怪。首先,对我来说,标签是“按…筛选”(Filter by)。我不知道它是否在视觉上显示出来,但我在 Discourse 上发帖好多年,才意识到标签是这样添加的。“筛选”(Filter)这个词对我来说意味着“过滤掉水中的东西”,而不是添加新东西。如果它在视觉上显示出来,那么你可以根据这个反馈来做任何你想做的事情,但如果它只是 ARIA 标签,那么可能需要做一些调整。
接下来,点击标签列表会给我一些看起来像单选按钮的东西。如果我按空格键(例如,根据 ARIA 单选按钮组模式),这似乎会触发搜索。是的,我也可以在这里按 Enter 键,但我习惯于按空格键来触发按钮交互,因为我的拇指就在那里。
这肯定不是一个阻碍,但它确实更难发现,而且每次发帖时,我都需要花额外的精力来记住/重新弄清楚它是如何工作的。过去,我点击过单独的类别,但这限制了我使用多个标签的能力。
我认为更适合这种交互的是 ARIA 组合框模式。特别是,可编辑组合框 的行为方式令人困惑的程度要小得多。如果我输入“A”,我可以按箭头键向下选择“Alabama”。它不显示为单选按钮,所以我的第一反应不是按空格键,但如果我按了,它会按预期插入空格。也许只需要移除单选按钮的显示方式,但它可能也不需要那么详细地说明结果数量。
非常感谢。
谢谢,诺兰。这非常有帮助,我们有一些内部待办事项来处理这些下拉菜单,我一定会将您的反馈包含在内。
好的,还有一件事。
如果我在帖子编辑框中输入表情符号(例如 :)),并且在编辑时焦点落在该表情符号上,我将无法使用向上/向下箭头移至上一行或下一行。我必须先向左/向右箭头移出表情符号。
猜测这是由于自动完成行为?我想知道是否可以在只有单个匹配项的情况下禁用此行为,或者除非按下 Enter 或其他键?我理解初始输入和编辑的自动完成行为,但在某些情况下调试为什么我无法移动焦点确实很棘手,这似乎就是原因。对于编辑,某种手动触发的下拉列表似乎是正确的选择。
非常感谢。