HTML中的名称、id、aria和角色属性

HTML中的名称、id、aria和角色属性,html,validation,attributes,accessibility,Html,Validation,Attributes,Accessibility,我知道名称和id在将它们包含到web表单元素中时非常重要,所有这些属性,如名称、id、角色、aria xxx、标题,应该始终包含在html元素中吗 那么,每一篇文章、每一节、每一个导航菜单项都必须具有所有这些属性?或者其中一些与某些元素相关,比如webforms的“name”或javascript目标的“id”?不幸的是,如果某些属性不受支持或不需要,浏览器不会返回验证消息。请给我介绍一下 在某种形式上,可以拥有它吗 名字 正如你所看到的,我把required和aria作为required,还

我知道名称和id在将它们包含到web表单元素中时非常重要,所有这些属性,如名称、id、角色、aria xxx、标题,应该始终包含在html元素中吗

那么,每一篇文章、每一节、每一个导航菜单项都必须具有所有这些属性?或者其中一些与某些元素相关,比如webforms的“name”或javascript目标的“id”?不幸的是,如果某些属性不受支持或不需要,浏览器不会返回验证消息。请给我介绍一下

在某种形式上,可以拥有它吗

名字


正如你所看到的,我把required和aria作为required,还有一个角色,可能会有冲突吗?我知道role attribute=textbox不是正确的,只是为了说明我的疑问。提前谢谢。

这是个好问题。TLDR是否,您不必为所有HTML元素添加所有这些属性。有关更详细的说明,请查看以下文本

您提到的每一个属性都扮演着不同的角色。让我们以您提到的那些为例:

  • id:用于为元素提供唯一标识符。使用JavaScript
    getElementById
    进行引用很有用,也可以使用同一页面中的其他属性进行引用(例如
    如何通过id引用输入元素)

  • 名称:主要用于读取表单元素的数据。在表单通过传统POST调用发布到服务器的某个时间点,
    name
    属性将表示服务器将从网页接收的键/值对的键。如今,人们依赖于webapi调用和AJAX调用,但它们仍然被使用

  • 角色:这对屏幕阅读器和辅助工具很有用。当HTML元素的原始标记元素不能在页面中描述它们的真正语义时,您应该将角色放在HTML元素上。一个常见的例子是人们使用
    div
    元素来构建表。在这种情况下,您需要为构成表的各个div元素添加table、grid、row、cell等角色。如果您使用构建表(、等)的本机HTML元素,角色将是多余的

  • aria xxxx:也用于屏幕阅读器和辅助技术。由于多种原因,使用了多种类型的aria属性。网络上不乏参考文献;您可以在MDN或其他网站上轻松搜索它们。我想在这里指出的是,有些属性使它们变得多余

    • 让我们以上面的代码片段为例<代码>。必需的属性是在HTML5中引入的,对于屏幕阅读器来说已经足够了。因此,如果您的目标是现代浏览器(这很可能),那么添加
      aria required
      是多余的。但是,如果您的目标浏览器不支持HTML5,那么拥有它是很有用的,因为这些浏览器会忽略
      required
      属性
    • 从您的代码片段中获得的另一个示例展示了相同的观点,即
      aria labelledBy
      在这里也是多余的。这是因为您已经通过
      for
      属性将输入标记为
      元素。简而言之,如果原生HTML元素和属性还不够,那么aria属性很有用
总之,每个属性都有其不同的用途。并非所有这些元素都需要始终存在,这取决于您的代码结构、您使用的HTML元素、您针对的浏览器等


希望这有帮助!:)

这是个好问题。TLDR是否,您不必为所有HTML元素添加所有这些属性。有关更详细的说明,请查看以下文本

您提到的每一个属性都扮演着不同的角色。让我们以您提到的那些为例:

  • id:用于为元素提供唯一标识符。使用JavaScript
    getElementById
    进行引用很有用,也可以使用同一页面中的其他属性进行引用(例如
    如何通过id引用输入元素)

  • 名称:主要用于读取表单元素的数据。在表单通过传统POST调用发布到服务器的某个时间点,
    name
    属性将表示服务器将从网页接收的键/值对的键。如今,人们依赖于webapi调用和AJAX调用,但它们仍然被使用

  • 角色:这对屏幕阅读器和辅助工具很有用。当HTML元素的原始标记元素不能在页面中描述它们的真正语义时,您应该将角色放在HTML元素上。一个常见的例子是人们使用
    div
    元素来构建表。在这种情况下,您需要为构成表的各个div元素添加table、grid、row、cell等角色。如果您使用构建表(、等)的本机HTML元素,角色将是多余的

  • aria xxxx:也用于屏幕阅读器和辅助技术。由于多种原因,使用了多种类型的aria属性。网络上不乏参考文献;您可以在MDN或其他网站上轻松搜索它们。我想在这里指出的是,有些属性使它们变得多余

    • 让我们以上面的代码片段为例<代码>。必需的属性是在HTML5中引入的,对于屏幕阅读器来说已经足够了。因此,如果您的目标是现代浏览器(这很可能),那么添加
      aria required
      是多余的。但是,如果您的目标浏览器不支持HTML5,那么拥有它是很有用的,因为这些浏览器会忽略
      required
      属性
    • 从您的代码片段中获取的另一个示例展示了相同的观点,即