From 4582bff0635495740022543320fc7c77b0362fc4 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 2 Jun 2014 18:43:21 +0200 Subject: Add aria-* controls to turn tables into a listbox widget --- program/js/list.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'program/js/list.js') diff --git a/program/js/list.js b/program/js/list.js index 65d4a9260..b9a437c26 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -60,6 +60,7 @@ function rcube_list_widget(list, p) 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 @@ init: function() } } + 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 @@ init_row: function(row) }, 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; }; -- cgit v1.2.3