【问题标题】:Google Charts table sorting via keyboard谷歌图表表格通过键盘排序
【发布时间】:2014-07-16 20:39:58
【问题描述】:

我正在尝试在必须 100% 符合第 508 节(即残障人士可以访问)的网站上使用 Google Charts API。

Google Charts 表格具有“排序”功能,但在其默认状态下,键盘无法选择列标题进行排序。

我可以使用一些 Javascript 轻松地将“tabindex=0”属性注入到列标题元素中,并且正如预期的那样,这使得列标题可聚焦...但令人惊讶的是,单击 Enter 键什么也没做。如果我使列标题内的排序箭头可聚焦,也会发生同样的事情 - 我可以使用 TAB 专注于它,但我仍然无法选择它。

有人对此有解决方案吗?如果没有直接的方法来创建仅使用键盘可排序的表格,是否有将焦点/按键转换为 onclick 的解决方法?

【问题讨论】:

    标签: javascript sorting google-visualization accessibility


    【解决方案1】:

    我创建了一个使用 jQuery 在按键上重绘图表的小提琴:

    http://jsfiddle.net/mVYeL/

    以下是相关代码:

    google.load('visualization', '1.1', {
        'packages': ['table']
    });
    google.setOnLoadCallback(drawStuff);
    
    var table;
    var data;
    var options = {sortAscending:true};
    
    function sortTable(col) {
        if (options.sortColumn == col) {
            options.sortAscending = !options.sortAscending;
        } else {
            options.sortAscending = true;
        }
        options.sortColumn = col;
        table.draw(data, options);
    }
    
    $(document).keydown(function(e){
        if (e.keyCode==49) { sortTable(0); }
        if (e.keyCode==50) { sortTable(1); }
        if (e.keyCode==51) { sortTable(2); }
    });
    
    function drawStuff() {
        data = new google.visualization.DataTable();
            data.addColumn('string', 'Name');
            data.addColumn('number', 'Salary');
            data.addColumn('boolean', 'Full Time Employee');
            data.addRows([
              ['Mike',  {v: 10000, f: '$10,000'}, true],
              ['Jim',   {v:8000,   f: '$8,000'},  false],
              ['Alice', {v: 12500, f: '$12,500'}, true],
              ['Bob',   {v: 7000,  f: '$7,000'},  true]
            ]);
    
        // Instantiate and draw our chart, passing in some options.
        table = new google.visualization.Table(document.getElementById('chart_div'));
        table.draw(data, options);
    };
    

    【讨论】:

    • 这是一个好的开始。我建议将keydown 更改为听enter,找出表格和列,设置标志,对col ASC 进行排序。然后您可以取消设置 DESC 的标志。此外,大多数辅助技术使用 1-6 来导航 H1-H6,因此要么这不起作用,要么在排序后焦点会转移到其他地方
    • Ryan 是绝对正确的 - 屏幕阅读器已经为 1-3 分配了用途,并且用户希望使用 Enter 按钮来触发焦点元素。尽管如此,Jeremy 的原始评论给了我一个粗略的草图来解决这个问题,Ryan 提供了一个很好的路线图来实现它,所以谢谢你们俩。一旦我有了一个可以工作的 sn-p,我会将其添加为评论以供将来参考。
    猜你喜欢
    • 2022-10-14
    • 2019-06-29
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多