2 回答
TA贡献1951条经验 获得超3个赞
无论您是否可以使警告消失,请记住验证器和检查器的作用只是为了引起您对潜在问题的注意,但并非每条消息都不一定是真正的问题。对于可访问性检查器尤其如此。他们在全球范围内做出了良好的假设,但有时无法区分错误和有点奇怪但出于某种原因需要的东西。
使用此类工具最重要的是,如果您收到无法/不想修复的警告,请准确了解其含义。如果您可以接受其中的含义,那么您也可以接受警告。要确切地知道它意味着什么,最好的当然是进行手动测试。可访问性工具永远无法取代手动测试。
回到您的具体情况,当然该工具在技术上是正确的:表单必须有一个提交按钮。但实际上,如果表单既没有任何字段也没有任何按钮,则无法发送任何内容。因此,对于您和用户(如果有的话)来说,只会产生很少的烦恼。
不过,您仍然可以在没有实际形式的页面中尝试两件事:
按照其他答案中的建议将 添加
role="presentation"
到 the 中<form>
,以便屏幕阅读器在没有任何内容可填写时不会向用户宣布表单display:none
如果您真的想让可访问性检查器满意,请添加一个虚拟提交按钮,禁用并隐藏,以便没有人可以看到或单击它。请注意,这可能会给使用自定义或禁用 CSS 的用户带来麻烦。当然,当已经有一个真正的提交按钮时,就不应该有任何额外的提交按钮。
思考第二项:你更喜欢什么?工具中的警告,或者一个可能会给 1000000 名用户中的 1 名用户带来麻烦的小黑客解决方案,如果您错误地留下了正常按钮和虚拟按钮,可能还会出现一些有问题的页面?既然您知道可能会产生什么后果,我个人认为,仅仅为了说您已经做到了而清除警告是不值得的,而是按照您的感觉去做。
不使用屏幕阅读器时,role=presentation 没有副作用,因此您对此完全安全。
TA贡献1864条经验 获得超6个赞
我不确定这是否仍会被编译器标记,或者任何引发错误的原因,但您可以使用 display:none 隐藏元素。这也会将其隐藏在辅助技术之外,因此,如果有工具将其标记为问题,则隐藏它可能会阻止其被标记。
您还可以尝试 role="presentation" ,它基本上告诉辅助技术该元素仅用于视觉目的且不包含任何信息。这有点麻烦,但值得一试。
<form style="display:none" id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报