html - 部分元素的角色属性值无效?

标签 html w3c-validation role wai-aria

在我现在正在处理的网站中,我有一个类型设置为“main”的部分元素。根据WAI-ARIA , section 元素可以使用 main 作为 role 属性 (role="main").

但是,当我通过 W3C 验证器运行我的站点时,我得到了“元素部分属性角色的错误值主要”。错误。之前在别的网站使用了main值,确实通过了验证,现在已经失效了,报同样的错误。

HTML5 规范最近有变化,把 main 值去掉了吗?我应该相信 WAI-ARIA 还是 W3C 验证器? WAI-ARIA 页面是否过时?我是否应该保留没有任何角色属性的 section 元素(这将恢复为“region”默认值)?

对此有任何想法和提示,我们将不胜感激:)

最佳答案

main角色是否有效取决于您使用的文档类型。如果您使用的是 HTML5 文档类型:<!DOCTYPE html>它应该验证。如果您使用的是较早的文档类型,如 XHMTL 或 html4,则不会。参见 https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/Web_applications_and_ARIA_FAQ#What_about_validation.3F了解详情。

如果您需要在无效且必须验证的地方使用文档类型,您可以通过 JavaScript 添加它们。这将避免验证问题。

然而,main role 仅在用于某些元素时才有效。对于 section元素的有效角色是 alert , alertdialog , application , contentinfo , dialog , document , log , marquee , search , 和 status .

最新版本的HTML; HTML5.1 通过 main 包含对 main 的原生支持元素。您可以使用此元素代替 <section role="main"> .参见 http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-element

可以与 role="main" 一起使用的其他元素包括 article , div , figure , canvas , p , pre , blockquote , output , span , table , td , tr , em , strong , small , s , cite , q , dfn , abbr , time , code , var , samp , kbd , sub , sup , i , b , u , mark , ruby , rt , rp , bdi , bdo , br , 和 wbr ,也许还有其他一些。显然,其中许多是具有隐含语义的专业元素,只能在特定上下文中使用才能有效。最有可能的是 main , div , 或 article将是最适合使用的元素。有关详细信息,请参阅 https://dvcs.w3.org/hg/aria-unofficial/raw-file/tip/index.html#recommendations-table

关于html - 部分元素的角色属性值无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282584/

相关文章:

html - 在页脚中排列图片

css - 错误的 CSS 验证错误? Aptana 工作室 vs W3-Validator

php - PHP uniqid 对于 HTML id 属性安全吗?

Teamcity NTLM 身份验证更改 - 管理员用户在转换过程中丢失

html - 使用显示时 Google map 被裁剪 :Inherit;

javascript - 自定义弹出谷歌地图

html - 使 iframe 和页脚发挥良好

javascript - 为什么我的脚本没有通过 w3c 验证?

grails - 如何使用 Spring Security 插件获取当前用户角色?

grammar - Perl 6是否应该能够从不同的来源中解脱出包含相同角色的问题?