Можем ли мы сфокусироваться на div без атрибута tabindex?

У меня странная проблема с фокусом на FF 17. У меня есть div без атрибута tabindex и один с tabindex="0". Я нажимаю Shift+TAB со второго div (с tabindex) на первый div (без tabindex). Как ни странно, первый div получает фокус, и весь div выделяется пунктирными линиями. Может ли кто-нибудь сказать мне, почему FF фокусируется на первом div, даже если нет атрибута tabindex?

Если интересно, первый div имеет следующий CSS

clear: both;
min-width: 1010px;
left: 7px;
right: 7px;
top: 141px;
bottom: 10px;
overflow: auto;
position: absolute;
-webkit-box-shadow: 0 5px 4px #DDD;
box-shadow: 0 5px 4px #DDD;
background: none repeat scroll 0 0 #FDFDFD;
border: 1px solid #AAA;
border-top: 0;

Спасибо.


person chaitanyam    schedule 08.01.2013    source источник


Ответы (2)


Он получает фокус, потому что у него есть overflow: auto. Причина, по которой это происходит, заключается в том, что элементы с overflow:auto могут иметь полосы прокрутки, в зависимости от их содержимого, и когда у них есть полосы прокрутки, вы хотите, чтобы они располагались в порядке табуляции, чтобы вы могли переходить к ним и прокручивать с помощью клавиш со стрелками для пользователей, которые не используют мышь. Но в этот момент вам нужно либо постоянно размещать overflow:auto вещей в порядке табуляции, либо менять порядок табуляции, когда вы меняете размер шрифта или размер окна браузера или что-то еще. Последнее довольно запутанно для пользователей, поэтому Gecko делает первое.

person Boris Zbarsky    schedule 09.01.2013

Свойство css называется outline, и оно выделяет элементы на странице, поэтому, когда вы используете табуляцию с помощью клавиатуры, вы можете видеть, на каких элементах вы находитесь.

Если вы хотите отключить его, установите outline:0; в своем классе css.

person easwee    schedule 08.01.2013
comment
@Kyle Sevenoaks - якоря или нет - он должен сбросить контур. Отредактированный вопрос, так что это более ясно. - person easwee; 08.01.2013
comment
Просто удалить контур недостаточно. Элемент div без атрибута tabindex не должен получать фокус. Вот чего я не понимаю. - person chaitanyam; 09.01.2013
comment
@user1853164 user1853164 - если этого недостаточно, предоставьте живой образец на jsfiddle.net или что-то подобное. - person easwee; 09.01.2013