Мы добавили в блок i-ua возможность определять способ взаимодействия пользователя с интерфейсом.
Эта функциональность реализована в модификаторе i-ua_interaction_yes, принцип работы ее такой: если пользователь взаимодействует со страницей с помощью мыши/указателя, то атрибуту data-interaction dom-элемента блока i-ua_interaction_yes выставляется значение pointer, а если с помощью клавиатуры, то keyboard. Использование data-атрибута вместо установки модификатора было выбрано, чтобы избежать repaint страницы при изменении css-класса у блока.
Для подключения этой функциональности на проект необходимо на уровне common.blocks:
Определение способа взаимодействия пользователя с интерфейсом можно использовать например, для нормализации поведения контролов, так как в браузерах существует отличие в визуальном поведении нативных контролов (ссылка, кнопка, чекбокс и т.д.) контрол подсвечивается рамкой только если он получил фокус при клавиатурном взаимодействии (кроме полей ввода input и textarea, они всегда подсвечиваются). В контролах-блоках состояние "в фоксе" выражено обычно модификатором _focused_yes и не зависимо от способа получения фокуса контрол подсвечивается всегда, например, кнопка button:
Для учета способа взаимодействия в контролах нужно добавить css-селектор .i-ua_interaction_yes[data-interaction='pointer'] и для него указать отмену показа рамки у контрола в фокусе, например для кнопки button:
Мы добавили в блок
i-ua
возможность определять способ взаимодействия пользователя с интерфейсом. Эта функциональность реализована в модификатореi-ua_interaction_yes
, принцип работы ее такой: если пользователь взаимодействует со страницей с помощью мыши/указателя, то атрибутуdata-interaction
dom-элемента блокаi-ua_interaction_yes
выставляется значениеpointer
, а если с помощью клавиатуры, тоkeyboard
. Использование data-атрибута вместо установки модификатора было выбрано, чтобы избежать repaint страницы при изменении css-класса у блока.Для подключения этой функциональности на проект необходимо на уровне
common.blocks
:b-page
:i-ua_interaction_yes
вmustDeps
секцию блокаb-page
:Определение способа взаимодействия пользователя с интерфейсом можно использовать например, для нормализации поведения контролов, так как в браузерах существует отличие в визуальном поведении нативных контролов (ссылка, кнопка, чекбокс и т.д.) контрол подсвечивается рамкой только если он получил фокус при клавиатурном взаимодействии (кроме полей ввода input и textarea, они всегда подсвечиваются). В контролах-блоках состояние "в фоксе" выражено обычно модификатором
_focused_yes
и не зависимо от способа получения фокуса контрол подсвечивается всегда, например, кнопкаbutton
:Для учета способа взаимодействия в контролах нужно добавить css-селектор
.i-ua_interaction_yes[data-interaction='pointer']
и для него указать отмену показа рамки у контрола в фокусе, например для кнопкиbutton
:Пример работы блока можно посмотреть на странице http://bem.github.io/bem-bl/desktop.sets/i-ua/10-i-ua/10-i-ua.ru.html