在我的网络应用中,有几种表单使用asp:ValidationSummary
和asp:Label
进行表单的客户端和服务器端验证。但是,当我使用屏幕阅读器(JAWS 16)进行页面上的辅助功能测试时,它只是跳过错误,视障人士不会听到任何错误回读,如果你只是使用键盘导航页面,则无法检测到。
因此,如果出现错误,如果按下提交按钮,任何人都可以告诉我一种关注验证摘要的方法。那将是很好的,我也可以使用JavaScript解决方案,但我无法用任何其他类型的验证替换验证摘要,因为表单数量超过50个。
我的错误代码:
<div>
<asp:ValidationSummary ID="ValidationSummary2" tabindex="-1" runat="server" ShowMessageBox="false"
ShowSummary="true" ForeColor="" DisplayMode="List" CssClass="label label-danger"
ValidationGroup="Registration" />
<asp:Label ID="LblError" runat="server" tabindex="-1" CssClass="label label-danger"></asp:Label>
</div>
JavaScript的:
function ValidateServerButtonClick() {
if (typeof (Page_ClientValidate) == 'function') {
Page_ClientValidate("Registration");
if (Page_IsValid) {
return true;
}
else {
return false;
}
}
}
提交按钮:
<asp:Button ID="btnContinue" CssClass="cui-btn disabled cui-btn-med cui-full-width"
runat="server" CausesValidation="true" OnClick="btncontinue_Click"
OnClientClick="ClearLabel()" Text="Sign up" Enabled="false" ValidationGroup="Registration" />
我尝试了什么:
我已经尝试通过调用focus()
故意将注意力设置在错误上,但这也没有效果。
答案 0 :(得分:1)
将焦点设置到容器DIV应该这样做。 JAWS应该在重点关注后开始阅读内容。
function ValidateServerButtonClick() {
if (typeof (Page_ClientValidate) == 'function') {
Page_ClientValidate("Registration");
if (Page_IsValid) {
return true;
}
else {
setTimeout(function () {
$('#divid').focus();
}, 700);
return false;
}
}
}