我有一个旧的Web应用程序项目(WAP),需要确保可以访问。这种类型的项目具有一个母版页(Site.Master),并且每个页面(称为Web窗体)都将从该页面继承来保持一致的外观。
全新的母版页如下所示:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="First5Edmx.Site" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
您将看到该正文包含一个form标记,这意味着使用Site.Master作为模板的每个页面上都会有一个表单,无论它实际上是否是表单。如果删除表单标签,则项目将无法编译。
当我在我的网站上运行Web可访问性时,每个页面上都会出现错误“页面包含表单,但没有提交按钮”。当然,这是正确的,但是如何使此代码可访问(无需使用更现代的技术重新创建整个项目)?
不管您是否可以使警告消失,请记住验证器和检查器只是用来吸引您注意潜在问题,但并非每条消息都不一定是真正的问题。辅助功能检查器尤其如此。他们在全球范围内都做出了很好的假设,但有时不知道在错误和某些奇怪的事情之间,但出于任何原因都希望得到它们。
此类工具最重要的是,如果警告您您无法/不想修复它,则必须确切知道其含义。如果您可以忍受暗示,那么您可以忍受警告。要确切了解其含义,最好的方法就是进行手动测试。可访问性工具永远无法取代手动测试。
回到您的特殊情况,该工具在技术上当然是正确的:表单必须具有“提交”按钮。但是,实际上,如果表单既没有任何字段也没有任何按钮,则无法发送任何内容。因此,对您和用户(如果有)的困扰将非常小。
不过,您仍然可以在页面中尝试两种没有真实形式的操作:
role="presentation"
到<form>
在其他答案建议,使屏幕阅读器不会宣布一个形式提供给用户时,有什么可补display:none
,如果您真的想使可访问性检查器满意,则任何人都无法看到或单击它。请注意,这可能会对使用自定义或禁用CSS的用户造成麻烦。当然,当已经有一个真正的按钮时,不应有任何其他的提交按钮。考虑第二个问题:您更喜欢什么?您的工具中是否有警告,或者有些小小的解决方案可能给1000000个用户中的1个用户带来麻烦,如果您由于误操作而留下了正常按钮和虚拟按钮,则可能会导致一些错误页面?既然您知道后果可能是什么,个人而言,我认为不应该仅仅为了说您已经做了,而是按照自己的感觉去做,以消除警告。
不使用屏幕阅读器时,role = presentation没有任何副作用,因此您完全可以放心使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句