checkbox - 标签、复选框和单选按钮

标签 checkbox radio-button label accessibility fieldset

我的网络应用程序使用如下例所示的表单...

First Name      [____________]
Last Name       [____________]
Gender          () Male  () Female

我使用的标记类似于...

<label for="firstName">First Name</label><input type="text" id="firstName" />
<label for="lastName">Last Name</label><input type="text" id="lastName" />
<label>Gender</label>
<fieldset>
  <legend>Gender</legend>
  <input type="radio" name="sex" id="sex-m" value="m">
  <label for="sex-m">Male</label>
  <input type="radio" name="sex" id="sex-f" value="f">
  <label for="sex-f">Female</label>
</fieldset>

我遇到以下问题,不知道如何解决...

  1. 我希望将整组单选按钮像任何其他字段一样进行标记(如上图所示),但是没有任何内容可以将标签链接到(即,其“for”属性没有任何内容,因为每个组中的单选按钮有自己的标签,仅用于单个单选按钮的值)没有“for”属性的标签将无法通过辅助功能合规性。

  2. 字段集的 元素似乎重复了标签的功能。这真的有必要吗?

我曾考虑过将 标签设计为看起来像一个标签,并完全省去单选按钮组的标签,但这对我来说似乎有点老套,并且还会在我的其他地方引入复杂性。代码(依赖

提前致谢。

最佳答案

Ssollinger 答案的第一部分是正确的:

代码应该是:

<label for="firstName">First Name</label><input type="text" id="firstName" />
<label for="lastName">Last Name</label><input type="text" id="lastName" />
<fieldset>
  <legend>Gender</legend>
  <input type="radio" name="sex" id="sex-m" value="m">
  <label for="sex-m">Male</label>
  <input type="radio" name="sex" id="sex-f" value="f">
  <label for="sex-f">Female</label>
</fieldset>

当辅助技术点击男性单选按钮时,大多数会显示为:“性别:男性单选按钮 1 of 2 not selected。”

然后你可以在fieldset上使用CSS , legend 、标签和 inputs 。如果内存正确,字段集可能会成为样式的负担,所以我最终可能会添加 <div>给它:

<label for="firstName">First Name</label><input type="text" id="firstName" />
<label for="lastName">Last Name</label><input type="text" id="lastName" />
<fieldset>
  <legend>Gender</legend>
  <div>
  <input type="radio" name="sex" id="sex-m" value="m">
  <label for="sex-m">Male</label>
  <input type="radio" name="sex" id="sex-f" value="f">
  <label for="sex-f">Female</label>
  </div>
</fieldset>

添加此<div>没有可访问性影响。

就像 ssollinger 的答案中的评论一样,您可以转储 fieldsetlegend方法,但您需要构建所有内容以使其可访问,an example of a build out

关于checkbox - 标签、复选框和单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080416/

相关文章:

visual-c++ - 如何使 MFC 复选框只读但保持启用文本?

jQuery - 按可见性过滤,如果选中

javascript - JQuery .on() 更改事件未触发(页面在 .load() 内)

jquery - 更改asp :label with jQuery then access in codebehind

swift - 使用计时器每秒更改 collectionViewCell.label.text

javascript - 在选中复选框之前禁用提交

jquery - 选中全选时选中所有复选框

javascript - 单选按钮选择动态更改其他单选按钮值

css - 单选按钮样式

text - 多行标签/ TextView 中行高的 xib 控件