表单或导航标签中的角色属性已过时

Posted

技术标签:

【中文标题】表单或导航标签中的角色属性已过时【英文标题】:Role attribute obsolete in form or nav tags 【发布时间】:2016-05-25 16:25:50 【问题描述】:

简介

我知道,角色属性是 W3C 在WAI-ARIA 1.0 中引入的,然后在html5中进行了改编。

当 HTML5 是新的并且许多浏览器没有实现原生元素 people advised 以使用角色属性(如 <nav role="nav">…</nav>)支持它们时,但他们也提到这将成为 不必要的 .

但目前,众说纷纭:


引导

一位引导成员在GitHub 上表示,WAI-ARIA 规则比当前的 HTML5 规范“更重要”。此外,TutorialsPoint 或 W3Schools 等其他第三方网站也建议添加该属性以授予完全可访问性。


W3C

另一方面,当您输入带有角色属性的可疑表单标签时,W3C-Validator 会发出以下警告。

<form role="form"></form>

元素形式不需要角色属性。

这显然说明不包括角色属性。


终于

是否已经到了忽略备份原生 HTML5 标签(和表单)的时候了,还是仍然需要保证一个完全可访问的网站(例如,对于残障人士/有屏幕阅读器的人) ?是否有某种“官方声明”或指南(最新的)?

【问题讨论】:

【参考方案1】:

这里是 W3C HTML 检查器(验证器)的维护者。简短的回答是current authoritative requirement that’s relevant to the &lt;form role="form"&gt;&lt;/form&gt; 的情况是这样的:

Web 开发人员不应将 ARIA rolearia-* 属性设置为 与定义的默认隐式 ARIA 语义相匹配的值 表。

...其中“表格”表示ARIA in HTML 规范的Document conformance requirements for use of ARIA attributes in HTML 部分中的表格,您可以在此处找到最新版本:

http://w3c.github.io/html-aria/

而规范之所以具有权威性是因为the HTML spec itself formally references it:

用于检查 ARIA role 和使用的一致性检查器要求 HTML 元素的aria-* 属性在ARIA in HTML 中定义。

W3C 检查器因此严格遵守HTML 中的ARIA 中的规则。因此,鉴于以下情况:

&lt;form role="form"&gt;&lt;/form&gt; 是为form 元素设置role 值的情况,该值与form 元素的默认隐式语义相匹配,并且; HTML 中的 ARIA 中的相关规则是 role不应设置为与元素的默认隐式语义匹配的值李>

...因此,检查器给出 元素形式不需要角色属性警告。

是否有一种“官方声明”或指南(即 最新的)?

是的,这正是 ARIA in HTML 规范的内容。

任何与HTML 中的ARIA 规范规则冲突的来源都是错误或过时的,应予以纠正。

【讨论】:

以上是关于表单或导航标签中的角色属性已过时的主要内容,如果未能解决你的问题,请参考以下文章

通过表单更改用户角色

Bootstrap HTML 验证器警告:元素导航不需要角色属性

ASP.NET MVC 表单身份验证 + 授权属性 + 简单角色

从联接表更新自定义属性

根据用户角色隐藏导航栏

实体框架代码优先:关系约束中的从属角色和主体角色中的属性数量必须相同