【问题标题】:Select2 adds a title attribute to form controlsSelect2 为表单控件添加标题属性
【发布时间】:2014-07-22 16:20:11
【问题描述】:

我正在使用 Select2 版本 3.4.8,并且最近注意到代码正在为我页面中的每个表单控件添加一个 title 属性,使用关联 label 的文本作为 title。我假设 Select2 开发人员的意思是这是一种可访问性改进,但这是一个可疑的选择,因为已经有一个关联的 label

我正在寻找一种无需直接修补 select2.js 即可禁用此功能的方法。我浏览了文档,找不到任何东西。有没有办法做到这一点,或者我必须修补select2.js(也许注释掉第692行)或编写几行脚本以在将title属性添加到.select2-container div后删除它们? (或者这在 3.5.0 版本中修复了吗?)

【问题讨论】:

  • title 属性在这种情况下确实没用。为什么不向github project 提交拉取请求?
  • 不提交拉取请求意味着我必须自己进行实际的代码更改吗?对于我目前的使用,我只是简单地注释掉了有问题的行,但我对代码库的了解不够深入,无法知道可能会对我不使用的其他功能产生什么样的连锁变化。无论如何,问题是,“是否有一个选项可以在不更改实际 select2 代码的情况下禁用它?”
  • 打开一个问题只是写一些文字。拉取请求需要更改一些代码,是的

标签: javascript jquery accessibility jquery-select2


【解决方案1】:

加载页面时添加以下脚本:

$(".select2-selection__rendered").removeAttr('title');

这将删除标题。

【讨论】:

    【解决方案2】:

    这里的title 属性是无用的,但也是无害的。它应用于具有tabindex="-1" 的元素的屏幕外版本。默认情况下,tabindex="-1" 的元素无法接收键盘焦点,辅助技术永远不会宣布这一点(除非使用 javascript 明确指定焦点)。

    只会公布相关的标签。我已经使用 VoiceOver/Chrome 验证了这种行为。

    【讨论】:

    • 嗯,从美学角度来说,它并不是无害的。或者当我的老板过来问我为什么要在控件中添加工具提示时。 ;)
    • 我很惊讶它添加了一个工具提示,因为title 属性位于一个不在屏幕上的元素上。你自己经历过这种行为吗?
    • 是的,它将title 属性添加到屏幕上的.select2-container,而不是添加到屏幕外的标签。
    猜你喜欢
    • 1970-01-01
    • 2021-10-14
    • 2016-02-29
    • 2011-06-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多