我的问题是,如果你有< label>对于< input>使用[for]属性链接到输入的[id],[id]是否必须实际意味着什么?它读了吗?或者它只是链接他们?
例如.
<label for="input1">Name</label> <input id="input1" />
要么
<label for="name">Name</label> <input id="name" />
这些在屏幕阅读器上会有相同或不同的结果吗?
解决方法
If you have a
<label>
for an<input>
with a[for]
attribute to link to the[id]
of the input,does the[id]
have to actually mean something?
浏览器语义*指的是浏览器如何识别DOM节点以及浏览器将向使用辅助导航的用户读取的内容.
[id]和[class]属性不会添加到语义中.在可能的情况下仍然使用描述性ID和类非常重要,但这只是为了使开发更容易.
Is it read?
不.据我所知,[id]属性永远不会通过网站的正常操作直接读给用户.请参阅下面有关文档片段标识符的说明.
Or is it just to link them?
它告诉标签< input> (或< select>或< textarea> …)标签是标签,并且还提供一些UI功能,例如在单击,点击或以其他方式触发标签时将焦点移动到相关输入.
当标记元素被聚焦时,浏览器将知道告诉屏幕阅读器读取与该元素相关联的标签.
那个[name]属性怎么样?
在< form>中屏幕阅读器不会读取[name]属性,因为它不表示任何语义,但是对于GET请求,[name]属性将用作查询字符串中的键.查询字符串可能会被读取给用户,因此值得考虑使用人类可读的[名称]而不是自动生成的内容.
文档片段标识符怎么样?
如果您计划在页面上使用[id]到< a> nchor,那么当它成为URL的哈希值时,可以读取[id]属性的值.就像[name]属性一样,在这些情况下使用人类可读的[id]值得考虑.
*一个词的定义是有意义的,这使得讨论它自己的意义……困难和相当元