JAWS不读取占位符

时间:2018-12-12 06:45:53

标签: jaws-screen-reader

我正在使用JAWS测试代码。 JAWS将以下日期读取为“移入日期星级dd/mm/i-edit”。

如何使JAWS读取为“ Move In Date star dd/mm/yyyy”。 JAWS不读取"yyyy",而是读取“ i edit”。

<input type="text" aria-label="Move In Date * dd/mm/yyyy" id="startDate" placeholder="dd/mm/yyyy">

2 个答案:

答案 0 :(得分:1)

在日期掩码中使用大写字母,例如YYYY。 JAWS将把它们读为单独的字母。

您不需要做任何其他事情,尽管我建议您在输入中使用常规的label元素构造,而不是aria-label。

答案 1 :(得分:0)

首先,应该是aria-label,而不是placeholder,根据"Accessible Name and Description Computation 1.1" spec来说,但是某些屏幕阅读器会同时读取标签和占位符。其他人只会读取标签。

规范的第2C步说使用aria-label,然后过程停止。 (该规范是一个很大的if / else语句。)步骤2D是使用placeholder * 可能 *的地方。这就是使用“本地标记...文本替代项” 的地方。是否应该将placeholder视为替代文本尚有待商bat,但是,如果满足步骤2C,则永远不应到达步骤2D。

JAWS可能会说“我”而不是“ i”,但这仍然不正确。听到它之后,按 Ins + Space ,然后按 H ,以打开JAWS的语音历史记录窗口。它应该显示所读取的确切文本,应该是您的aria-label

您可以尝试两种方法:

  1. 在JAWS中调整“标点”详细度设置。默认值为“最”。我不记得“最”是否会导致“ /”被读取。如果您没有听到“斜线”,可以尝试将其更改为“全部”,以查看是否会将“ mm”与“ yyyy”分开。
  2. aria-label中使用大写字母表示日期。有时,如果单词不是大写单词,则当单词全部大写时,JAWS会拼出字母。

<input type="text" aria-label="Move In Date * DD/MM/YYYY" id="startDate" placeholder="dd/mm/yyyy">