写给小白的问题反馈指南:从 NVDA 起步,参与开源其实很简单!

编者按:本文由 NVDA 中文社区用户Hiram投稿。文章从屏幕阅读器用户的实际操作习惯出发,手把手带大家了解如何利用 GitHub Issue 向插件作者反馈问题与需求,特此分享给大家参考交流。


对于 NVDA 大部分用户来说,插件已经成为日常使用时不可或缺的一部分。无论是扩充语音库或是辅助完成各种各样的电脑操作,我们经常都会借助不同的 NVDA 插件来扩展屏幕阅读器的功能。但插件用得多了,遇到问题也是难免的。有时候,一个功能突然无法正常使用;还有时候,插件升级之后反而出现了以前没有的问题;或是我们可能会发现,自己一直希望某个插件能够增加一个更加方便的功能。

遇到这些情况,我们除了在用户群里询问、与其他用户交流之外,还可以直接向插件作者反馈。

对于使用 GitHub 管理项目的 NVDA 插件来说,Issue 就是一个非常有效的反馈渠道。它既可以用来报告程序或插件存在的问题,也可以用来提出新的功能建议。

不过,对于不熟悉 GitHub 的用户来说,“提交 Issue”听起来似乎有些复杂。尤其是第一次面对 GitHub 的英文界面时,可能不知道应该先做什么、在哪里搜索、如何创建新的 Issue,以及提交之后又应该做什么。

其实,只要熟悉整个流程,提交一个 Issue 并没有想象中那么困难。

注册并登录 GitHub 账号

提交 Issue 前,需要先拥有一个 GitHub 账号(GitHub 官网)。在未登录状态下,通常无法创建和提交新的 Issue。

需要注意的是,由于中国大陆访问 GitHub 可能存在网络限制,提交 Issue 前,需要先确保能够正常访问 GitHub。具体如何解决网络访问问题,这里不做过多讨论。

如何找到某个 NVDA 插件在 GitHub 上的主页及 Issue 页面

如果想找到某个 NVDA 插件在 GitHub 上的项目主页,以及该插件用于反馈问题和提交功能请求的 Issues 页面,通常可以通过以下几种直接、有效的方式。

从 NVDA 插件商店查找 GitHub 主页

如果某个插件的作者已经在 NVDA 插件商店中提供了 GitHub 项目主页链接,可以直接从插件商店进入。

按 NVDA + N,T,A,通过上下方向键找到目标插件,例如 WorldVoice。

找到目标插件后,按快捷键 Alt + O,然后使用 Ctrl + 下光标键。如果该插件在 GitHub 上有项目主页,并且作者已经在 NVDA 插件商店中提供了相应链接,就可以找到该 GitHub 主页链接地址。

通过 GitHub 站内搜索

如果知道插件的名称,也可以直接在 GitHub 上搜索。

打开 GitHub 官网。 在 NVDA 浏览模式下,按字母 E 键查找搜索框。

按空格键进入焦点模式,在搜索框中输入插件名称。为了缩小搜索范围,可以在插件名称后面加上 nvda,例如:

WorldVoice nvda

输入完成后按 Enter 键进行搜索。

搜索结果出现后,切换回浏览模式,按 H 键逐个浏览搜索结果的标题。

找到与目标插件对应的项目后,按 Enter 键打开,即可进入该插件的 GitHub 项目主页。

通过常规搜索引擎查找

打开常用的搜索引擎,在搜索框中输入:插件英文名 nvda github 。例如:

WorldVoice nvda github

在搜索结果中查找 GitHub 项目链接。通常搜索结果前几项中就可能包含该插件的官方 GitHub 项目主页。进入相关项目后,可以通过项目名称、项目说明等信息确认是否为目标插件的官方仓库。

进入插件的 Issues 页面

进入插件的 GitHub 项目主页后,就可以进一步进入该项目的 Issues 页面。

确保 NVDA 处于浏览模式。按字母 K 键找到 Issues 链接后,按 Enter 键打开。打开后,就进入了该插件的 Issues 页面。

先浏览是否已经有人提交过相同问题

在提交新的 Issue 之前,建议先浏览一下,看看是否已经存在相同或类似的问题。

以 WorldVoice 插件为例,进入 WorldVoice 项目的 Issues 页面:

WorldVoice Issues 页面

在浏览已有 Issue 之前,需要先知道 Issue 通常有两种状态:Open 和 Closed,它们反映了维护者或者报告者对这个 Issue 的当前处理状态:

  • Open:表示这个 Issue 被提出来了,维护者可能还没进行分类、排优先级或修复,说明目前有人提出了该问题,处于开启状态。
  • Closed:说明这个 Issue 已经被关闭了。通常有几种情况,比如 Bug 被修掉了、请求的功能已经实现了、别人都无法重现这个问题,或者作者认为不考虑实现这个需求,就会予以关闭,并且通常会在关闭的时候选择或说明关闭的原因。

要想了解某个 Issue 的具体状态,可以在该 Issue 的标题下,确保 NVDA 处于浏览模式,按下光标浏览,就能读到具体是 Open 还是 Closed 状态。

其实大多数插件的 Issue 总数不是非常多,所以从效率上来说,只要先确保 NVDA 处于浏览模式,直接在页面中按字母 H 键,逐条浏览现有的提案和反馈即可。

如果项目里的 Issue 比较多,也可以通过搜索来快速排查:

  1. 在浏览模式下按字母 E 键找到搜索框。此时 NVDA 会朗读类似“Filter all issues Search Issues is:issue state:open”的内容。
  2. 不要清空搜索框里的原有内容。很多人习惯全选删除,但其中的 is:issue state:open 是 GitHub 的过滤语法,默认只搜索目前处于 Open 状态的 Issue。
  3. 按空格键进入焦点模式,按 End 键将光标移到原有内容的最后面,敲一个空格,然后输入与你遇到的问题相关的关键词。
  4. 输入完成后按 Enter 键进行搜索。
  5. 搜索结果出来后切回浏览模式,按字母 H 键浏览搜索到的 Issue 标题。
  6. 如果发现有与你遇到的问题相同或非常类似的 Issue,可以按 Enter 键打开查看。

无论通过哪种方式,如果确认已有相同或非常类似的问题,通常不需要重新创建 Issue,直接在原有的 Issue 中跟进补充即可。例如说明自己也遇到了相同情况,并附上所用的 NVDA 版本、插件版本等信息。这样既能避免重复提交,也方便开发者集中处理。

具体操作步骤如下:

  1. 按 Enter 键打开该 Issue 后,确保 NVDA 处于浏览模式,按字母 E 键定位到评论输入框。此时 NVDA 会朗读类似“new Comment Add a comment Use Markdown to format your comment Markdown input: edit mode selected.”的内容。
  2. 按空格键进入焦点模式,输入你要补充的详细情况。
  3. 内容输入完成后,切换回浏览模式,按字母 B 键找到 Comment 按钮,按 Enter 键提交即可。

确认没有相同问题后,再创建新的 Issue

如果搜索后没有找到相同或类似的 Issue,就可以创建新的 Issue。

在 Issues 页面按字母 B 键,找到“Create new... 菜单按钮子菜单”,然后按空格键展开该菜单,光标浏览到 New issue,按 Enter 键,进入创建新的 Issue 页面。

需要说明的是,每个项目的 Issue 创建界面是不一样的。较为成熟的大型项目(例如 NVDA 官方项目)通常会设置自己的 Issue 模板或表单(Issue Forms),提供多个类别让用户选择,比如 Feature request 或 Developer facing changes。

但对于 WorldVoice 以及大多数小型项目来说,并不是这种引导式表单,而是 GitHub 默认的标准模板,页面中主要就是一个 Title(标题)编辑框和一个 Description(描述)内容编辑框。

操作步骤如下:

  1. 进入创建页面后,焦点通常会落在标题编辑框。如果 NVDA 朗读“Title,编辑”或类似提示,就可以直接输入 Issue 的标题。
  2. 输入标题后,按 Tab 键移动到下方的编辑框(Description / Write 区域)。
  3. 由于默认模板没有预设分栏,为了让作者更清楚地了解情况,建议你在 Description 中至少包含以下几项必要信息:
  • 简要描述问题:用简单的语言说明遇到了什么故障或有什么建议。
  • 重现问题的步骤:详细写出第一步做什么、第二步做什么,如何一步步触发这个错误。
  • 实际行为:当前实际出现了什么错误或不正常的现象。
  • 预期行为:在正常情况下,该功能应该表现出什么效果。
  • 你的环境信息:例如你当前使用的插件版本、NVDA 版本以及操作系统版本。
  1. 填写完成后,切换回浏览模式,按字母 B 键找到“Create (Ctrl+Enter)”按钮。
  2. NVDA 朗读到该按钮后,按 Enter 键,即可提交 Issue。

提交成功后,GitHub 会创建一个新的 Issue 页面。以后插件作者或其他用户可以在该页面回复你的问题。

当提交的 Issue 有新回复时,GitHub 通常会通过邮件通知你。如果插件作者要求补充更多信息,可以重新打开对应的 Issue,在下面继续回复。

有些情况下,插件作者修复问题后,可能会提供包含修复内容的测试版本,请你进行测试。如果测试确认问题已经解决,这项修复通常会在之后的插件正式版本中发布。

写在最后

对于很多 NVDA 用户来说,第一次接触 GitHub Issue 时,可能会觉得这个过程有些陌生。

但当我们真正按照流程操作过一次之后,就会发现,它其实只是把自己遇到的问题,用一种更加正式、更加方便开发者处理的方式反馈出去。

需要说明的是,本文以 WorldVoice 为例介绍 GitHub Issue 的提交方法,主要是希望通过一个具体的例子,让大家了解一种向插件作者反馈问题和建议的渠道。这并不意味着所有 NVDA 插件的问题都必须通过 GitHub Issue 进行反馈。

可以把本文看作一个“抛砖引玉”的例子,大家在实际使用中可以举一反三,根据自己使用的插件以及遇到的具体情况,选择更加合适的反馈方式。

例如,有些插件的作者可能会提供电子邮箱,用户可以直接通过邮件向作者反馈问题、提出建议。插件作者的 Email 邮箱,一般可以在 NVDA 插件商店中相应的插件列表里找到提示,也有可能会在插件的帮助文档、说明文档或者项目页面中提供。

除此之外,不同插件还可能提供其他反馈渠道。因此,当我们遇到问题时,可以先了解一下这个插件的作者提供了哪些联系方式和反馈渠道,再根据实际情况选择合适的方式。

对于插件作者来说,用户提交的每一个 Issue,或者发送的每一封反馈邮件,都可能成为发现问题、改进功能的重要线索;对于用户来说,也多了一条能够直接与插件开发者沟通的渠道。

而当越来越多的 NVDA 用户愿意把自己实际使用过程中遇到的问题反馈给开发者时,插件本身也会在这样的反馈和交流中不断完善。

也许,一条看似普通的用户反馈,最终就会成为插件下一个版本中的一次改变。

标签: 反馈, gitHub, Issue

添加新评论