【问题标题】:Should I repeat label text in for="...." and id=".."?我应该在 for="...." 和 id=".." 中重复标签文本吗?
【发布时间】:2011-02-23 02:57:52
【问题描述】:
  • 第二种方法有什么缺点吗? 为什么http://www.webstandards.org/ 决定使用第二种方法
  • 第一种方法比第一种方法更好吗 屏幕阅读器用户?

第一

<label for="name">Name</label>
      <input id="name" />

第二

<label for="n">Name</label>
      <input id="n" />

【问题讨论】:

    标签: css xhtml accessibility web-standards screen-readers


    【解决方案1】:

    唯一的“缺点”是 id 是非描述性的。对于内容较少的页面,这没什么大不了的,但对于较大的页面,使用描述性 ID 有助于开发。同样,ID 必须是唯一的,因此单字母方法在输入 #26 时会过时:p

    附带说明一下,webstandards.org 可能已通过压缩实用程序运行其 html,该实用程序将其描述性 ID 更改为单个字母以最大程度地减少下载时间。例如

    他们的内部代码是您的第一个示例,而压缩机吐出您的第二个示例。

    【讨论】:

    • 所以无论我们在for="..."id="..." 中写入什么内容,对于屏幕阅读器软件和用户来说都无关紧要,对吗?
    • 正确 - 只要 FOR 与 ID 匹配,那么屏幕阅读器就会知道这是标签。无论是“B”还是“Bazinga”;)
    • 我们是否应该将第一种方法视为最佳实践?
    • 描述性 ID、变量、类名,所有这些 - 是最佳实践。谁想编辑一个充满 id="b" class="y" onclick="c(this)" 的网站?嘿嘿
    • @Dan:不过它可能是一些 HTML 压缩器的输出。
    【解决方案2】:

    我用这个:

        
    

    【讨论】:

    • 我相信 IE6 不支持隐式标签。最好做明确的标签,直到这个浏览器的使用消失。
    • @Gert G:是吗?你真的认为 IE6 用户会甚至注意到不同之处吗? :p 我没有。我敢打赌他们不会。 (为了记录,IE6 不支持的是标签功能,它使标签上的点击将焦点发送到它的标签)
    • @reisio- 如果我们将input 保留在label 中,那么在这种情况下需要for="..."
    • @reisio 好吧,如果不是 IE... 避免让标签在仅支持显式标签或对隐式标签有错误支持的屏幕阅读器中工作。
    • @metal:不,根本不需要'for'属性@Gert:屏幕阅读器是一个荒谬的概念。一个针对几乎不被解析的 HTML 的 TTS 引擎会更智能,而且平均成本要低几百美元。这个简单的 HTML 至少在 1998 年之前就已经成为标准 (w3.org/TR/REC-html40-971218/interact/forms.html#idx-label-1),所有相关的 UA 都支持它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 2011-08-07
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多