我目前正致力于表单的辅助功能,并且在输入文本框中遇到了占位符问题。输入的HTML是
<input type="text" placeholder="Email Address" maxlength="100" size="40" id="p_email" name="Contact::ContactEmail" />
在Chrome(ChromeVox)上使用屏幕阅读扩展程序进行测试时,正在读取的文字听起来像是:
电子邮件地址中的电子邮件地址[暂停1秒]编辑文本
如果我删除占位符属性,则读出的文本将变为:
电子邮件地址[暂停1秒]编辑文字
placeholder
属性?答案 0 :(得分:1)
ChromeVox是一个方便的开发人员工具,但大多数需要屏幕阅读器的用户都使用JAWS或NVDA。每个屏幕阅读工具可能会以不同的方式处理占位符,如何阅读它取决于您的标记,尤其是双方标记。
理想情况下,即使标签位于屏幕外,您也应该在输入上使用标签和aria-labelledby。
“编辑文本”表示用户可以编辑文本,您不想更改此功能。
<label id="the-email-label" for="p_email">Email Address</label>
<input type="text" placeholder="Email Address" maxlength="100" size="40" id="p_email" name="Contact::ContactEmail" aria-labelledby="the-email-label"/>