MDL-68390 core: Share focusable selector
authorAndrew Nicols <andrew@nicols.co.uk>
Wed, 15 Jul 2020 07:15:34 +0000 (15:15 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Wed, 15 Jul 2020 07:15:34 +0000 (15:15 +0800)
lib/amd/build/local/aria/focuslock.min.js
lib/amd/build/local/aria/focuslock.min.js.map
lib/amd/src/local/aria/focuslock.js

index 0791632..29dfd21 100644 (file)
Binary files a/lib/amd/build/local/aria/focuslock.min.js and b/lib/amd/build/local/aria/focuslock.min.js differ
index 81ad9a2..f924b72 100644 (file)
Binary files a/lib/amd/build/local/aria/focuslock.min.js.map and b/lib/amd/build/local/aria/focuslock.min.js.map differ
index c8c1191..c3e5748 100644 (file)
@@ -25,9 +25,7 @@
  * @copyright  2019 Andrew Nicols <andrew@nicols.co.uk>
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-const selectors = {
-    focusable: 'input:not([type="hidden"]), a[href], button, textarea, select, [tabindex]',
-};
+import Selectors from './selectors';
 
 const lockRegionStack = [];
 const initialFocusElementStack = [];
@@ -90,7 +88,7 @@ const focusFirstDescendant = () => {
     // For example, a disabled text area cannot be focused, and it becomes difficult to provide a decent query selector
     // to capture this.
     // The use of Array.some just ensures that we stop as soon as we have a successful focus.
-    const focusableElements = Array.from(lockRegion.querySelectorAll(selectors.focusable));
+    const focusableElements = Array.from(lockRegion.querySelectorAll(Selectors.elements.focusable));
 
     // The lock region itself may be focusable. This is particularly true on Moodle's older dialogues.
     // We must include it in the calculation of descendants to ensure that looping works correctly.
@@ -111,7 +109,7 @@ const focusLastDescendant = () => {
     // For example, a disabled text area cannot be focused, and it becomes difficult to provide a decent query selector
     // to capture this.
     // The use of Array.some just ensures that we stop as soon as we have a successful focus.
-    const focusableElements = Array.from(lockRegion.querySelectorAll(selectors.focusable)).reverse();
+    const focusableElements = Array.from(lockRegion.querySelectorAll(Selectors.elements.focusable)).reverse();
 
     // The lock region itself may be focusable. This is particularly true on Moodle's older dialogues.
     // We must include it in the calculation of descendants to ensure that looping works correctly.