W3 和 WCAG 要求在不允许为 false 的属性上发生冲突

W3 and WCAG requirements collide on attributes disallowed to be false

According to W3, we should not use false but rather omit the attribute all together. Also, according to W3,当切换部分手风琴时,aria-expandedtrue 和 [=19 之间切换=]假.

对我来说,这听起来很矛盾,我想获得有关如何根据 W3 指南和 WCAG 要求设计控件的指导。

一种方法是声明 aria-anything 被排除在 true or nothing 范例之外。另一个可能是设置一个属性,例如 foldedexpanded 没有值,只知道一个是另一个的否定。

他们中的任何一个都可以接受并接受 W3 和 WCAG 吗?是否有其他最佳实践方法?

一个Boolean attribute is a specific "microsyntax" in HTML。如您所述,它们的使用有一定的规则:

If the attribute is present, its value must either be the empty string or a value that is an ASCII case-insensitive match for the attribute's canonical name, with no leading or trailing whitespace.

只有某些属性使用此微语法。这些可以在 Attribute index 中的 HTML 5 规范中找到,其中值列指出它是 "Boolean attribute"。常用的例子有 disabledreadonlyasync.

aria-expanded 属性虽然接受 true 和 false,但未定义为符合布尔属性微语法。它是 defined under a different specification than HTML 5, the Accessible Rich Internet Applications (WAI-ARIA) specification. It is actually referred to as a state in that specification,不是属性,可以具有值 true、false 或 undefined。