假设我有以下HTML代码:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
p {
    display:none;
}
input:focus + p {
    display:block;
}
</style>
</head>
<body>
<input />
<p aria-hidden="true">This field should not exceed 200 characters.</p>
</body>
</html>


当我将鼠标光标放在input字段中时,将出现该段落。但是,尽管可见,该段落仍具有属性aria-hidden="true"

在网络可访问性方面,我是否应该引入JavaScript代码,这些代码将根据我的CSS规则显示还是隐藏段落标记来在aria-hiddentrue之间显式切换false

我想弄清楚如何使用这些aria属性,以及它们是否暗示JavaScript开发人员需要添加其他代码来更改HTML标记,从而以反映我的CSS描述的行为的方式来思考。

最佳答案

您的特定示例有些奇怪,但是总的来说,是的,应该使用javascript来更改aria属性的值。就像可以使用JS更改任何element属性的值一样。

如果您有一个自定义复选框,例如<span role='checkbox' aria-checked='false'>(*),那么当选中该复选框时,需要JS将aria-checked的值从FALSE更改为TRUE(当然反之亦然)。

(*)如果您有一个自定义复选框,那么您将拥有其他一些此处未显示的属性,例如tabindex,鼠标和键盘处理程序等。

10-05 20:55
查看更多