Менеджер и дизайнер заставляют везде убирать аутлайн. Расскажите им, что это плохая идея!
Вы совершенно правы, с удовольствием расскажем.
В интерфейсах есть два типа элементов: простые и интерактивные. Простые что-то представляют или обозначают. Интерактивные позволяют с ними взаимодействовать. Откройте страницу с формой в браузере и сразу начните печатать. Ничего не происходит, да? Все нажатия клавиш уходят прямо в страницу. Но если попасть в поле, то внутри побегут буквы, которые вы печатаете — оно перехватило фокус и все события. Клавиша пробела теперь не прокручивает страницу, а ставит пробел. Очень удобно.
Ссылки тоже могут быть в фокусе, их тогда можно открыть энтером, а если в фокусе кнопка, то её можно нажать пробелом. Если в фокусе одна радиокнопка из списка, селект или ручка диапазона, то перебирать списки или двигать ручку можно стрелками клавиатуры. И речь не только о встроенных элементах — вы тоже можете создавать интерактивные элементы, которые попадают в фокус или управляются с клавиатуры.
Если для одних такое взаимодействие с интерактивными элементами с клавиатуры — это приятное дополнение, то для других — единственный способ. Не все могут кликнуть мышкой или тапнуть пальцем в нужном месте, для многих клавиатура — это главный интерфейс к вашему сайту.
Как происходит такое взаимодействие? Главная кнопка здесь — таб, он передвигается к следующему интерактивному элементу. Шифт-таб переносится к предыдущему — попробуйте сами. Как только вы попали на нужный элемент, дальше уже можно в ним взаимодействовать: энтер, пробел, стрелки или просто буквы с клавиатуры.
В такой ситуации очень важно знать, какой элемент сейчас активный, чтобы было понятнее, с каким из них вы сейчас взаимодействуете. Когда у вас есть курсор мыши, стилус или просто палец — всегда понятно, куда вы нажимаете. Куда-куда, ну вот прямо сюда! Но когда вы взаимодействуете с клавиатуры — нужен фокус. Без него вы сейчас… нигде.
Когда элемент в фокусе, у него появляется псевдокласс :focus
. По умолчанию браузеры выделяют интерактивные элементы в фокусе с помощью специальных обводок. Они отличаются в разных браузерах и на разных системах: иногда это чёрный пунктир или рамка, иногда голубой контур, иногда что-то ещё. Слишком часто эти контуры пытаются отключить с помощью outline: none
, забывая зачем они нужны или считая их неважными.
Главный аргумент для отключения, мол, некрасиво и нет такого в дизайне. И я даже понимаю тех, кому некрасиво — и правда бывает мимо, хотя обычно в рамках знакомого системного стиля. Но ведь можно не только отключить, можно переназначить! Сделать другой outline
, заменить его на border
, box-shadow
или даже фоновый цвет элемента. Главное, чтобы он недвусмысленно говорил: я сейчас в фокусе.
Кто вообще все эти люди, которым удобнее клавиатура? Это любой из нас в длинной форме с кучей полей. Или с кружкой в руке, или с ребёнком на руках, или с травмой кисти, или с особенностями моторики, которые не позволяют пользоваться мышью. А ещё это профессиональные пользователи интерфейсов, которые не могут себе позволить терять время на возню с мышью. И что, отказывать им всем только потому, что некрасиво? Нет конечно.
Зайдите на главную Яндекса, Гугла, Гитхаба и понажимайте таб — все эти сайты доступны с клавиатуры. Хороший интерфейс больше, чем просто картинка. В ваших руках помочь дизайнеру сделать интерфейс лучше, а менеджеру сделать его доступным для самой широкой аудитории.
Видеоверсия
Вопросы можно задавать здесь.
Комментарии (16)
immaculate
21.10.2017 07:04+1На этой же самой странице нажимаю Tab, фокус не виден. :)
gdt
21.10.2017 10:27У меня работает, что я делаю не так?
vlivyur
21.10.2017 11:51У меня тоже фокус виден, но фокус бегает по очень ограниченному перечню элементов (голосовалки / подписка и кнопки в окне редактора).
immaculate
21.10.2017 14:44Он отображается не на всех элементах, поэтому я его и не увидел. Тоже ничего хорошего, в общем.
i360u
21.10.2017 12:19Управлять таб-индексом — еще уметь нужно. По умолчанию туда попадает все подряд, чаще всего в неправильном порядке. Например, переходя табом с последнего поля формы пользователь может улететь на ссылку в футере вместо переключения обратно к первому полю. И дефолтный фокус в виде аутлайна действительно часто вообще не вписывается в визуальную экосистему приложения, элементам чаще всего нужно делать кастомное оформление для этого состояния. Это часто становится непростой задачей и проще его просто вырубить. В итоге, все решает цена вопроса: если вы готовы вкладываться в детально проработанный интерфейс — стоит сделать кастомный таб-индекс и фокусы.
Tallefer
21.10.2017 14:24Раздражает такое, не меньше, чем запрет правой кнопки или выделения текста цветом.
А из последних модных веяний — как вам скрытие атрибутов поля ввода? Ну то есть чистый белый лист, пока не тыкнешь мышой наугад в конкретную точку, даже курсор не появится, это норм? %)profesor08
21.10.2017 16:50Мало заказчиков и дизайнеров думают о том, как их сайтом потом будут пользоваться. В результате посетители, чаще всего, пользуются функцией закрытия страницы сайта.
zedalert
21.10.2017 18:29Эх, если бы сайтостроители ещё не разучились этим пользоваться. Обычно после ввода логина-пароля следующий таб уводит фокус в непонятное место.
EndUser
22.10.2017 11:38А я думал "я нажал на Tab = я готов вводить следующий текст", "Я нажал на Enter = принимайте набранный мной текст". Мне было бы слегка неинтуитивно после пароля жать Tab — мне не сразу очевидно, что я этим приказал и как комп обязан реагировать.
perfect_genius
22.10.2017 17:31Windows 10 на планшете — при каждом включении на экране пароля есть только поле его ввода. И на него надо тапать, чтобы перевести фокус и начать вводить -_-
А вообще, ввод чего-то без фокуса на поле частенько бывает, и выходит, что набранное пропало. Другие ОС тоже такие недружественные?
ilyaplot
23.10.2017 18:04Научились отключать outline и как давай везде отключать… Постоянно сталкиваюсь с этим. Чаще вижу кастомные checkbox и select, которые вообще никак не взаимодействуют с клавиатурой. Печаль.
Kolts
Если заказчик скажет убрать, то уберут.
justboris
а если заказчик хочет комик санс вместо шрифта на сайте, то надо так и делать?
Alexufo
А сколько он платит? Ведь можно тогда и не раскрывать авторства.