带有复选框以选择每一行的HTML表是否应该包含在带有图例元素的字段集中?

带有复选框以选择每一行的HTML表是否应该包含在带有图例元素的字段集中?,html,accessibility,Html,Accessibility,字段集和图例元素用于对相关表单控件进行分组。这很容易理解并适用于“常规”表单,例如“您的详细信息”字段集,其中包含姓名、姓氏等文本输入字段 但是,在应用程序的列表页上,用户在对所选行执行批量操作之前,是否应该使用fieldset和legend元素,在该应用程序中,用户通过关联的复选框选择表行 例如: <form> <fieldset> <legend>Users</legend> <table> <

字段集和图例元素用于对相关表单控件进行分组。这很容易理解并适用于“常规”表单,例如“您的详细信息”字段集,其中包含姓名、姓氏等文本输入字段

但是,在应用程序的列表页上,用户在对所选行执行批量操作之前,是否应该使用fieldset和legend元素,在该应用程序中,用户通过关联的复选框选择表行

例如:

<form>
  <fieldset>
    <legend>Users</legend>
    <table>
      <thead>
        <tr>
          <th></th>
          <th>Name</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><input type="checkbox" name="SelectedItem" value="Anna" /></td>
          <td>Anna</td>
        </tr>
        <tr>
          <td><input type="checkbox" name="SelectedItem" value="Chris" /></td>
          <td>Chris</td>
        </tr>
      </tbody>
    </table>
    <label for="ListAction">Bulk action</label>
    <select id="ListAction" name="ListAction">
      <option value="Nothing" selected="selected">Select action</option>
      <option value="Delete">Delete</option>
      <option value="Suspend">Suspend</option>
    </select>
    <input type="submit" value="Go" name="BulkActionGo" />
  </fieldset>
</form>

使用者
名称
安娜
克里斯
批量操作
选择动作
删除
暂停
声明“分组控件对于相关单选按钮和复选框最为重要。当一组单选按钮或复选框都提交单个命名字段的值时,它们是相关的。”


上述示例就是这种情况,但fieldset/legend似乎仍然不适合此用例,它可能包含大量表格数据和不相关的分页控件,而不是一组简单的表单控件。

不,没有理由将其包含在fieldset中。如果要应用样式元素或在JavaScript中引用样式元素,可以将其放在div中,但在这种情况下,字段集没有任何实际应用。

不,没有理由将其包含在字段集中。如果要应用样式元素或在JavaScript中引用它,可以将其放在div中,但在这种情况下,字段集没有任何实际应用。

最简单的解决方案是使用不同的名称命名每个复选框,例如使用数组(例如,在PHP中很容易解析)

如果要指定单个记录的特征,则意图不同,复选框名称可能链接到行,而不是列

<div class="group">
  <div class="member">
    <div class="name">John</div>
    <label><input type="checkbox" name="john[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="john[play_guitar]" value="1" />Play guitar</label>
  </div>
  <div class="member">
    <div class="name">Paul</div>
    <label><input type="checkbox" name="paul[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="paul[play_guitar]" value="1" />Play guitar</label>
  </div>
</div>

约翰
唱
玩吉他
保罗
唱
玩吉他

这将使辅助技术能够轻松处理表单,而无需使用任何冗余的
字段集

最简单的解决方案是使用不同的名称命名每个复选框,例如使用数组(例如在PHP中很容易解析)

如果要指定单个记录的特征,则意图不同,复选框名称可能链接到行,而不是列

<div class="group">
  <div class="member">
    <div class="name">John</div>
    <label><input type="checkbox" name="john[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="john[play_guitar]" value="1" />Play guitar</label>
  </div>
  <div class="member">
    <div class="name">Paul</div>
    <label><input type="checkbox" name="paul[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="paul[play_guitar]" value="1" />Play guitar</label>
  </div>
</div>

约翰
唱
玩吉他
保罗
唱
玩吉他

这将使辅助技术能够轻松地处理表单,而无需使用任何冗余的
字段集

是的,任何东西都可以在
字段集中
,它就像表单的通用容器一般,
提交
不应该在
中,但是。@junkfoodjunkie很好的一点,在这种情况下,需要定位黑客将提交按钮与其批量操作选择器视觉关联。编辑:和批量操作控件一样,还有带有“Go”按钮的数字输入字段,用于直接跳转到表格数据的特定页面。是的,任何内容都可以位于
字段集中,它就像表单的一般容器一般,
submit
不应该在
中,但是。@junkfoodjunkie很好,在这种情况下,需要定位黑客来直观地将submit按钮与其批量操作选择器相关联。编辑:与批量操作控件一样,还有带有“Go”的数字输入字段用于直接跳转到表格数据的特定页面的按钮。字段集用于包装表单控件元素,它们在表单中始终具有实际应用。或者更确切地说,这就是它们的用途。应该始终使用
,而不是像
这样的非描述性容器,因为
具有语义含义,而
没有语义含义。上面的建议在可访问性和语义方面都非常糟糕。很抱歉,我误解了这个问题,是的,字段集是合适的。字段集用于包装表单控件元素,并且它们在表单中总是有实际应用。或者更确切地说,这就是它们的用途。应该始终使用
,而不是像
这样的非描述性容器,因为
具有语义含义,而
没有语义含义。上述建议在可访问性和语义方面都非常糟糕。对不起,我误解了这个问题,是的,字段集是合适的
<div class="group">
  <div class="member">
    <div class="name">John</div>
    <label><input type="checkbox" name="john[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="john[play_guitar]" value="1" />Play guitar</label>
  </div>
  <div class="member">
    <div class="name">Paul</div>
    <label><input type="checkbox" name="paul[is_singer]" value="1" />Sing</label>
    <label><input type="checkbox" name="paul[play_guitar]" value="1" />Play guitar</label>
  </div>
</div>