0

我为表单元素创建的标签是否需要在 <form> 正文中?例如,这是否符合要求:

<div style="display: none;">
    <label for="somename">Some Name</label>
    <!-- more labels.. //-->
</div>

<!-- insert lots of HTML here //-->

<form>
<input type="text" name="somename" id="somename">
<!-- insert more elems here //-->
</form>
4

4 回答 4

1

通常,除非您碰巧在页面上拥有超过 1 个表单,否则该标签并不能真正提供太多语义含义,在这种情况下,表单标签指示它与哪些表单元素相关联。

话虽这么说,标签也不依赖于它们的位置,因为它们通过该元素的 ID 与 1 个和仅 1 个其他元素相关联,所以不,你把它放在相对于它是标签的元素的位置并不重要,但通常最好将标签放在元素附近。如果页面偏离其描述的元素太远,我会质疑页面的语义有效性,并且确保您的文档具有语义是可访问性的关键组成部分。508 确实只需要尽最大努力实现可访问性,但很少有语义文档难以做到的情况。

于 2010-01-14T21:28:00.813 回答
1

不。理想情况下,它们应该紧挨着与之相关的元素,但不一定非要如此。确实,508 标准似乎含糊不清;其中一些是因为您可以尝试匹配超过 1 个级别的合规性。我总是发现优先级 1 508 的合规性低得令人沮丧。你可以逃脱大多数任何事情。我一直试图做的两件事(至少)是

  1. 通过检查器运行网站或页面
  2. 在纯文本浏览器中查看网站

我认为第二步使我成为比第一步更好的可访问网站开发人员,因为很明显,一些常见的事情令人沮丧(例如,在每个页面的顶部有大量导航链接,至少没有某种方式可以跳过它们)。如果您已经在屏幕阅读器中检查您的网站,那么您可能领先于游戏。

于 2010-01-20T18:25:37.970 回答
0

如果有人想知道,我安装了迅雷屏幕阅读器,我上面提供的格式完全可以访问。

于 2010-01-14T20:21:27.123 回答
0

你也可以使用

<label class="hideme" for="blah">blah blah</blah>

在哪里

.hideme {
    display: none;
}
于 2010-01-20T18:21:08.183 回答