Я знаю, что это старый вопрос, но я, наконец, наткнулся на него сегодня после нескольких часов поиска.Я до сих пор не нашел решения, не относящегося к js, и, хотя проблема помечена как исправленная в Chrome, она все еще демонстрирует то же поведение.Из-за отсутствия чего-либо еще я использовал jQuery.Вместо встроенного скрипта я использовал ненавязчивый слушатель событий.
HTML:
<div id="skiptocontent">
<a href="#mainContent" id="skipper">Skip to Main Content</a>
</div>
<div id="mainContent"></div>
JQuery:
$(document).ready(function () {
$("#skipper").click(function () {
$('#mainContent').attr('tabIndex', -1).focus();
});
});
Я также скрываю ссылку, если она не получает фокус с клавиатуры.Таким образом, только пользователи клавиатуры и программы чтения с экрана будут знать, что ссылка существует.Используя CSS3, вы можете обеспечить его кратковременное отображение, если пользователь быстро перейдет мимо него.
CSS:
#skiptocontent a {
position: absolute;
top:-40px;
left:0px;
background:transparent;
-webkit-transition: top 1s ease-out, background 1s linear;
transition: top 1s ease-out, background 1s linear;
z-index: 100
}
#skiptocontent a:focus {
position:absolute;
left:0px;
top:0px;
background:#F1B82D;
-webkit-transition: top .1s ease-in, background .5s linear;
transition: top .1s ease-in, background .5s linear
}
Для демонстрации вы можете просмотреть скрипку .Если у кого-то есть способ обойтись использованием javascript, я бы с удовольствием это услышал.Я не думаю, что решение действительно доступно, если оно требует js.