/** * @file * Defines a backwards-compatible shim for the jQuery UI :tabbable selector. */ (($, Drupal, { isTabbable }) => { $.extend($.expr[':'], { tabbable(element) { // The tabbable library considers the summary element tabbable, and also // considers a details element without a summary tabbable. The jQuery UI // :tabbable selector does not. This is due to those element types being // inert in IE/Edge. // @see https://allyjs.io/data-tables/focusable.html if (element.tagName === 'SUMMARY' || element.tagName === 'DETAILS') { const tabIndex = element.getAttribute('tabIndex'); if (tabIndex === null || tabIndex < 0) { return false; } } return isTabbable(element); }, }); })(jQuery, Drupal, window.tabbable);