Менеджер и дизайнер заставляют везде убирать аутлайн. Расскажите им, что это плохая идея!

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


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


Ссылки тоже могут быть в фокусе, их тогда можно открыть энтером, а если в фокусе кнопка, то её можно нажать пробелом. Если в фокусе одна радиокнопка из списка, селект или ручка диапазона, то перебирать списки или двигать ручку можно стрелками клавиатуры. И речь не только о встроенных элементах — вы тоже можете создавать интерактивные элементы, которые попадают в фокус или управляются с клавиатуры.


Если для одних такое взаимодействие с интерактивными элементами с клавиатуры — это приятное дополнение, то для других — единственный способ. Не все могут кликнуть мышкой или тапнуть пальцем в нужном месте, для многих клавиатура — это главный интерфейс к вашему сайту.


Как происходит такое взаимодействие? Главная кнопка здесь — таб, он передвигается к следующему интерактивному элементу. Шифт-таб переносится к предыдущему — попробуйте сами. Как только вы попали на нужный элемент, дальше уже можно в ним взаимодействовать: энтер, пробел, стрелки или просто буквы с клавиатуры.


В такой ситуации очень важно знать, какой элемент сейчас активный, чтобы было понятнее, с каким из них вы сейчас взаимодействуете. Когда у вас есть курсор мыши, стилус или просто палец — всегда понятно, куда вы нажимаете. Куда-куда, ну вот прямо сюда! Но когда вы взаимодействуете с клавиатуры — нужен фокус. Без него вы сейчас… нигде.


Когда элемент в фокусе, у него появляется псевдокласс :focus. По умолчанию браузеры выделяют интерактивные элементы в фокусе с помощью специальных обводок. Они отличаются в разных браузерах и на разных системах: иногда это чёрный пунктир или рамка, иногда голубой контур, иногда что-то ещё. Слишком часто эти контуры пытаются отключить с помощью outline: none, забывая зачем они нужны или считая их неважными.


Главный аргумент для отключения, мол, некрасиво и нет такого в дизайне. И я даже понимаю тех, кому некрасиво — и правда бывает мимо, хотя обычно в рамках знакомого системного стиля. Но ведь можно не только отключить, можно переназначить! Сделать другой outline, заменить его на border, box-shadow или даже фоновый цвет элемента. Главное, чтобы он недвусмысленно говорил: я сейчас в фокусе.


Кто вообще все эти люди, которым удобнее клавиатура? Это любой из нас в длинной форме с кучей полей. Или с кружкой в руке, или с ребёнком на руках, или с травмой кисти, или с особенностями моторики, которые не позволяют пользоваться мышью. А ещё это профессиональные пользователи интерфейсов, которые не могут себе позволить терять время на возню с мышью. И что, отказывать им всем только потому, что некрасиво? Нет конечно.


Зайдите на главную Яндекса, Гугла, Гитхаба и понажимайте таб — все эти сайты доступны с клавиатуры. Хороший интерфейс больше, чем просто картинка. В ваших руках помочь дизайнеру сделать интерфейс лучше, а менеджеру сделать его доступным для самой широкой аудитории.


Видеоверсия



Вопросы можно задавать здесь.

Комментарии (16)


  1. Kolts
    20.10.2017 21:30

    Если заказчик скажет убрать, то уберут.


    1. justboris
      21.10.2017 14:50

      а если заказчик хочет комик санс вместо шрифта на сайте, то надо так и делать?


      1. Alexufo
        23.10.2017 00:40

        А сколько он платит? Ведь можно тогда и не раскрывать авторства.


  1. vvzvlad
    20.10.2017 21:54

    «Как фокус помогает», докладчик Томас Нау.


  1. immaculate
    21.10.2017 07:04
    +1

    На этой же самой странице нажимаю Tab, фокус не виден. :)


    1. gdt
      21.10.2017 10:27

      У меня работает, что я делаю не так?


      1. vlivyur
        21.10.2017 11:51

        У меня тоже фокус виден, но фокус бегает по очень ограниченному перечню элементов (голосовалки / подписка и кнопки в окне редактора).


      1. immaculate
        21.10.2017 14:44

        Он отображается не на всех элементах, поэтому я его и не увидел. Тоже ничего хорошего, в общем.


  1. i360u
    21.10.2017 12:19

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


  1. Tallefer
    21.10.2017 14:24

    Раздражает такое, не меньше, чем запрет правой кнопки или выделения текста цветом.
    А из последних модных веяний — как вам скрытие атрибутов поля ввода? Ну то есть чистый белый лист, пока не тыкнешь мышой наугад в конкретную точку, даже курсор не появится, это норм? %)


    1. profesor08
      21.10.2017 16:50

      Мало заказчиков и дизайнеров думают о том, как их сайтом потом будут пользоваться. В результате посетители, чаще всего, пользуются функцией закрытия страницы сайта.


  1. zedalert
    21.10.2017 18:29

    Эх, если бы сайтостроители ещё не разучились этим пользоваться. Обычно после ввода логина-пароля следующий таб уводит фокус в непонятное место.


    1. Tallefer
      22.10.2017 02:28

      Да на десктопах такая же фигня творится обычно… :)


    1. EndUser
      22.10.2017 11:38

      А я думал "я нажал на Tab = я готов вводить следующий текст", "Я нажал на Enter = принимайте набранный мной текст". Мне было бы слегка неинтуитивно после пароля жать Tab — мне не сразу очевидно, что я этим приказал и как комп обязан реагировать.


  1. perfect_genius
    22.10.2017 17:31

    Windows 10 на планшете — при каждом включении на экране пароля есть только поле его ввода. И на него надо тапать, чтобы перевести фокус и начать вводить -_-
    А вообще, ввод чего-то без фокуса на поле частенько бывает, и выходит, что набранное пропало. Другие ОС тоже такие недружественные?


  1. ilyaplot
    23.10.2017 18:04

    Научились отключать outline и как давай везде отключать… Постоянно сталкиваюсь с этим. Чаще вижу кастомные checkbox и select, которые вообще никак не взаимодействуют с клавиатурой. Печаль.