为了改善tablesorter插件输出的可访问性,我被要求在可排序的列标题中包含一个按钮元素。
当我包含一个按钮时,该按钮不会触发任何排序操作。
当我添加"按钮"时也是如此。到selectorSort
选项。
我修改了tablesorter demo jsfiddle,以便第一个列标题包含button
和"按钮"已添加到selectorSort
。
(按钮元素的存在应该作为屏幕阅读器用户的提示,标题中有一个可操作元素,因为标题本身通常不可操作。我理解aria-label属性可以提供相关指令,但我告诉我需要更多内容,并且我已被专门指示添加按钮元素。)
答案 0 :(得分:1)
内置于忽略表头中表单元素的点击。您可以通过更改内部正则表达式(demo)来覆盖它:
HTML
<table class="tablesorter">
<thead>
<tr>
<th>AlphaNumeric</th>
<th>Numeric</th>
<th>Animals</th>
<th>Sites</th>
</tr>
</thead>
<tbody>
<!-- ... -->
</tbody>
</table>
脚本
$(function() {
// default regex = /(input|select|button|textarea)/i;
// remove "button" from ignored formElements list
$.tablesorter.regex.formElements = /(input|select|textarea)/i;
$('table').tablesorter({
theme: 'blue',
headerTemplate: '<button>{content}</button>{icon}',
widgets: ['zebra', 'columns'],
selectorSort: "th, button"
});
});