diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 48125517ee11..3f738b5c5444 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -488,6 +488,7 @@ class Dropdown { } const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS)) + .filter((item) => $(item).is(':visible')) if (items.length === 0) { return diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index bfe5aebf589c..7bc1abca20c2 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -1585,4 +1585,45 @@ $(function () { dropdown.show(true) }) + + QUnit.test('it should skip hidden element when using keyboard navigation', function (assert) { + assert.expect(3) + var done = assert.async() + + var fixtureHtml = [ + '', + '