Thomas Bruederli
2014-06-02 4582bff0635495740022543320fc7c77b0362fc4
Add aria-* controls to turn tables into a listbox widget
1 files modified
16 ■■■■■ changed files
program/js/list.js 16 ●●●●● patch | view | raw | blame | history
program/js/list.js
@@ -60,6 +60,7 @@
  this.column_movable = false;
  this.keyboard = false;
  this.toggleselect = false;
  this.aria_listbox = false;
  this.drag_active = false;
  this.col_drag_active = false;
@@ -117,6 +118,12 @@
    }
  }
  if ($(this.list).attr('role') == 'listbox') {
    this.aria_listbox = true;
    if (this.multiselect)
      $(this.list).attr('aria-multiselectable', 'true');
  }
  return this;
},
@@ -159,6 +166,15 @@
      }, false);
    }
    // label the list row with the subject col as descriptive label
    if (this.aria_listbox) {
      var lbl_id = 'l:' + row.id;
      $(row)
        .attr('role', 'option')
        .attr('aria-labelledby', lbl_id)
        .find(this.col_tagname()).eq(this.subject_col).attr('id', lbl_id);
    }
    if (document.all)
      row.onselectstart = function() { return false; };