Существует серьезное предостережение относительно использования box-shadow
в качестве индикатора фокусировки.Он не работает в высококонтрастных темах Windows.
Когда включена высококонтрастная тема Windows, веб-браузеры, поддерживающие ее, будут переопределять определенные свойства CSS.Firefox, IE и Edge делают это, но браузеры на основе Chromium этого не делают (пока).
- Цвета переднего плана переопределяются, чтобы соответствовать теме Windows.Это относится к тексту, границам и контурам.
- Обратите внимание, что ключевое слово CSS
transparent
является значением цвета, и оно также здесь переопределяется.Прозрачная рамка становится видимой.
- Цвета фона переопределяются в соответствии с темой Windows.
- Фоновые изображения удаляются (включая CSS-градиенты) в IE и Firefox.
- Край сохраняет фоновые изображения, но применяет сплошной цвет фона к тексту.Поэтому части фонового изображения могут быть не видны.
box-shadow
не применяется, поэтому он не будет работать в качестве индикатора фокусировки.
Следующий стиль фокуса НЕ будет виден, когда действует высококонтрастная тема Windows:
a:focus {
box-shadow: 0px 0px 5px 5px rgba(0,0,255,1);
outline: none;
}
Однако существует подход, который может работать.Вместо полного удаления контура сделайте его прозрачным, оставив стиль и ширину контура на месте.Когда действует высококонтрастная тема Windows, тени-рамки не отображаются, но контур появляется из-за переопределения прозрачного цвета.
a:focus {
/* Visible in the full-colour space */
box-shadow: 0px 0px 5px 5px rgba(0,0,255,1);
/* Visible in Windows high-contrast themes */
outline-colour: transparent;
outline-width: 2px;
outline-style: dotted;
}