Как стать автором
Обновить

Комментарии 15

Заголовок немного не соответствует статье. Я ожидал, что будет что-то по поводу различных кастомизаций чекбокса стилями и жабьим скриптом, в результате чего он начинает выглядеть как кнопка, или как ещё какой-то необычный переключатель.

Однако, выходит, вы просто пожаловались на криворукость дизайнеров некоторых веб-сайтов.

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

Также, внезапно, дуальность состояний оказывается довольно эфемерной. Ок, бизнес говорит - давайте добавим поле в профиль, о том, что юзер согласен получать рассылку. Вроде бы boolean (согласен-не согласен), однако, для уже существующих пользователей что мы поставим как значение в новом поле? Так, среди True/False появляется третье значение Null (ещё не выбрал). А дизайнер думает как это показать наглядно с помощью чекбокса.

Стандартный чекбокс Windows и HTML формы поддерживает indeterminate state, тут ничего дизайнеру изобретать не надо. Вот здесь есть прям живой пример https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox

Однако согласен/не согласен я бы выполнил с выпадающим списком, в котором ничего не выбрано (не очень хорошо) или двумя изначально нечекнутыми радиокнопками (так лучше, чем дропдаун) ну и задисейбленной до выполнения выбора кнопкой отправки.

Добавляем в профиль поле "получатьРассылку" и ставим true, если пользователь в явном виде дал согласие. По-умолчанию - false. Для всех существующих пользователей - false . Ну или true, если бизнес готов к этому. Всё. Дизайнер может думать о чём-то более полезном.

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

Я когда верстаю, для меня неуказанные случаи — это почти единственные причины вопросов: что, если строк будет не две, а пять? Может ли в будущем стать больше пунктов меню? Что, если блоков будет нечётное количество? Что, если пользователь зайдёт с планшета, а нарисовали только 768 и сразу 1920?

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

Постановка галки в чекбокс - это всегда двоичный выбор, ставить или не ставить. Но на мой взгляд, тут есть нюанс: постановка галки интуитивно ассоциируется с ответом "да", в то время как непостановка - это ответ "нет".

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

◎ бросил по утрам
◎ бросил коньяк
◎ бросил пить
◎ бросил я
◉ бросил уже

не соглашусь, вариант справа работает в Таиланде. Можно отметить все варианты, или порознь, или ни одного - все равно будет ОСТРО !

либо включен (отмечен галочкой), либо выключен (не отмечен)

Tri-state checkbox - это вполне разумный паттерн, когда нужно выбрать объекты в иерархии. Кстати, очень удобно: можно одним кликом выбрать всю ветку.

Пример

А вы в курсе что в винде ещё с доинтернетовских времён, обычная кнопка могла работать как чекбокс?(BuUTTON со стилем BS_CHECKBOX). И это вообще не квадратик с текстом.

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

Кажется, что может быть проще — спроектировать галочка в квадратике.

Или написать первое предложение в статье без ошибок

Любимый вариант — когда ты жмешь на чекбокс, в он необратимо меняет состояния двадцати с лишним заботливо выставленных до этого настроек.

Я так однажды распсиховался и навсегда удалил линкедин, который этим славен.

Если оставить чекбокс «Мало соуса», будет не вполне ясно, что будет, если он выключен. Обычная порция соуса, много соуса, совсем без соуса? Лучше заменить на радиогруппу с конкретными вариантами добавления соуса

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации