标签、复选框和单选按钮

2023-11-27

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

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 或 2 未选择。”

然后你可以使用CSSfieldset, legend、标签和inputs。如果内存正确,字段集可能会成为样式的负担,所以我最终可能会添加一个<div> to it:

<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 的回答中的评论一样,您可以转储fieldset and legend方法,但你需要构建一切以使其易于访问,构建的一个例子

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标签、复选框和单选按钮 的相关文章

随机推荐

  • Plotly:如何处理重叠的颜色条和图例?

    我有一个简单的图表 我正在使用 Plotly Express 库来绘制它 图像如下 有两个图例重叠 Rank 和 Genre px scatter ternary data frame data a Length b Beats Per M
  • 车把模板和动态图像

    在我的模板中我正在做类似的事情 img class someClass src imgURL 图像加载正确 但我收到如下警告 GET http localhost 8888 7B imgURL 7D 7D 404 Not Found 有没有
  • 组合 DirectoryInfo 和 FileInfo 路径

    如果我有绝对的目录信息路径和相对的FileInfo路径 我怎样才能将它们组合成绝对路径FileInfo path 例如 var absoluteDir new DirectoryInfo c dir var relativeFile new
  • 在 django-MPTT 中重新排序子节点

    我正在使用本 菲尔什曼的forkdjango MPTT 向丹尼尔 罗斯曼为了推荐 我在尝试重新排序共享公共父节点的节点时遇到了困难 我有一个主键列表 如下所示 ids 5 9 7 3 所有这些节点都有一个父节点 例如主键为 1 目前这些节点
  • 从 ASP.Net 中的 sessionID 获取会话对象

    有没有办法从 a 获取会话对象sessionID 我有一个小项目 使用Flash上 传让用户将文件上传到服务器 但问题是Flash在发送会话和cookie时出现一些错误 在Firefox或Chrome中 但不是IE 所以我找到了一个解决此问
  • Java中的循环继承层次结构

    我知道 Java 中不允许遵循循环继承层次结构 编译器抛出错误 但我真正感兴趣的是了解编译失败的确切原因 class A extends B class B extends C class C extends A this will giv
  • 我可以使用一些指针(x86_64)位来存储自定义数据吗?如果可能的话怎么办?

    From cat proc cpuinfo grep address address sizes 39 bits physical 48 bits virtual address sizes 39 bits physical 48 bits
  • HTTPS 与 Visual Studio 的内置 ASP.NET 开发服务器

    有没有办法通过 HTTPS 访问 Visual Studio 的内置 ASP NET 开发服务器 现在我们可以使用IIS Express在SSL中进行开发和测试 这是一篇完整的文章 解释如何使用 IIS Express 和 Visual S
  • 如何使用 C# sql server 将新行添加到现有表

    我需要写一个程序 该程序的一部分是写入 SQL 数据库 mdf 我在尝试向表中添加新行 称为 数据 时遇到了很多麻烦 这是代码 DataSet ds new DataSet System Data SqlClient SqlDataAdap
  • 如何通过添加数字来创建唯一的文件名?

    我想创建一个方法 它将文件名作为string or a FileInfo如果文件存在 则在文件名中添加一个递增的数字 但我无法完全理解如何以一种好的方式做到这一点 例如 如果我有这个 FileInfo var file new FileIn
  • jquery attr("onClick") - ie 和 ff

    使用 jquery 我想从 A 标签的 onClick 属性获取 javascript a href a 在火狐中 alert a attr onClick shows alert boo 在 IE 6 7 中 alert a attr o
  • 如何在javascript中解析具有两位小数的浮点数?

    我有以下代码 我希望如果price result 等于一个整数 比如说10 那么我想添加两位小数 所以 10 就是 10 点 或者如果它等于 10 6 则为 10 60 不知道该怎么做 price result parseFloat tes
  • python - 计算每个数字出现的次数

    我有一长串用逗号分隔的数字 我可以搜索并统计大多数数字 或更准确地说 2 位数字 出现的次数 如果我有一个像这样的数字序列 1 2 3 4 5 1 6 7 1 8 9 10 11 12 1 1 2我想数一下这个数字有多少次1看来我真的应该得
  • 使用 python 和 selenium 连接到 phantomJs webdriver 时遇到问题

    我正在尝试在使用 selenium 和 phantomjs webdriver 的 Linux 服务器上运行 python 脚本 但是 我不断收到以下错误消息 selenium common exceptions WebDriverExce
  • SwiperJS 样式不适用于 NextJS

    我已经安装了SwiperJS进入我的NextJS项目 我完全遵循了 Swiper 教程文档 但是当我尝试对类进行样式设计时出现问题 swiper swiper slide 样式不响应我的自定义样式 就我而言 我的滑块是一个组件 并且有一个名
  • 增加 iOS 5.x 中 UITextView 中表情符号字符的字体大小

    如果我有 UITextView 并将字体大小设置为 32 当我运行应用程序 在模拟器和设备上 时 我会看到一个大光标 并且我键入的文本就像我想象的那样出现 但如果我切换表情符号键盘 它们会显示很小 就像字体大小从未增加一样 我知道这些表情符
  • 从 Visual Studio 2015 构建时自动发布 Web 应用程序

    有没有什么方法可以在成功构建时使用预先创建的发布配置文件自动发布 Web 应用程序 我不想必须单击发布图标 需要在 Visual Studio 2015 上成功构建 Web 项目时发生这种情况 不使用宏 任何样品将不胜感激 拉米的解决方案有
  • 检查空手道的 2 个不同状态

    我有一个关于空手道框架的问题 我想知道我们是否可以检查空手道的 2 状态 例如 给定 url myUrl 当方法得到 然后状态 200 或 204 感谢您的帮助 Yes Then assert responseStatus 200 resp
  • C++:除了虚函数之外,还有哪些原因导致“未定义引用‘typeinfo for [class name]’”

    其中一些错误可以通过修改来解决 virtual void draw to virtual void draw 但是 除了虚拟函数之外 这些错误的其他原因可能是什么 出现以下错误可能是什么原因 tmp cciGEgp5 o rodata ZT
  • 标签、复选框和单选按钮

    我的网络应用程序使用如下例所示的表单 First Name Last Name Gender Male Female 我使用的标记类似于