This patch enables keyboard navigation using the arrow keys without the
need to hold the control key for the jQuery UI datepicker.
Test plan
1/ Navigate to an item in the opac and attempt to place a hold
2/ On the resultant screen, use keyboard navigation to trigger the 'Show
more options' dropdown.
3/ Focus on one of the date inputs using keyboard navigation.
4/ Use 'ctrl + arrow' keys to navigate the datepicker.
5/ Note that prior to the patch using 'bare' arrow keys does not trigger
anything
6/ Apply the patch and confirm that the datepicker can now be naviated
using the arrow keys without holding the ctrl key.
7/ Confirm that using the ctrl key combinations continue to work as
expected too.
8/ Signoff
Signed-off-by: Brandon J <brandon.jimenez@inLibro.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
}
});
});
+
+ // jQuery Datepicker - a11y: Map arrow keys
+ var doKeyDown = $.datepicker._doKeyDown
+ $.extend($.datepicker, {
+ _doKeyDown: function(event) {
+ if (event.which === $.ui.keyCode.LEFT ||
+ event.which === $.ui.keyCode.RIGHT ||
+ event.which === $.ui.keyCode.UP ||
+ event.which === $.ui.keyCode.DOWN) {
+ event.ctrlKey = true;
+ doKeyDown(event);
+ } else {
+ doKeyDown(event);
+ }
+ }
+ });
//]]>
</script>