考虑到我无法在其他任何地方找到需要此功能的其他人的单个实例,这个可能是一个不受欢迎的要求。那说:
我正在处理的网站使用了几十种不同的验证器控件(从RequiredFieldValidaotrs到CustomValidators的所有内容),用于表单验证。作为Section 508合规性的一部分,我们必须支持禁用CSS的用户,这是有问题的,因为验证器将错误文本呈现给页面并使用CSS显示属性来隐藏它。禁用CSS时,屏幕阅读器都可以看到所有错误消息。
如果没有使用标签和回发来显示和隐藏所述标签,是否有任何已知的方法可以使用禁用CSS的ASP.Net验证器控件?
答案 0 :(得分:0)
使用FieldValidator控件上的Display="None"
属性和ValidationSummary
标记来包含消息。
<form id="form1" runat="server">
<asp:TextBox runat="server" ID="TextBox1" /> <br />
<asp:TextBox runat="server" ID="TextBox2" /> <br />
<asp:Button runat="server" Text="Go" />
<div class="messages">
<asp:ValidationSummary id="summery1" runat="server"/>
</div>
<div>
<asp:Panel ID="Panel1" runat="server" >
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="Required Field Validator1 empty" ControlToValidate="TextBox1" Display="None" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage="Required Field Validator2 empty" ControlToValidate="TextBox2" Display="None" />
</asp:Panel>
</div>
</form>
HOWEVER ....(总是有一个问题)...使用此方法,验证消息本身仅存储在JavaScript中。这意味着如果禁用Javascript它将无法工作。我假设这不是一个大问题,因为你在WebForms(依赖JS)工作,但我认为值得一提。
并且为了记录,可访问性问题主要是马蹄铁。我想我知道可访问性,直到我真正与视障人士(100%盲人)合作。然后,我了解到JS的工作正常(假设他们知道要寻找新的内容......)并且他们只是从链接到链接跳过页面,直到找到他们所追求的内容。而基于表格的布局并没有减慢它们1秒的速度。几年后被SOOO无法忍受地宣传CSS的男孩,这是一个难以吞咽的药丸....