为了账号安全,请及时绑定邮箱和手机立即绑定

由于每个页面上都有表单标签,Web 应用程序项目无法访问

由于每个页面上都有表单标签,Web 应用程序项目无法访问

C#
繁华开满天机 2023-09-24 16:02:09
我有一个遗留的 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>您将看到正文包含一个表单标记,这意味着使用 Site.Master 作为模板的每个页面都会有一个表单,无论它实际上是否是表单。如果删除表单标签,项目将无法编译。当我在网站上运行 Web 可访问性时,每个页面上都会收到错误“该页面包含表单,但没有提交按钮”。当然,这是正确的,但是如何使该代码易于访问(无需使用更现代的技术重新创建整个项目)?
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

无论您是否可以使警告消失,请记住验证器和检查器的作用只是为了引起您对潜在问题的注意,但并非每条消息都不一定是真正的问题。对于可访问性检查器尤其如此。他们在全球范围内做出了良好的假设,但有时无法区分错误和有点奇怪但出于某种原因需要的东西。

使用此类工具最重要的是,如果您收到无法/不想修复的警告,请准确了解其含义。如果您可以接受其中的含义,那么您也可以接受警告。要确切地知道它意味着什么,最好的当然是进行手动测试。可访问性工具永远无法取代手动测试

回到您的具体情况,当然该工具在技术上是正确的:表单必须有一个提交按钮。但实际上,如果表单既没有任何字段也没有任何按钮,则无法发送任何内容。因此,对于您和用户(如果有的话)来说,只会产生很少的烦恼。

不过,您仍然可以在没有实际形式的页面中尝试两件事:

  • 按照其他答案中的建议将 添加role="presentation"到 the 中<form>,以便屏幕阅读器在没有任何内容可填写时不会向用户宣布表单

  • display:none如果您真的想让可访问性检查器满意,请添加一个虚拟提交按钮,禁用并隐藏,以便没有人可以看到或单击它。请注意,这可能会给使用自定义或禁用 CSS 的用户带来麻烦。当然,当已经有一个真正的提交按钮时,就不应该有任何额外的提交按钮。

思考第二项:你更喜欢什么?工具中的警告,或者一个可能会给 1000000 名用户中的 1 名用户带来麻烦的小黑客解决方案,如果您错误地留下了正常按钮和虚拟按钮,可能还会出现一些有问题的页面?既然您知道可能会产生什么后果,我个人认为,仅仅为了说您已经做到了而清除警告是不值得的,而是按照您的感觉去做。

不使用屏幕阅读器时,role=presentation 没有副作用,因此您对此完全安全。


查看完整回答
反对 回复 2023-09-24
?
慕尼黑的夜晚无繁华

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>


查看完整回答
反对 回复 2023-09-24
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信