Bug 26041: Enable keyboard navigation without 'ctrl'
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 22 Jul 2020 12:28:44 +0000 (13:28 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 3 Sep 2020 12:18:23 +0000 (14:18 +0200)
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>
koha-tmpl/opac-tmpl/bootstrap/en/includes/calendar.inc

index 83d67c9..f74e92e 100644 (file)
                 }
             });
         });
+
+        // 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>