Html 标签";至于;和输入“;id";
我目前正在为CMS开发一个表单模块,这样我们的用户就可以创建自己的表单来显示在他们的网站上,我正在努力确保所有的表单都可以通过标签等方式访问 我的问题是,如果您有一个Html 标签";至于;和输入“;id";,html,input,accessibility,Html,Input,Accessibility,我目前正在为CMS开发一个表单模块,这样我们的用户就可以创建自己的表单来显示在他们的网站上,我正在努力确保所有的表单都可以通过标签等方式访问 我的问题是,如果您有一个的,它带有一个[for]属性来链接到输入的[id],那么[id]实际上是否意味着什么?它是读的吗?还是只是为了把它们联系起来 例如 名称 或 名称 这些在屏幕阅读器上会有相同或不同的结果吗?不会,永远不会 如果您将自己置于用户可以看到id或class的情况下,那么您可能犯了一些可怕的错误,或者您试图获得非自然的代码透明度(例如,
的
,它带有一个[for]
属性来链接到输入的[id]
,那么[id]
实际上是否意味着什么?它是读的吗?还是只是为了把它们联系起来
例如
名称
或
名称
这些在屏幕阅读器上会有相同或不同的结果吗?不会,永远不会
如果您将自己置于用户可以看到id
或class
的情况下,那么您可能犯了一些可怕的错误,或者您试图获得非自然的代码透明度(例如,这可能适用于教室情况)
class
和id
属性仅用于编程目的。它们应该遵循您为自己设置的命名约定,并且从程序员的角度来看尽可能有意义
如果您有一个
的
,它带有一个[for]
属性来链接到输入的[id]
,那么[id]
实际上是否意味着什么
浏览器语义*指浏览器如何识别DOM节点以及浏览器将向使用辅助导航的用户读取的内容
[id]
和[class]
属性不会增加语义。在可能的情况下,仍然使用描述性ID和类很重要,但这只是为了使开发更容易
它是读的吗
没有。据我所知,[id]
属性从未通过网站的正常操作直接读取给用户。请参阅下面关于文档片段标识符的注释
还是只是为了把它们联系起来
它告诉标签标签正在标记哪个
(或
或
..),还提供一些UI功能,例如在单击、点击或以其他方式触发标签时将焦点移动到相关输入
当标签元素被聚焦时,浏览器将知道如何告诉屏幕阅读器读取与该元素相关联的标签
[name]
属性如何
在
屏幕中,阅读器不会读取[name]
属性,因为它不表示任何语义,但是对于GET
请求,[name]
属性将用作查询字符串中的键。查询字符串可能会被用户读取,因此值得考虑使用人类可读的[name]
而不是自动生成的东西
文档片段标识符呢 如果您计划使用
[id]
到
n或在页面下方,则当[id]
属性的值成为URL的哈希值时,可以读取该值。就像使用[name]
属性一样,对于这些情况,可能值得考虑使用人类可读的[id]
*一个定义为意义的词,这使得讨论它自己的意义…困难且相当元化它不一定意味着什么,但最好将它标记为逻辑性的东西,这样其他人,包括你未来的自己,就不会完全被其他东西混淆,为了你自己的理智,试着让名字有意义。当我做自己的html时,我的ID是有意义的,但在这种情况下,当我在数据库中循环时,ID将被输入1,input2input3等。如果您不能使用
进行,名称
我在其他地方读到过,但是标签
在输入
@Liam的一个单独的div中,我相信我刚才在末尾添加了一个关于这一点的注释。这个答案在很大程度上仍在进行中。如果你注意到我还需要补充什么,请告诉我。好的,谢谢。这是有道理的。我通常会使用描述性ID,但由于它位于循环中,它们被命名为input1、input2、input3等。
<label for="input1">Name</label>
<input id="input1" />
<label for="name">Name</label>
<input id="name" />