From 6d3ab605b17223f79d94a3bf82d8e4f16101cb1c Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 04 Jun 2014 10:23:43 -0400
Subject: [PATCH] Make autocomplete widget actually work with screen readers
---
program/js/app.js | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/program/js/app.js b/program/js/app.js
index 9d08a3f..dd7b51f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3439,9 +3439,7 @@
this.env.recipients_delimiter = this.env.recipients_separator + ' ';
obj.keydown(function(e) { return ref.ksearch_keydown(e, this, props); })
- .attr('autocomplete', 'off')
- .attr('aria-autocomplete', 'list')
- .attr('aria-expanded', 'false');
+ .attr({ 'autocomplete': 'off', 'aria-autocomplete': 'list', 'aria-expanded': 'false', 'role': 'combobox' });
};
this.submit_messageform = function(draft)
@@ -4586,9 +4584,9 @@
}
if (node) {
- $(node).addClass('selected').removeAttr('aria-selected', 'true');
+ $(node).addClass('selected').attr('aria-selected', 'true');
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 @@
}
if (ul.childNodes.length) {
- this.ksearch_pane.show();
- // select the first
- if (!this.env.contacts.length) {
- 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')
+ .attr('aria-owns', 'rcmKSearchpane');
+
+ this.ksearch_pane.show();
+
+ // select the first
+ if (!this.env.contacts.length) {
+ this.ksearch_select($('li:first', ul).get(0));
+ }
}
if (len)
--
Gitblit v1.9.1