当我跳过输入字段时,在输入字段下显示错误消息。还要通过屏幕阅读器阅读错误消息,role="alert"
并尝试使用aria-live="assertive"
(无角色)。在这两种情况下,屏幕阅读器都在阅读错误消息,但不是立即阅读。它首先读取元素标签,然后读取前一个元素的错误消息。
代码片段
<form>
<section>
<input type="text" name="fname" placeholder="fname" class="eleField" aria-invalid="false" aria-required="true" required aria-label="First name"/>
<div class="inline-message" role="alert">
Enter fname
</div>
</section>
<section>
<input type="text" name="lname" placeholder="lname"
class="eleField" aria-invalid="false" aria-required="true" required aria-label="Last name"/>
<div class="inline-message" role="alert">
Enter Lname
</div>
</section>
</form>
$(document).on('blur', '.eleField', function() {
if ($(this).val() === '') {
$(this).attr('aria-invalid', true);
$(this).next('.inline-message').show();
} else {
$(this).attr('aria-invalid', false);
$(this).next('.inline-message').hide();
}
});