# 与屏幕阅读器的对话

**URL:** https://meta.discourse.org/t/discourse-with-a-screen-reader/178105
**Category:** UX
**Tags:** accessibility, screen-reader
**Created:** [2021年二月2日 13:17 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105 "2021-02-02T13:17:53Z")
**Posts on this page:** 20
**Page:** 4

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2021年六月10日 22:51 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/66 "2021-06-10T22:51:53Z")

</div>

我跟进一下，这确实非常令人沮丧。

@提及功能也是如此。在屏幕阅读器上很难让搜索正常工作。

我认为我们能做的最好的事，@nktech1135，大概是提供一些特殊的键盘快捷键。也许可以类似这样：

- CTRL-ALT-u
- 选择你想要引用的帖子
- 向下键
- @sam 帖子 #7
- 向下键
- @sam 帖子 #6
- 回车
- 选择你想要引用的句子
- 句子 1 “Hi”
- 向下键
- 句子 2 “I’d like to give a huge thanks to the people in this thread. I help admin a couple of discourse instances and have noticed most of the things mentioned here.”
- 回车
- 引用的区块已被添加

我喜欢这个机制，但构建它是一项非常庞大的工作。幸运的是，我们可以将其构建为一个组件，以便先进行实验。我已将其加入我们要实验的项目列表中。提前说明，可能需要一段时间才能着手处理，但我同意这将是非常棒的。

大家有什么想法？

---

<div class="post-metadata">

### Author: ![nktech1135](https://avatars.discourse-cdn.com/v4/letter/n/82dd89/32.png) [@nktech1135](https://meta.discourse.org/u/nktech1135)
#### Post date: [2021年六月11日 23:05 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/67 "2021-06-11T23:05:50Z")

</div>

如果无法适配现有鼠标用户的工作流程，这听起来是一个合理的做法。我倾向于尽量保持单一的工作流程，但由于我不清楚当前的具体实现方式，因此无法基于视障人士的工作流程提出建议。

另一个可能比 @sam 提出的方案更轻量级的建议是：设置一个键盘快捷键（例如 Alt+Shift+Q），用于检查所选文本，并将所选文本的引用信息插入到当前打开的编辑器中。

如果采用这种方式，用户只需找到要引用的文本，选中它，然后按下该键盘快捷键即可。

这似乎是一个更轻量级的工作流程，但也许我遗漏了某些会导致此方案不可行的因素。

大家怎么看？

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2021年六月15日 01:53 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/68 "2021-06-15T01:53:44Z")

</div>

我认为我们已经有非常相似的工作流程了。

编辑器有一个工具栏，第一个按钮名为“引用整篇帖子”，点击该按钮即可引用您正在回复的整篇帖子。

这在需要引用多篇帖子时并非最佳方案，但希望能为您提供一些参考。您可以试试看吗？

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年六月17日 08:34 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/69 "2021-06-17T08:34:50Z")

</div>

如果我想引用某篇帖子，我想我只会使用“引用整篇帖子”功能，然后删掉我不需要的文本。至于@提及，我想应该可以实现，但如果不清楚它在视觉上是如何运作的，就很难提出具体的建议。在 Facebook 移动网站上，这种方法偶尔能行得通，但那个网站的情况难以预料，今天出问题的功能，明天说不定就好了。

不过，如果我输入 @XXX（XXX 是用户名的一部分），系统可以提示有匹配项，然后我或许可以用 Tab 键进入建议名称列表。类似这样的方式，加上选择建议名称和关闭建议列表的功能，应该是可以实现的。

另一个小烦恼是，在长篇讨论中，我往往不确定自己是在回复谁，因为“回复”按钮只是通知我正在回复某篇帖子。就我目前使用论坛的方式而言，如果不引用帖子，我就无法查看或阅读我正在回复的那篇帖子，而通常我并不想引用它。

Claus

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2021年六月18日 04:51 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/70 "2021-06-18T04:51:55Z")

</div>

> [@thoeg](#):
>
> 回复按钮只是通知我正在回复某条帖子。

@codinghorror 我喜欢这个建议。

目前，“回复”按钮的 `aria-label` 是“回复”。你觉得改成“回复 Sam 的第 #4 条帖子”怎么样？这样在发布前会让你更有归属感。

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2021年六月18日 04:59 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/71 "2021-06-18T04:59:01Z")

</div>

无论如何，这对工具提示/标题/悬停效果都是有益的，它们应该具有更高的权重。

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2021年六月18日 05:05 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/72 "2021-06-18T05:05:26Z")

</div>

奇怪的是，我们的标题是“或按 CTRL+ENTER”。我完全理解这里的意图，但感觉有点别扭。它告诉的是“要做什么”，而不是“它能做什么”。

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年六月18日 06:38 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/73 "2021-06-18T06:38:53Z")

</div>

我看到“或按 Ctrl+Enter 发送按钮”的提示，当我在编辑器中记得这样做时，它确实有效，所以那里没有什么需要我修改的。Claus 在

---

<div class="post-metadata">

### Author: ![nktech1135](https://avatars.discourse-cdn.com/v4/letter/n/82dd89/32.png) [@nktech1135](https://meta.discourse.org/u/nktech1135)
#### Post date: [2021年六月18日 20:10 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/74 "2021-06-18T20:10:09Z")

</div>

> [@sam](#):
>
> 我认为我们已经有非常相似的工作流程了。
> 
> 编辑器有一个工具栏，第一个按钮叫做“引用整篇帖子”，点击它即可引用你正在回复的整篇帖子。
> 
> 这在需要引用多篇帖子的情况下并不是最理想的，但应该能给你提供一些可用的功能。你能试试吗？

正如你所见，这确实有效，而且效果相当不错。  
不过，正如你也指出的那样，如果你想从多篇帖子中截取部分回复，这个方法就不太管用了。  
所以我仍然在想，我的方法是否行不通。另外，我在写这段话时还想到，我想引用自己上一帖的内容，但由于我并不是在回复那篇帖子，所以无法做到。

大家有什么看法？

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2021年六月19日 19:47 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/75 "2021-06-19T19:47:14Z")

</div>

我们可以将其改为“或按 CTRL+ENTER 提交您对此帖的回复”。虽然略显冗长，但表述准确。

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年六月24日 12:26 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/76 "2021-06-24T12:26:29Z")

</div>

这绝对不是正确的做法。由于您提议的文本会在按钮获得焦点时朗读出来，因此您无需在“回复帖子”按钮的功能执行前听到快捷键 Control+Enter。

您应该将 Control+Enter 放在最后，因为当焦点位于按钮上时，您可以忽略该快捷键，直接按下“发送”即可；下次如果您记得，就可以使用快捷键而不是点击按钮来回复。

Claus

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年六月24日 12:40 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/77 "2021-06-24T12:40:55Z")

</div>

您好，

这是一个功能增强请求，属于“锦上添花”类型。  
在类似本帖的线程中，当您想点赞或回复某条帖子时，选项会按以下顺序呈现。  
请尝试使用 Tab 键，并希望您正在查看的帖子中没有提及、链接或引用内容：  
Tab 键将依次聚焦到：  
“X 人点赞此帖”  
“点赞此帖”  
“分享此帖链接”  
“显示更多”  
“开始撰写对此帖的回复”

作为用户，您通常只想点赞或回复，因此这两个按钮应排在 Tab 键顺序的最前面，“回复”不应是最后一个被聚焦的按钮。  
另外，我建议在“开始撰写对此帖的回复”按钮上将文字改为“回复 XX"，其中 XX 是您将要回复的帖子作者的用户名。  
如果按钮文本不准确，是因为我是从丹麦语翻译过来的。  
Claus

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年七月17日 08:50 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/78 "2021-07-17T08:50:45Z")

</div>

您好，

一些新的观察，或者并非全新，因为这些问题已被他人提及：

意外地，我被引导至 Discourse 新手博客主题，其中包含使用 Discourse 的提示。  
在此可以明显看出，您被期望在话题中跳转到最后阅读过的帖子，或跳转到话题顶部或底部的操作方式，无法配合屏幕阅读器正常工作。测试主要在 JAWS 上进行，同时也使用了 NVDA。焦点被移动到何处尚不明确，但完全不像此处描述的那样：

> **[Discourse New User Tips and Tricks](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/)**
>
> Getting going in an online community can be overwhelming, especially if you’ve never used the platform before. If you’re new to Discourse, here are a few quick tips and tricks to get you started:

“从话题列表中选择标题将始终带您跳转到该话题中您最后阅读过的帖子。若要改为从顶部或底部开始，请选择回复数量或最后回复日期。”

如果已读/未读状态通过颜色标示，那么良好的可访问性意味着您需要在话题或帖子的标题中添加“已读”或“未读”的说明，但重要的是要将其作为最后一条信息，以便在用户不需要时可以忽略。

此外，在阅读 2.8 beta 3 的更新新闻时，以下内容看起来很有趣，但我不确定屏幕阅读器是否会通知我：

“在话题视图页面添加上次访问指示  
当您打开一个已经阅读过的话题时，Discourse 会自动将话题定位到第一个未读帖子，以便您继续阅读。现在，Discourse 还会显示您上次访问位置的指示器，因此您可以安全地向上或向下滚动而不会丢失位置。”

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年七月25日 09:03 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/79 "2021-07-25T09:03:50Z")

</div>

另一个问题：按照编辑器说明上传图片时，只需将图片拖入编辑区域，但我找不到为图片添加替代文本（alt text）的方法。它可能隐藏在某个地方，而我并未花太多时间寻找，但对于那些无法用简单的替代文本准确描述的有意义图片而言，这是一个非常基础的无障碍问题。  
Claus

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年九月21日 05:52 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/80 "2021-09-21T05:52:37Z")

</div>

我发现，至少从 2.8 beta 6 版本开始，用于设置帖子通知的下拉框已进行了更改。其中一些改进是好的，但也有些不尽如人意。在新的实现中，使用 Tab 键遍历控件时可以访问该下拉框，但没有文本描述该控件，也无法使用大多数屏幕阅读器中更高级的导航技术来查找特定类型的控件。除非使用 Tab 键逐个聚焦到该控件，否则很难找到它。而且您听到的不是控件的名称或类型，仅仅是其选中状态，例如“关注”、“静默”或“普通”。您可能需要为该控件添加一些 ARIA 代码，使其对屏幕阅读器呈现为下拉框，并恢复原有的简短描述。  
Claus

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [2021年九月21日 09:04 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/82 "2021-09-21T09:04:51Z")

</div>

我们昨天已发现此问题，并且已有一个拉取请求（PR），预计今天合并，以便为其添加 aria 标签。

cc @pmusaraj

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年九月21日 09:28 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/83 "2021-09-21T09:28:33Z")

</div>

您好，

很好。请参见第 2.6 节，了解您可能考虑的角色。

[使用 ARIA (w3c.github.io)](https://w3c.github.io/using-aria/)

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [2021年九月21日 09:41 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/84 "2021-09-21T09:41:08Z")

</div>

我们曾使用 `application`，因为其他角色会导致问题，但我们正在考虑改为 `listbox`。我不太确定您在 2.6 中提到的建议具体是什么，因为它提到了角色，但没有具体内容。

---

<div class="post-metadata">

### Author: ![thoeg](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@thoeg](https://meta.discourse.org/u/thoeg)
#### Post date: [2021年九月21日 10:05 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/85 "2021-09-21T10:05:42Z")

</div>

您好，

Listbox 似乎更接近该控件的实际行为，至少目前如此。不过，当您更新后，我会在 meta 上进一步验证。

Claus

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [2021年九月21日 18:02 UTC](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105/86 "2021-09-21T18:02:46Z")

</div>

这已更新，Claus，请告知现在是否对您更有效。

[上一頁](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105.md?page=3)

[下一頁](https://meta.discourse.org/t/discourse-with-a-screen-reader/178105.md?page=5)
