Вопрос пользовательского интерфейса: существует ли консенсус относительно лучшего (определяемого как «тот, который конечным пользователям нравится больше всего») или наименее плохого способа реализации ввода данных в сетку?
У меня есть сетка с множеством строк. Столбцы сетки содержат различные типы свойств, которые пользователь может вводить / редактировать. К "типам" свойств относятся:
- Свободный текст
- Цифры (числовые цифры)
- Значение перечисления (например, одно из «Высокий», «Средний» или «Низкий»)
- Другое (например, дата, продолжительность)
Тип «свободный текст» разработать несложно (поэтому я не буду об этом спрашивать), но как насчет следующих двух типов?
Цифровые цифры
- При использовании клавиатуры для ввода числа разрешили бы вы вводить произвольный текст, а затем запустить метод проверки при размытии? Или контролировать каждое нажатие клавиши, чтобы ограничить ввод данных только цифрами?
- Как сообщить пользователю (в сетке, а не в форме), что синтаксис данных в некотором столбце ограничен только числовыми значениями? Что вы будете делать, если пользователь нажмет неправильную (нечисловую) клавишу?
- Элемент управления «вращение» или «прядильщик» - это стандартный элемент управления Windows; уместно ли попробовать использовать его и в сетке на основе HTML?
Значения перечисления
Я полагаю, что для ввода или редактирования значения перечисления с помощью мыши нужно открывать небольшое контекстное меню при щелчке мышью.
- Альтернативой является использование элемента управления вводом
<select>
(т. Е. Поля со списком). Я предполагаю, что иметь целый столбец со списком не так легко читать, как столбец с текстовым значением (потому что поля со списком добавляют дополнительные нетекстовые чернила)? Как вы думаете, что обычно отображается простой текст, но заменяется этот текст полем со списком, когда поле получает фокус ввода (а затем удаляется поле со списком при размытии)? - Вы бы также открывали то же самое меню в фокусе, когда фокус изменяется в результате нажатия клавиатуры (например, клавиши [Tab]), а не в результате действия мыши (например, щелчка)? Другими словами, должно ли табуляция в поле приводить к появлению всплывающего меню? Между прочим, всплывающие меню на основе CSS, которые я видел, реагируют на мышь, но не на клавиатуру (например, на клавиши со стрелками [Вверх] и [Вниз]). Знаете ли вы о какой-либо реализации ввода данных, подобной Intellisense, которая может работать в браузере?
Например?
Мне также было бы интересно увидеть все, что, по вашему мнению, является образцовым примером. Меня интересует пользовательский интерфейс рабочего стола и / или ответы в браузере.
Изменить: следующий вопрос с тегом [data-entry] ("Использовал ли кто-нибудь Sigma Grid (сетку данных, редактируемую на основе Javascript)? "), Я смотрю на пример Sigma Grid. Он делает много вещей хорошо IMO (хорошая поддержка клавиатуры и своевременного выбора); но его поддержка числовых полей может быть несовершенной, например, если я нажимаю 'a' в числовой ячейке, тогда иногда появляется окно предупреждения, чтобы сказать мне, что я ошибаюсь (где, возможно, всплывающая подсказка будет менее навязчивой), и / или иногда он оставляет ячейку пустой (пустой), стирая «а» и ничего не оставляя на месте.
Отредактируйте в ответ на один из ответов ниже.
Опять же, однако, определите, ЧТО будет основным использованием вашей формы, и оптимизируйте для этого. Визуализация или анализ данных имеет другие потребности, чем массовый ввод, и удовлетворение потребностей пользователей клавиатуры совершенно иное, чем пользователей клавиатуры + мыши.
Я хочу, чтобы тот же дисплей (то есть таблица / сетка) хорошо работал для отображения существующих свойств, создания новых свойств и редактирования существующих свойств. Я ожидаю появления десятков элементов (т.е. десятков строк данных), в каждом из которых будет всего несколько столбцов (например, один столбец текста / описания элемента плюс 1 или несколько столбцов для 1 или нескольких связанных свойств элемента).
Некоторые данные / свойства могут быть субъективными и относительными (например, два свойства для каждого элемента являются «приоритетом» или «сложностью» каждого элемента, что особенно важно только по сравнению с другими элементами), поэтому я хочу для отображения всех данных на одном экране: чтобы конечный пользователь мог их сравнить.
Мое приложение предназначено для относительно опытных (не новичков) пользователей компьютеров, но не для специалистов по вводу данных: например, пользователи - разработчики программного обеспечения, менеджеры проектов, менеджеры по продуктам, специалисты по контролю качества и т. д., но также в некоторой степени их клиенты; он работает в интрасети (а не в общедоступном Интернете), тем не менее, простота и удовольствие в использовании и легкость и / или интуитивность в освоении важны.
Также я не понимаю, почему удовлетворение пользователей клавиатуры полностью отличается от пользователей клавиатуры + мыши: я думал, что одно решение может / должно поддерживать одно и / или и то, и другое.