From 0db243a7369bc1e642a83d8b84be9437c360f7e2 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Tue, 4 Aug 2015 16:46:58 -0700 Subject: Core: Remove ancestor visibility requirement from `:focusable` selector * Check computed visibility in addition to :visible * Add tests for nested visibility override Fixes #14596 Closes gh-1583 --- tests/unit/core/core.html | 5 +++++ tests/unit/core/selector.js | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/unit/core/core.html b/tests/unit/core/core.html index 366eecebe..5a089aa7b 100644 --- a/tests/unit/core/core.html +++ b/tests/unit/core/core.html @@ -80,6 +80,11 @@ diff --git a/tests/unit/core/selector.js b/tests/unit/core/selector.js index c0a0f4888..ffae7e024 100644 --- a/tests/unit/core/selector.js +++ b/tests/unit/core/selector.js @@ -125,7 +125,7 @@ test( "focusable - disabled elements", function() { } ); test( "focusable - hidden styles", function() { - expect( 8 ); + expect( 10 ); isNotFocusable( "#displayNoneAncestor-input", "input, display: none parent" ); isNotFocusable( "#displayNoneAncestor-span", "span with tabindex, display: none parent" ); @@ -133,6 +133,9 @@ test( "focusable - hidden styles", function() { isNotFocusable( "#visibilityHiddenAncestor-input", "input, visibility: hidden parent" ); isNotFocusable( "#visibilityHiddenAncestor-span", "span with tabindex, visibility: hidden parent" ); + isFocusable( "#nestedVisibilityOverrideAncestor-input", "input, visibility: visible parent but visibility: hidden grandparent" ); + isFocusable( "#nestedVisibilityOverrideAncestor-span", "span with tabindex, visibility: visible parent but visibility: hidden grandparent " ); + isNotFocusable( "#displayNone-input", "input, display: none" ); isNotFocusable( "#visibilityHidden-input", "input, visibility: hidden" ); @@ -210,7 +213,7 @@ test( "tabbable - disabled elements", function() { } ); test( "tabbable - hidden styles", function() { - expect( 8 ); + expect( 10 ); isNotTabbable( "#displayNoneAncestor-input", "input, display: none parent" ); isNotTabbable( "#displayNoneAncestor-span", "span with tabindex, display: none parent" ); @@ -218,6 +221,9 @@ test( "tabbable - hidden styles", function() { isNotTabbable( "#visibilityHiddenAncestor-input", "input, visibility: hidden parent" ); isNotTabbable( "#visibilityHiddenAncestor-span", "span with tabindex, visibility: hidden parent" ); + isTabbable( "#nestedVisibilityOverrideAncestor-input", "input, visibility: visible parent but visibility: hidden grandparent" ); + isTabbable( "#nestedVisibilityOverrideAncestor-span", "span with tabindex, visibility: visible parent but visibility: hidden grandparent " ); + isNotTabbable( "#displayNone-input", "input, display: none" ); isNotTabbable( "#visibilityHidden-input", "input, visibility: hidden" ); -- cgit v1.2.3