标记“for”和输入“id”

时间:2016-03-31 13:18:26

标签: html input accessibility

我目前正在为CMS的表单模块工作,以便我们的用户可以创建自己的表单以显示在他们的网站上,我正在尝试确保所有表单都可以通过标签等访问。

我的问题是,如果<label> <input> [for]属性[id]链接到输入的[id],那么{{1}实际上意味着某事?它读了吗?或者只是链接他们?

例如

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

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

这些在屏幕阅读器上会有相同或不同的结果吗?

2 个答案:

答案 0 :(得分:7)

  

如果<label> <input> [for]属性[id]链接到输入的[id],那么[id]是否必须实际什么意思?

浏览器语义*指的是浏览器如何识别DOM节点以及浏览器将向使用辅助导航的用户读取的内容。

[class][id]属性添加到语义。在可能的情况下仍然使用描述性ID和类非常重要,但这只是为了使开发更容易。

  

是否已阅读?

没有。据我所知,<input>属性永远不会通过网站的正常操作直接读给用户。请参阅下面有关文档片段标识符的说明。

  

或者只是链接它们?

它告诉标签标签标注的<select>(或<textarea>[name] ...),并提供一些UI功能,例如在标签时将焦点移动到相关输入单击,点击或以其他方式触发。

当标注元素被聚焦时,浏览器会知道告诉屏幕阅读器读取与元素相关联的标签。

<form>属性怎么样?

[name]屏幕中,读者不会读取GET属性,因为它不表示任何语义,但对于[name]请求,将使用[name]属性作为查询字符串中的键。可以向用户读取查询字符串 ,因此值得考虑使用人类可读的[id]而非自动生成的内容。

文档片段标识符怎么样?

如果您计划在页面中使用<a>[id] nchor,则当[name]属性成为URL的哈希值时,可以读取该值。与[id]属性一样,在这些情况下使用人类可读的 =SUMPRODUCT(--(A1:A5<>"")*--(B1:B5<>"")) 值得考虑。

*这个词的定义是有意义的,这使得讨论它自己的含义......困难而且相当元

答案 1 :(得分:0)

不,不是这样的。

如果您将自己置于用户可以看到idclass的情况下,那么您可能已经做了一些可怕的错误,或者您尝试使用不自然级别的代码透明度。例如,这可能适合在教室中使用..

classid属性仅用于编程目的。它们应该遵循您为自己设置的命名约定,并从程序员的角度尽可能多地理解。