diff options
| author | Patrick H. Lauke <[email protected]> | 2019-03-12 13:16:18 +0000 |
|---|---|---|
| committer | XhmikosR <[email protected]> | 2019-03-12 15:16:18 +0200 |
| commit | 3e05d016cf18e99725b9e77491a501c97b8dc7ac (patch) | |
| tree | 1e1d96690a868c877c3951692f9aba48df97107d /scss | |
| parent | e8827874ad2c08556169c8bcdc6a4529bd5f6907 (diff) | |
| download | bootstrap-3e05d016cf18e99725b9e77491a501c97b8dc7ac.tar.xz bootstrap-3e05d016cf18e99725b9e77491a501c97b8dc7ac.zip | |
Remove indiscriminate outline suppression for tabindex="-1" elements (#28437)
instead, only apply outline suppression if the browser wouldn't normally apply the focus outline, using the (currently experimental) `:focus-visible` pseudo-class
Diffstat (limited to 'scss')
| -rw-r--r-- | scss/_reboot.scss | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/scss/_reboot.scss b/scss/_reboot.scss index c55d42e44..4955f7fe8 100644 --- a/scss/_reboot.scss +++ b/scss/_reboot.scss @@ -54,12 +54,16 @@ body { background-color: $body-bg; // 2 } -// Suppress the focus outline on elements that cannot be accessed via keyboard. -// This prevents an unwanted focus outline from appearing around elements that -// might still respond to pointer events. -// -// Credit: https://github.com/suitcss/base -[tabindex="-1"]:focus { +// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline +// on elements that programmatically receive focus but wouldn't normally show a visible +// focus outline. In general, this would mean that the outline is only applied if the +// interaction that led to the element receiving programmatic focus was a keyboard interaction, +// or the browser has somehow determined that the user is primarily a keyboard user and/or +// wants focus outlines to always be presented. +// +// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible +// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/ +[tabindex="-1"]:focus:not(:focus-visible) { outline: 0 !important; } |
