Pull to refresh

Comments 11

Необходимо пояснить. Я, как перфекционист, использую этот атрибут практически в каждой форме, которую мне представляется верстать. Мне приятно, когда поведение формы не перебрасывает меня по нажатию Tab из поля ввода логина на, например, ссылку "Забыли пароль?", а отправляет курсор в поле ввода пароля.
Коллега же мой считает, что данный атрибут морально устарел и его использование не приносит никакой практической пользы.
Чёрт, вы мне глаза открыли! Очень удобно табом перескакивать в поле «пароль», сам постоянно использую. Каюсь до сих пор не использовал tabindex`ы в вёрстке форм, но теперь буду!
Даже не задумывался никогда что так надо верстать, а в ТЗ никогда не было уделено внимания.
Если форма простая и все поля упорядочено идут друг за другом, все браузеры ведут себя адекватно. Но стоит на форме появиться какому-то элементу, захватывающему Tab — и вуаля — получаем раздражающий эффект.
Tab должен адекватно себя вести, не нужно недооценивать пользователей, многие из них знают про него и когда при нажатии, фокус ведет себя не адекватно, это очень их печалит. Также многие забывают про iframe, когда используют его для вывода captcha (бывает такое) и при нажатии tab вы перемещаетесь не к заветному полю ввода, в прямяком в iframe.

TabIndex — мощный инструмент и главное, его можно использовать не только для элементов формы и ссылок, но и для кастомных контролов.
UFO just landed and posted this here
Не использую, пока ни разу не пригодился, при правильной разметке перемещение по табу и так предсказуемо.
К сожалению tabindex-ом нельзя покрыть всю навигацию. Полноценное клавиатурное управление приходится реализовывать скриптами, и в них, этот атрибут зачастую мешает. Мы его вообще вырезаем.
А можно чуть подробнее про реализацию?
Делим весь UI на зоны, на каждую зону свой модуль-перехватчик событий. В один момент может быть активна только одна зона, плюс есть дифолтная, которая хендлит события, когда ни одна зона не в фокусе.

А дальше все стараемся делать интуитивным. К примеру, TAB во всех зонах перемещает фокус на следующий управляющий элемент (строка в списке, кнопка в риббоне, менюшка в контекстном меню и т.п.), SHIFT+TAB — листает в обратном порядке. PageUP/DOWN — листает страницы, HOME/END — кидает на границы списков элементов, и т.п. В общем, сейчас уже почти полноценный фреймворк по автономной клавиатурной навигации. Может как нибудь выложим в опенсорс (:
Не забудьте написать об этом статью. Будет интересно почитать!
Я надеюсь, что этот опрос напомнит о данном атрибуте тем верстальщикам, которые о нём забыли, и расскажет тем, кто о нём не знал.
Каюсь, про поведение интерфейсов уже второй месяц не могу закончить статью. Надеюсь в ближайшие несколько дней её допилить.
Sign up to leave a comment.

Articles