2013-06-21 2 views
0

Я пытаюсь сделать сайт доступным и иметь ссылку, которая скрыта по умолчанию, если на нее не наложена фокус клавиатуры, и в этом случае она становится видимой. Ссылка пропускает видеоролик YouTube и на другой контент. То, что я отлично работаю на рабочем столе, но используя Safari с Voiceover на мобильном устройстве, после того, как ссылка прочитана, фокус возвращается к заголовку страницы. То, что я сейчас:Voiceover возвращается к заголовку страницы после чтения текста смещения

<div class="skip-link"> <a href="#skipvideo">Skip the Youtube Video</a></div> 

... 

<a class="hidden" id="skipvideo" name="skipvideo" tabindex="-1"></a> 

CSS-:

.skip-link a,.skip-linkvideo{left:-10000px;position:absolute;color:#fff} 
.skip-link a:focus, .skip-link a:active{ 
    left:0px; 
    position:relative; 
    outline-style:solid; 
    height:22px; 
    padding:2px; 
} 

Кто-нибудь есть идея, почему закадровый делает это?

+0

Не знаю, но вам не нужно или не нужно «class =» hidden ». Может быть, попытайтесь добавить что-то вроде 'aria-label =" {Поместите что-нибудь полезное здесь} "в целевую ссылку? –

+0

Вы пробовали другие устройства для чтения с экрана? Считыватели экрана на веб-страницах, как правило, ошибочны, это может быть просто ошибка в VoiceOver – comodoro

ответ

1

Оказывается, что разница в позиционировании элементов, как правило, и в фокусе, является причиной проблемы.

Переход от абсолютного к относительному приводит к тому, что другие элементы будут сбиты, что заставляет VoiceOver видеть его как обновление страницы.