JAWS 2018:制作 select/drop-down "clickable"
JAWS 2018: Making a select/drop-down "clickable"
我正在处理一个网站项目并修复可访问性缺陷。
我的设置限制:
- 操作系统是Windows 7/10
- 浏览器为 Internet Explorer 11
- 无障碍软件是 JAWS 2018.1804.26
我无法控制这些限制,所以请不要为任何其他设置提出任何解决方案。
我有一个缺陷,表明 JAWS 应该在 "clickable" 元素中列出 HTML <select>
(下拉列表)。 (这是按下 Ins+Ctrl+/ 键盘和弦时显示的模态对话框。)之前在使用其他 HTML 元素类型时遇到过此类问题,我已经通过以下组合修复了这些问题:
- 添加一个
onclick
处理程序(在我的例子中,一个空函数)
- 向
aria-label
属性添加一个值(在我的例子中,是动态的)
当尝试在当前缺陷中执行这些步骤时,我可以让 <select>
出现在 "clickable" 模态对话框中,但没有列出任何文本(我猜它是 "reporting" 一个空字符串)。尽管有 aria-label
.
的值
其他注意事项:
- 所讨论的
<select>
位于 <span>
的内部,而 <span>
位于 <td>
1[= 的内部92=]
看起来像这样:
<table>
<tbody>
<tr>
<td>
<span>
<select> ... options ... </select>
<span>
</td>
</tr>
</tbody>
</table>
我试过像这样修改上面的代码:
<table>
<tbody>
<tr>
<td>
<span>
<select onclick="emptyHandler" aria-label="Some text">
... options ... </select>
<span>
</td>
</tr>
</tbody>
</table>
function emptyHandler() {
/* This function is empty by design */
/* Its function is to expose an element */
/* as a clickable element to JAWS, when */
/* otherwise JAWS would ignore it. */
}
进行上述修改DID 将元素添加到可点击元素列表中,但不显示文本。你可以看到额外的行,你可以突出显示它,但它只是一些空白 spaces/text(或者可能什么都没有)。
1本页的UI不是我写的,我无意(也未授权) ) 重写整个页面。我怀疑在与 JAWS 交互时,将控件包装在 元素内会做一些非常奇怪的事情,但我无法修复此问题的 that 部分。
我对此有一些疑问,因为我找不到关于它应该如何工作的很好的文档:
- 是否有任何详细的文档说明它应该如何工作?我在 Freedom Scientific 的网站以及 Mozilla 和整个网络上的搜索产生了一些信息,但我希望有一个中心位置可以找到这些类型的答案。特别是,对于什么是 "clickable" 元素似乎没有一致的规范定义。某些元素似乎被视为默认 "clickable",而添加自定义
onclick
处理程序似乎允许将 ANY 元素添加到该列表。这导致我...
- "clickable" 模态对话框在 JAWS 中如何工作?我想我已经弄清楚如何将元素放入此列表中,但它显示的内容似乎有些不一致。这导致我...
- 应该显示在那个模式对话框中的是什么?在之前的测试中,显示的文本似乎是
aria-label
属性中的值,那么为什么它在这里不起作用?
-
<select>
元素会出现在这里是一种不恰当的期望吗?由于这个原因,我总是可以解决这个缺陷,但我不想这样做,除非我确定这是正确的做法。
通过添加的细节,我现在明白了问题所在。 JAWS 中的 "clickable" 对话框(ins+ctrl+/)显示带有onClick()
处理程序,但用于该对话框中 <select>
元素的标签是 select 的 值 ,即 <option>
当前 selected。使用 aria-label
或 aria-labelledby
或 <label for="select-id">
不会影响可点击对话框,尽管在 <button>
上使用这些属性,例如 会 在该对话框中工作。
我建议为 JAWS 提交错误。
好消息是导航到下一个 <select>
元素的 JAWS 快捷键是 C 和显示所有 <select>
元素的对话框是 ins+ctrl+C 并且那个对话框 does尊重 aria-label
或 aria-labelledby'
或 <label for="select-id">
.
这不是错误。对于 JAWS 用户,<select>
绝不是可点击的元素。此击键会带来可点击但无法识别为其他内容的元素列表:链接、按钮、组合框。
因此,将您的缺陷标记为 "Not a bug" 并告诉您的用户使用 Insert+Ctrl+C 代替。
像 JAWS 这样的屏幕 reader 总是试图尽可能地识别 HTML 元素,因此 "a clickable something" 实际上对盲人用户没有太大帮助。不像组合框。
我正在处理一个网站项目并修复可访问性缺陷。
我的设置限制:
- 操作系统是Windows 7/10
- 浏览器为 Internet Explorer 11
- 无障碍软件是 JAWS 2018.1804.26
我无法控制这些限制,所以请不要为任何其他设置提出任何解决方案。
我有一个缺陷,表明 JAWS 应该在 "clickable" 元素中列出 HTML <select>
(下拉列表)。 (这是按下 Ins+Ctrl+/ 键盘和弦时显示的模态对话框。)之前在使用其他 HTML 元素类型时遇到过此类问题,我已经通过以下组合修复了这些问题:
- 添加一个
onclick
处理程序(在我的例子中,一个空函数) - 向
aria-label
属性添加一个值(在我的例子中,是动态的)
当尝试在当前缺陷中执行这些步骤时,我可以让 <select>
出现在 "clickable" 模态对话框中,但没有列出任何文本(我猜它是 "reporting" 一个空字符串)。尽管有 aria-label
.
其他注意事项:
- 所讨论的
<select>
位于<span>
的内部,而<span>
位于<td>
1[= 的内部92=]
看起来像这样:
<table>
<tbody>
<tr>
<td>
<span>
<select> ... options ... </select>
<span>
</td>
</tr>
</tbody>
</table>
我试过像这样修改上面的代码:
<table>
<tbody>
<tr>
<td>
<span>
<select onclick="emptyHandler" aria-label="Some text">
... options ... </select>
<span>
</td>
</tr>
</tbody>
</table>
function emptyHandler() {
/* This function is empty by design */
/* Its function is to expose an element */
/* as a clickable element to JAWS, when */
/* otherwise JAWS would ignore it. */
}
进行上述修改DID 将元素添加到可点击元素列表中,但不显示文本。你可以看到额外的行,你可以突出显示它,但它只是一些空白 spaces/text(或者可能什么都没有)。
1本页的UI不是我写的,我无意(也未授权) ) 重写整个页面。我怀疑在与 JAWS 交互时,将控件包装在 元素内会做一些非常奇怪的事情,但我无法修复此问题的 that 部分。
我对此有一些疑问,因为我找不到关于它应该如何工作的很好的文档:
- 是否有任何详细的文档说明它应该如何工作?我在 Freedom Scientific 的网站以及 Mozilla 和整个网络上的搜索产生了一些信息,但我希望有一个中心位置可以找到这些类型的答案。特别是,对于什么是 "clickable" 元素似乎没有一致的规范定义。某些元素似乎被视为默认 "clickable",而添加自定义
onclick
处理程序似乎允许将 ANY 元素添加到该列表。这导致我... - "clickable" 模态对话框在 JAWS 中如何工作?我想我已经弄清楚如何将元素放入此列表中,但它显示的内容似乎有些不一致。这导致我...
- 应该显示在那个模式对话框中的是什么?在之前的测试中,显示的文本似乎是
aria-label
属性中的值,那么为什么它在这里不起作用? -
<select>
元素会出现在这里是一种不恰当的期望吗?由于这个原因,我总是可以解决这个缺陷,但我不想这样做,除非我确定这是正确的做法。
通过添加的细节,我现在明白了问题所在。 JAWS 中的 "clickable" 对话框(ins+ctrl+/)显示带有onClick()
处理程序,但用于该对话框中 <select>
元素的标签是 select 的 值 ,即 <option>
当前 selected。使用 aria-label
或 aria-labelledby
或 <label for="select-id">
不会影响可点击对话框,尽管在 <button>
上使用这些属性,例如 会 在该对话框中工作。
我建议为 JAWS 提交错误。
好消息是导航到下一个 <select>
元素的 JAWS 快捷键是 C 和显示所有 <select>
元素的对话框是 ins+ctrl+C 并且那个对话框 does尊重 aria-label
或 aria-labelledby'
或 <label for="select-id">
.
这不是错误。对于 JAWS 用户,<select>
绝不是可点击的元素。此击键会带来可点击但无法识别为其他内容的元素列表:链接、按钮、组合框。
因此,将您的缺陷标记为 "Not a bug" 并告诉您的用户使用 Insert+Ctrl+C 代替。
像 JAWS 这样的屏幕 reader 总是试图尽可能地识别 HTML 元素,因此 "a clickable something" 实际上对盲人用户没有太大帮助。不像组合框。