Asp 视障人士无法访问验证摘要

Asp validation summary not accessible for visually impaired people

在我的网络应用程序中,有几个表单使用 asp:ValidationSummaryasp:Label 来对表单进行客户端和服务器端验证。但是当我在页面上使用屏幕 reader (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:

我试过的:

我已经尝试通过调用 focus() 有意将焦点设置在错误上,但这也没有用。

将焦点设置到您的容器 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;

                }
            }
        }