在我现在正在处理的网站中,我有一个类型设置为“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/