Можно ли выбрать в списке только одно значение?
Что проверяют
Это вопрос не про радиокнопки, а про то, начнёте ли вы с требований. Правильный первый ход: «зависит от спецификации, уточню, что это за список». Следом обычно просят набросать проверки для обоих вариантов.
Как отвечать
Сначала уточните, о каком элементе речь, от этого зависит поведение по умолчанию:
- нативный
<select>: без атрибутаmultipleвыбирается одно значение, с ним несколько, через клик с Ctrl или Cmd; - группа радиокнопок: одно значение на группу с общим
name. Кликом выбор не снимается, вернуть «пусто» можно только отдельной опцией или кнопкой сброса; - кастомный компонент: выпадающий список из UI-библиотеки, список с чекбоксами, теги. Поведение задаёт разработчик, так что ориентир только требования.
Дальше каркас проверок. Классы эквивалентности: ноль выбранных, одно, два и больше.
- одиночность: выбор второго значения снимает первое;
- обязательность: без выбора форма не отправляется, текст ошибки понятен;
- значение по умолчанию: соответствует требованиям, а не первой строке списка;
- сохранение: выбор не теряется после перезагрузки, кнопки «Назад» и повторного открытия формы;
- клавиатура и доступность: стрелки, Space, Enter, Tab, экранный диктор объявляет выбранную опцию;
- недоступные опции: элементы с
disabledне выбираются; - мобильные: нативный список открывается системным пикером, его тоже нужно посмотреть.
Главная проверка на сервере. Ограничение в интерфейсе ничего не гарантирует: через DevTools или Postman отправьте массив вместо одного значения, два одинаковых параметра, значение не из списка. Бэкенд должен ответить ошибкой валидации, а не сохранить мусор.
Где спотыкаются
Отвечают «да» или «нет» без уточнения. Интервьюер ждёт вопроса про требования, и прямой ответ выглядит как угадывание.
Проверяют только интерфейс. Одиночный выбор в UI легко обходится подменой запроса, и в базе оказываются неконсистентные данные.
Забывают про клавиатуру, мобильные устройства и состояние после перезагрузки. Как раз там у кастомных компонентов больше всего дефектов.