与屏幕阅读器的对话

这很奇怪,因为在我的 Windows 机器上这种行为非常一致。
现在已在 Chrome Canary Google Chrome 版本 111.0.5536.0 上测试
尝试以下操作。
转到:
https://meta.discourse.org/
在主题列表中找到主题:
Discourse 是否提供类似 WordPress 自定义分类的功能?

在该行中移至最后一列,文本为:
在我的丹麦设置中,目前显示为 3t。
按 Enter 键应将焦点移至该主题的最后一项回复。但事实并非如此。
当我按 Enter 键时,什么也没发生,因为页面没有更新,所以屏幕阅读器没有任何反应。
但是,如果我阅读该行,我仍然停留在页面的第一行,而不是预期的线程中最新帖子的标题。

NVDA 似乎移动了焦点,但甚至没有进入主题本身。在我发布有关此问题的大约同一时间,两个屏幕阅读器都像预期一样工作。
切换到 Firefox Firefox Nightly 版本 110.0a1
在上面的示例中,这按预期工作,按下 3t 会移动到该主题的最新帖子,焦点按预期放置。

4 个赞

这似乎有所倒退。

具体来说,一段时间以来,它在我使用过的许多自托管实例上都有效,但在您为我的雇主托管的网站上却失败了——特别是 https://community.fly.io,以及一个内部托管的 discourse.team 论坛,其 URL 很容易从上面的链接推断出来。:slight_smile: 两者似乎都使用相同版本的 Discourse。

这确实造成了困难,因为我们在 Discourse 上做了大量工作,作为一名视障员工,我总是在内部讨论和与社区成员的客户支持对话中迷失方向。返回到之前阅读过的帖子需要我花费 20-30 秒的时间来找到我之前的位置。

感觉就像我以前使用 14400 波特调制解调器的时候。:slight_smile:

感谢任何帮助。

2 个赞

抱歉打扰了。我刚做了一些调查,这个在 Firefox 上可以运行,但在 Chrome 上不行。Fly 要求工作必须使用 Chrome,所以问题出在这里,而不是在其他地方,因为我在其他地方使用 Firefox。

很高兴这并不是我想象的那么大的回归,但如果能在 Chrome 上也正常工作就更好了。我使用的是 NVDA,以及没有安装任何扩展程序的 Chrome。

4 个赞

你好,Nolan!:wave:

很抱歉听到它在 Chrome 中无法正常工作。由于这个话题内容很长,你能详细说明一下回归的具体情况吗?听起来在你加载一个话题时,它没有回到你之前的位置,但我想确保我们正在解决这个问题。

请告知我们。:slight_smile:

3 个赞

是的,正是如此。在 Firefox 中点击主题会很好地、可靠地将焦点返回到上次阅读的位置。在 Chrome 中则不会。

谢谢。

2 个赞

您好,

很高兴其他人也遇到了同样的问题,因为我发帖时无法重现这个问题。我因为其他原因放弃了 Firefox,并且已经习惯了这种行为,但如果能将其更改为预期的行为,那将是非常好的。

Claus

1 个赞

感谢 @nolan@thoeg 的确认。 :+1:

我们的团队正在对此进行检查;过去我们曾难以重现此问题,现在我们可以将精力集中在 Chrome 上。

我们将在那里向您更新。 :slight_smile:

2 个赞

哇。我对 Discourse 上核心开发人员社区的响应速度感到非常惊讶!

这在某些人看来可能微不足道,但是——哇——我在这里呼唤你们的人性,让所有人都能从中获得乐趣!!!

这正是我热爱开源和协作精神的原因!!!!

4 个赞

我检查了一下,似乎在主题中聚焦到特定帖子的那个问题有时似乎可以工作,但并非总是如此。然后我想起了一些似乎是沿途的回归问题。
在主题中的每个帖子之后,您会看到一些按钮,
例如,但是该按钮显示“您喜欢此帖子”,而不是仅仅给您点赞的选项。
然后是“回复帖子编号XX”,此文本未翻译,因此字符串的回复部分在丹麦语翻译中读取回复,这里有两个相关问题。
克劳斯

抱歉这么晚才回复您,Nolan。我刚刚通过 NVDA(使用名为 Assistiv Labs 的在线服务)进行了测试,在 Firefox 和 Chrome 上似乎都对我有效。使用导航回退的键盘快捷键时,我看到焦点在之前打开的文章上。

测试环境是 Chrome 115,NVDA 2023.1

是否存在特定的操作步骤会导致此问题?

在 Chrome 和 Edge 中每次都看到此问题,请尝试以下操作:

打开:
https://meta.discourse.org/tag/accessibility

将第一个主题移入表格。
将焦点移到最后一列,上面写着:
3D
激活时,它应该将焦点移到该主题的最后一个主题。
问题是,在 Chrome 和 Edge 中它不会,但在 Firefox 中会。

1 个赞

@thoeg 我认为可以使用以下方法自定义按钮文本:

您好,

但不是作为用户,而且由于文本具有误导性,并且出现在多个网站上,这是另一个可访问性问题。

但是,为了解决您遇到的问题,您所在 Discourse 论坛的管理员可以更改您论坛上的这些按钮文本。您可以联系他们。

所以这并不是 Discourse 软件本身的问题。

但我同意您的想法,即按钮文本(都相同)有点令人困惑——您可以考虑将此问题作为一个新主题开始,特别是如果您能提出具体的改进或解决方案?

您好!

您使用哪款屏幕阅读器?我对此功能不太熟悉,因为我从未使用过它,但我很想多了解一些并看看这个问题 :slight_smile:

谢谢你,Claus,我能复现这个问题!这是展示行为的视频(在 0:09 处,最后一个帖子应该有一个虚线蓝色边框,但它没有生效)。

我还注意到第二个问题,在包括 Firefox 在内的所有浏览器中。如果我执行相同的步骤,但最终停在一个帖子很小的(已关闭的主题、自动置顶、分配等)主题上,焦点也不会正确地设置到最后一个帖子。

我们将尽快对此进行调查。

3 个赞

我刚刚合并了一个针对上面讨论的两个问题的修复程序 @nolan @thoeg。供参考,这是拉取请求:https://github.com/discourse/discourse/pull/22996(这应该会在大约一小时后登陆 meta,其他网站将在本周晚些时候登陆)。

1 个赞

如果您说的这个修复已经上线一段时间了,但它并没有解决我的问题。今天在 Chrome 和 Edge 中进行了测试,都使用了 jaws 和 nvda。焦点落点在屏幕阅读器之间有所不同,但它并没有落在主题的最新帖子应该在的位置。
Claus

1 个赞

在我的测试中,使用 Chrome 上的 NVDA(Windows),焦点会落在主题的最后一项回复上。它不显示聚焦的元素,我们使用一个隐藏的元素来切换焦点,但如果我在导航到主题后按下 Tab,它会稳定地聚焦到帖子的作者。

抱歉,我花了一段时间才回复——我一直在旅行,现在终于在处理事情了。

如果这很明显而且是你一直在做的事情,我很抱歉,但我建议听听 NVDA 在点击某个主题时说了什么,而不是仅仅依靠视觉。

如果我在 Firefox 中访问 https://meta.discourse.org 并点击欢迎帖子,NVDA 说的第一件事就是带有用户名、帖子日期等的 1 级标题。

如果我在 Chrome 中做类似的事情,什么都不会说。也许焦点在视觉上会落在它应该在的地方,但不知何故它没有被说出来。

可能是 Chrome 和 Firefox 的辅助功能实现方式的差异。如果我在两个浏览器中都使用“后退”,焦点会正确地落在活动帖子上,并且会被说出来。但是,如果我在 Chrome 中加载一个帖子,按几次 h 键跳转到后面的主题,然后按“后退”,再单击帖子,按 h 似乎会带我到第一个可见的帖子,而不是我上次阅读的位置。这在多个由 Discourse 托管的论坛中仍然如此。

这感觉像是一个时序问题。辅助功能相关代码试图聚焦的元素是否存在于 DOM 中?也许在聚焦之前添加一个像 50 毫秒这样的短 setTimeout 可以解决这个问题?这通常是我处理这类问题的方法,但可能是我错了。

感谢你在这方面所做的所有工作。

2 个赞