Есть ли способ обхода ошибки Safari / Opera, из-за которой вы не можете переходить по гиперссылкам?

В IE, Firefox, Chrome и большинстве интерфейсов на базе Windows, которые я использовал, клавишу Tab можно использовать для перехода от одного поля формы или гиперссылки к следующему ( например, "интерактивные" элементы) (примечание: я не тестировал в других операционных системах)

Однако Safari и Opera пропускают все гиперссылки на веб-странице при переходе на вкладку. ИМХО, это ошибка удобства использования, но я отвлекся.

Есть ли обходной путь / прием, чтобы заставить Safari и / или Opera перемещаться по этим ссылкам?

Я заметил, что Opera примет атрибут tabindex, если он установлен, например. tabindex="0" таким образом поддерживая "индекс" ссылок в потоке DOM на странице ... но Safari не хочет этого принимать.

Для тех, кто заинтересован, этот фрагмент jQuery сделает все гиперссылки доступными для вкладок.

//Make links 'tab-able' in Opera
$(document).ready(function(){
  if($.browser.opera){
    $('a[href]').attr('tabindex', 0);
  }
});

... и хотя, похоже, это работает для Opera ... есть ли способ лучше?


person scunliffe    schedule 18.02.2010    source источник
comment
Это не относится к суперпользователю. Это исправление проблемы с удобством использования, о которой мы, как разработчики, должны беспокоиться.   -  person Stefan Kendall    schedule 18.02.2010


Ответы (3)


В Safari это не ошибка, это дополнительная функция. На Mac вкладка выбирает объекты, отличные от ссылок, Option + Tab выбирает все объекты. Вы можете поменять местами поведение этих ярлыков в Preferences-> Advanced. Тогда вкладка будет вести себя как в других браузерах.

В Windows опция Option + Tab недоступна. По умолчанию вкладка выбирает объекты, отличные от ссылок, но есть опция в Настройках-> Дополнительно, которая заставляет вкладку выбирать все объекты. Тогда вкладка будет вести себя как в других браузерах.

Вероятно, вам не следует пытаться вмешиваться в это, поскольку это может повлиять на предпочтения пользователя.

person oefe    schedule 18.02.2010
comment
спасибо @oefe - не знал, что настройка доступна. Похоже, что Google переключил флаг по умолчанию в Chrome (на самом деле я даже не могу найти возможность его изменить) ... Интересно, почему Apple не пошла на это для Windows Safari. - person scunliffe; 19.02.2010

На самом деле это ошибка, согласно спецификации (см. Ниже) якоря (<a> элементы) должны принимать свойство tabindex, а tabindex из 0 должно делать его фокусируемым в том порядке, в котором элементы появляются в документ.

http://www.w3.org/TR/html401/interact/forms.html#adef-tabindex

person Han    schedule 25.03.2010

Opera традиционно думала, что это функция, а не ошибка (у нас были и есть другие сочетания клавиш для навигации по ссылкам, когда вы знаете, что вам может быть полезно иметь четкую навигацию для ссылок и элементов формы - пробовали пространственную навигацию Shift + стрелка? ). Для некоторых людей это все еще особенность. Истинный анекдот: когда-то внутренняя сборка случайно делала ссылки доступными для вкладок, и это вызвало столько сообщений об ошибках и жалоб, что они были незамедлительно отменены. (Насколько я помню, еще и потому, что табуляция по-другому была глючна).

Однако мы знаем, что переход по ссылкам с помощью табуляции - это то, чего ожидает большинство пользователей, и что мы должны реализовать для этого предпочтение, как в Safari. А пока вы можете добавить что-то вроде исправления JS, описанного выше, в пользовательский javascript, чтобы иметь навигацию по вкладкам по ссылкам на всех веб-сайтах.

person hallvors    schedule 29.05.2012