From dea51607988690162a098079f46d0a48d62adb13 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 03 Jul 2014 07:40:55 -0400
Subject: [PATCH] Fix datepicker accessibility extension

---
 plugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js     |    7 ++++---
 plugins/jqueryui/js/jquery-ui-accessible-datepicker.js |    7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/plugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js b/plugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js
index d7c9e59..1fc30a1 100755
--- a/plugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js
+++ b/plugins/jqueryui/js/jquery-ui-1.10.4.custom.min.js
@@ -89,13 +89,14 @@
 			.attr('aria-labelledby', inst.id + '-dp-title');
 		}
 		else {
-			inst.dpDiv.attr('id', inst.id + '-dp-widget')
+			var widgetId = inst.dpDiv.attr('id') || inst.id + '-dp-widget';
+			inst.dpDiv.attr('id', widgetId)
 				.attr('aria-hidden', 'true')
 				.attr('aria-labelledby', inst.id + '-dp-title');
 
 				$(inst.input).attr('aria-haspopup', 'true')
 					.attr('aria-expanded', 'false')
-					.attr('aria-owns', inst.id + '-dp-widget');
+					.attr('aria-owns', widgetId);
 		}
 
 		return inst;
@@ -108,7 +109,7 @@
 		var that = this;
 
 		// register additional keyboard events to control date selection with cursor keys
-		$(target).bind('keyup', function(event) {
+		$(target).unbind('keyup.datepicker-extended').bind('keyup.datepicker-extended', function(event) {
 			var inc = 1;
 			switch (event.keyCode) {
 				case 109:
diff --git a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
index ae6ba37..287c8f5 100644
--- a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
+++ b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
@@ -74,13 +74,14 @@
 			.attr('aria-labelledby', inst.id + '-dp-title');
 		}
 		else {
-			inst.dpDiv.attr('id', inst.id + '-dp-widget')
+			var widgetId = inst.dpDiv.attr('id') || inst.id + '-dp-widget';
+			inst.dpDiv.attr('id', widgetId)
 				.attr('aria-hidden', 'true')
 				.attr('aria-labelledby', inst.id + '-dp-title');
 
 				$(inst.input).attr('aria-haspopup', 'true')
 					.attr('aria-expanded', 'false')
-					.attr('aria-owns', inst.id + '-dp-widget');
+					.attr('aria-owns', widgetId);
 		}
 
 		return inst;
@@ -93,7 +94,7 @@
 		var that = this;
 
 		// register additional keyboard events to control date selection with cursor keys
-		$(target).bind('keyup', function(event) {
+		$(target).unbind('keyup.datepicker-extended').bind('keyup.datepicker-extended', function(event) {
 			var inc = 1;
 			switch (event.keyCode) {
 				case 109:

--
Gitblit v1.9.1