jQuery - aria-controls vs identify/select DOM 元素的数据属性 - 哪个是首选方法?

jQuery - aria-controls vs data attributes to identify/select DOM element - which is preferred method?

我正在设计网页,希望能够 hide/show 某些 div 基于用户点击过滤器按钮的内容。

我已经看到 DOM 带有 aria-controls 和数据属性的元素(我可以将其中任何一个添加到我的 div 元素中以便稍后使用 jQuery 找到它们并且show/hide 他们)。

当用jQuery选择DOM个元素时,我想知道这两种方法有区别吗?

我用 Google 搜索了 aria-controls,但还没找到答案。

哪种方法是首选方法(为什么)?

非常感谢

When it comes to selecting DOM elements with jQuery, I wondered if there is a difference between the two methods?

从性能的角度来看,不。它们都只是属性,我不知道有什么特殊机制可以提高 aria-* 属性查找元素的性能。

从意识形态的角度来说,是的。

aria-* 属性旨在增强 JavaScript 繁重页面的可访问性。如果 JavaScript 的目的是增强可访问性,那么基于 aria 属性的 select 元素可能有意义。如果您只想标识用户界面组件,那么使用 data 属性可能更具描述性。如果您希望旧版浏览器支持新版浏览器中的辅助功能,那么 JavaScript selecting 基于 aria 属性的元素是有意义的,因为您正在创建一个 pollyfill,它很可能即使在支持的浏览器中也需要使用 aria 属性。

我会使用这些准则:

  1. 为旧版浏览器中的辅助功能创建 pollyfill(select 作者 aria
  2. 构建您自己的辅助功能增强功能(select by aria
  3. 想要识别用户界面元素而不考虑可访问性,或者与可访问性无关(使用 data 属性)

ARIA 控件用于辅助功能,data 属性用于您自己的自定义用途,这对浏览器没有意义,但对您的应用程序有意义。最终这就是差异化因素。