Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Don't trigger :focus-visible matching if a meta-key was pressed.
Also, move UpdateHadKeyboardEvent() call into KeyboardEventManager::KeyEvent(). Happy to revert the latter change if folks don't like it, but it seemed logically consistent with e.g. gesture detection. Bug: 920458 Change-Id: Ia423a0533325314ae4f83e619337b5a81af0f4c4
- Loading branch information
1 parent
e68120d
commit 718277d
Showing
4 changed files
with
69 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<title>CSS Test (Selectors): Keyboard shortcut combinations do not trigger :focus-visible</title> | ||
<link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org" /> | ||
<link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" /> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<style> | ||
:focus-visible { | ||
outline: 0; | ||
outline-color: tomato; | ||
background-color: tomato; | ||
} | ||
|
||
:focus:not(:focus-visible) { | ||
outline: darkgreen dotted 1px; /* fallback for Edge */ | ||
outline: darkgreen auto 5px; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
This test checks that using keyboard combinations with [Ctrl], [Alt] or [Cmd] | ||
do not trigger <code>:focus-visible</code> matching. | ||
<ol id="instructions"> | ||
<li>If the user-agent does not claim to support the <code>:focus-visible</code> pseudo-class then SKIP this test.</li> | ||
<li>Click the element below that says "Click me, then use a keyboard shortcut."</li> | ||
<li>Press a keyboard combination including [Ctrl], [Alt] or [Cmd], such as <code>Ctrl</code> + <code>y</code></li> | ||
<li>If the element has a red background, then the test result is FAILURE. If the element has a green outline, then the test result is SUCCESS.</li> | ||
</ol> | ||
<br> | ||
<div id="el" tabindex="0">Click me, then use a keyboard shortcut.</div> | ||
<script> | ||
async_test(function(t) { | ||
el.addEventListener("focus", t.step_func(function(e) { | ||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)", "after focus()"); | ||
})); | ||
el.addEventListener("keydown", t.step_func(function(e) { | ||
if (e.altKey || e.ctrlKey || e.metaKey) { | ||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)", "after kb event"); | ||
t.done(); | ||
return; | ||
} | ||
assert_true(false, "No modifier key"); | ||
t.done(); | ||
})); | ||
}, "Keyboard focus should match :focus-visible"); | ||
</script> | ||
</body> | ||
</html> |