Make autocomplete widget actually work with screen readers

pull/195/head
Thomas Bruederli 10 years ago
parent f25be2b863
commit 6d3ab605b1

@ -3439,9 +3439,7 @@ function rcube_webmail()
this.env.recipients_delimiter = this.env.recipients_separator + ' '; this.env.recipients_delimiter = this.env.recipients_separator + ' ';
obj.keydown(function(e) { return ref.ksearch_keydown(e, this, props); }) obj.keydown(function(e) { return ref.ksearch_keydown(e, this, props); })
.attr('autocomplete', 'off') .attr({ 'autocomplete': 'off', 'aria-autocomplete': 'list', 'aria-expanded': 'false', 'role': 'combobox' });
.attr('aria-autocomplete', 'list')
.attr('aria-expanded', 'false');
}; };
this.submit_messageform = function(draft) this.submit_messageform = function(draft)
@ -4586,9 +4584,9 @@ function rcube_webmail()
} }
if (node) { if (node) {
$(node).addClass('selected').removeAttr('aria-selected', 'true'); $(node).addClass('selected').attr('aria-selected', 'true');
this.ksearch_selected = node._rcm_id; this.ksearch_selected = node._rcm_id;
$(this.ksearch_input).attr('aria-activedecendant', 'rcmkSearchItem' + this.ksearch_selected); $(this.ksearch_input).attr('aria-activedescendant', 'rcmkSearchItem' + this.ksearch_selected);
} }
}; };
@ -4769,17 +4767,18 @@ function rcube_webmail()
} }
if (ul.childNodes.length) { if (ul.childNodes.length) {
// set the right aria-* attributes to the input field
$(this.ksearch_input)
.attr('aria-haspopup', 'true')
.attr('aria-expanded', 'true')
.attr('aria-owns', 'rcmKSearchpane');
this.ksearch_pane.show(); this.ksearch_pane.show();
// select the first // select the first
if (!this.env.contacts.length) { if (!this.env.contacts.length) {
this.ksearch_select($('li:first', ul).get(0)); this.ksearch_select($('li:first', ul).get(0));
} }
// set the right aria-* attributes to the input field
$(this.ksearch_input)
.attr('aria-haspopup', 'true')
.attr('aria-expanded', 'true')
.attr('aria-owns', 'rcmKSearchpane')
} }
if (len) if (len)

Loading…
Cancel
Save