Skip to content

Commit

Permalink
Remove indiscriminate outline suppression for tabindex="-1" elements (#…
Browse files Browse the repository at this point in the history
…28437)

instead, only apply outline suppression if the browser wouldn't normally apply the focus outline, using the (currently experimental) `:focus-visible` pseudo-class
  • Loading branch information
patrickhlauke authored and XhmikosR committed Mar 12, 2019
1 parent 87527d8 commit 86a97d1
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions scss/_reboot.scss
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down

0 comments on commit 86a97d1

Please sign in to comment.