Skip to content

Conversation

@Self-Perfection
Copy link

Especially useful for playing with mobile browsers. Should auto choose numeric keyboard on selecting field.

[не проверено наживую]

Especially useful for playing with mobile browsers. Should auto choose numeric keyboard on selecting field.
@berekuk
Copy link
Member

berekuk commented Oct 14, 2017

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number:

One issue with number inputs is that their step size is 1 by default — if you try to enter a number with a decimal, such as "1.0", it will be considered invalid.

@Tairesh, можешь подтвердить, что в базе нет и не будет вопросов с дробными ответами? Либо надо step добавить.

@Tairesh
Copy link
Collaborator

Tairesh commented Oct 16, 2017

@Self-Perfection В своё время я заменил number на text, потому что несколько людей жаловались, что большие числа в ответы вводить неудобно без отображения разделителей в них. А числовое поле ввода не поддерживает их (привет, консорциум WWW). Можно попробовать для мобильных браузеров выводить number, а для десктопов text
@berekuk числа в ответе могут быть дробными, шаг задавать необязательно и даже бессмысленно тут, потому что точность ответов разная бывает

@Self-Perfection
Copy link
Author

Self-Perfection commented Oct 16, 2017

Господа, вы указали две проблемы с type=number, из-за которых улучшение удобства формы ввода ответа кажется гораздо более сложным и наверно нецелесообразным для ожидаемого количества игроков калибратора. Но хочется записать пришедшие мысли, что можно было изменить к лучшему с учётом указанных проблем.

Если поле с type=number нельзя заставить отображать разделители чисел, то можно предоставить игроку альтернативный способ оценки величины введённого числа, например при onchange обновлять рядом с полем ввода label со scientific представлением числа (вроде 3.5x10^7).

Или использовать числовое поле ввода только для случаев, когда ответ <1000. Гм, но тогда автоматически выбираемая клавиатура будет подсказкой пользователю, > или < ответ, чем 1000. Ну ок, тогда при отображении вопроса выбирать случайным образом threshold для перехода к type=text из интервала 100 - 10000. Или например использовать type=number для вопросов, ответом к которым должно быть количество процентов. Кстати, кажется в базе не хватает хранения единицы измерения ответа.

Аналогично можно выбирать step случайным на несколько порядков меньше ответа.

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

@Tairesh
Copy link
Collaborator

Tairesh commented Oct 19, 2017

обновлять рядом с полем ввода label со scientific представлением числа (вроде 3.5x10^7).

Я думал об этом, но только в виде 3.5кк/3.5m

выбирать случайным образом threshold для перехода к type=text из интервала 100 - 10000

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

использовать type=number для вопросов, ответом к которым должно быть количество процентов

Главное не увлечься и не забыть, что "ответ в процентах" совсем не равно "ответ от 0 до 100" (например вопрос "На сколько процентов вырос курс биткойна за энное время?", можно придумать вопрос и с отрицательными процентами)

в базе не хватает хранения единицы измерения ответа

отказаться от поля ввода текстом и предложить указывать границы экспоненциальным слайдером

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

@Tairesh
Copy link
Collaborator

Tairesh commented Oct 23, 2017

Как костыльный вариант, можно использовать type="tel" пока браузеры не завезли поддержку inputmode="numeric"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants