隐藏字段508的标签是否符合标准?

时间:2016-04-20 14:52:52

标签: html struts2 accessibility w3c-validation section508

我有以下Struts2代码,它生成一个托运人列表。它仅在用户选择发货类型后显示(JavaScript删除了consola.println(i.toString());类)。

public class Route {

    private int start;
    private arrayList<Stop>stops=new arrayList <Stop>();


    public Route(int start) {
    this.start = start;
    }

    public void addStop( Stop s ){
        stops.add(s);
    }

    public ArrayList <Stop> getStops(){
        return stops;
    }

Struts2代码生成以下HTML,其中每个“删除发件人信息:”标签与每个hidden元素相关联的ID(<div class ="showIfNotOther hidden"> <div class="row"> <div class="col-xs-12 rowsecthead" id="shipperInfoHeader"><s:text name="shipperInfo"/></div> </div> <s:iterator value="chosenShipperViewList" status="status"> <div class="row small-line-height"> <div class="col-sm-2 col-xs-12 "><label for='<s:property value="%{'deleteShipper'+#status.index}" />' class="pull-right"><s:text name="deleteShipperInfo"></s:text>:</label></div> <div class="col-sm-3 col-xs-12 text-left"> <s:url var="deleteLink" action="shipment_deleteShipperFromChosenShipperViewList"></s:url> <s:a id="%{'deleteShipper'+#status.index}" href="%{deleteLink}"> <img src="/llr/theme/delete.gif" width="16" height="16" alt="Map Red X" ></s:a> </div> <hr> </div> </s:iterator> <a>等)是我理解的内容必须是508 compliant

deleteShipper0

当我将HTML放入W3C Markup Validation Service时,我收到了错误

  

label元素的deleteShipper1属性必须引用非隐藏的表单控件。

HTML是否真的不合规(如果不是,我该如何解决),或者这只是 W3C标记验证服务中的错误?

1 个答案:

答案 0 :(得分:4)

label的{​​{3}}定义:

  

label元素表示表单控件的标题。

您当前正在为链接使用label标记,而不是表单控件,这是您的第一个错误。

是的,这是对的:

  

label元素的for属性必须引用非隐藏的表单控件。

使用屏幕阅读器导航时,您必须能够从标签转到表单控件。但在您的情况下,似乎您的标签和未来的表单控件(一旦您将表单控件替换为链接)将在同一个隐藏的div中。所以你不必关心这样的评论。

但我认为使用表单控件将从W3验证器中删除此注释,因为它不处理CSS。