Asp验证摘要无法供视障人士使用

时间:2015-11-05 21:24:20

标签: javascript asp.net validation accessibility jaws-screen-reader

在我的网络应用中,有几种表单使用asp:ValidationSummaryasp: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" />

呈现HTML: enter image description here

我尝试了什么:

我已经尝试通过调用focus()故意将注意力设置在错误上,但这也没有效果。

1 个答案:

答案 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;

                }
            }
        }