Юзабилити на практике: «Введите дату»

Март 3, 2008

Автор: Александр Сорокин

Всем снова привет.
Сегодня буду рассказывать о моем любимом — о Юзабилити.

В русском языке есть этому модному слову замена — Удобство. Но когда речь идет об удобстве взаимодействия человека с компьютером, то мы сразу говорим юзабилити.

В этой статье будет рассмотрена всего лишь форма ввода даты, которая нам так часто встречается при регистрации на любом сайте. Чаще всего просят вводить свою дату рождения. Зачем всем на свете админам знать день моего рождения — неизвестно, но будем считать, что для статистики.

Сначала окунемся в историю.

Сначала все самые первые сайты и программы предлагали пользователю вот такое поле:

1.gif

Естественно, сразу возникли проблемы. Люди заполняли данное поле кто как мог и привык:

12 июля 1980
12-07-1980
07/12/80

и так далее…

Поэтому было придумано следующее:

2.gif

Но некоторым было по барабану на это, другие просто не читали, то, что было написано в скобках.
Тогда программисты и придумали разделить поле на три:

3.gif

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

Разработчики призадумались и поняли что лучший способ избежать ошибок от тупых пользователей это не дать им возможности допустить их. И изобрели они вот это:
4.gif

В таком виде, данная форма встречается, на большинстве сайтов, и по сей день. И вроде бы все нормально, но есть много НО.

Во-первых, она не исключает всяких там 31 февраля.
во-вторых, само легко выбрать месяц, но вот день, а в особенности год выбирать очень сложная задача. Посудите сами:
5.gif

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

mail.ru
6.gif

Яндекс
71.gif

Всякие форумы

8.gif

ebay
9.gif 

К сожалению, все эти формы на защищены от дурака и не исключают ввода, допустим, такой даты: 31 ноября 3450 года.

Что же мы можем сделать? А сделать можно многое. Мы можем учитывать особенности каждого месяца, а также високосный год или нет.

— Да ты ахренел! — скажут программисты.

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

Но в связи с этим порядок заполнения придется поменять: сначала мы будем вводить год и месяц, а потом на основе полученных данных в список День ставить нужное количество деньков. Причем список День будет не доступен для пользователя, пока он не выберет Год и Месяц.
10.gif

11.gif

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

Но проблемы еще есть. Списки Год и День все еще не юзабельны.
Что мы можем предпринять?

Я придумал вот, что:

121.gif

На мой взгляд, в таком списке отыскать требуемый год будет полегче — глаз легко цепляется за десятки, ну и вниз провести на несколько строчек тоже нетрудно. Нудного скроллинга нет.

Список Месяц, вроде бы, не требует ни каких модернизаций.

А вот День, можно представить в классическом календарном блоке

13.gif

Естественно дни следует выводить на основе, первых двух полей.

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

Буду рад любым комментариям.

Комментариев: 14

  1. Даниил Вартанов пишет:

    Красиво. Я, как конечный пользователь, поддержал бы. Правда в первый раз от неожиданности завис бы на пару секунд ))

  2. Alexsas пишет:

    Пара секунд зависания, лучше шести нудного и раздражающего скролирования.
    Как вариант, но мнеее удобный был мной релизован тут:

    hour_21.swf

  3. skriv пишет:

    Саша.. все ок.. только сильно пугает шум: 19 19 19 19 19 19 19 19 19
    Может быть вынести 19.. ??!!

  4. skriv пишет:

    Саша в твоем примере.. дублируются поля… достаточно тогда Дата(она же год) и время

  5. Alexsas пишет:

    Может быть вынести 19.. ??!!

    да можно.

  6. Михаил Агеев пишет:

    а вот мне интересно насколько оправдано выводить года от 1900?
    какое число интернет-пользователей родилось ранее 1938 года? :)

  7. Weltkind пишет:

    Саша ты гений! %)
    А что мешает сразу каледарик прихерачить? И там тебе и год и дата?

  8. Alexsas пишет:

    Посчитай, Толик, сколько раз ты кликнешь прежде чем выберешь свое день рождение.
    В моем случае 6 раз.

  9. Weltkind пишет:

    Саша, а ты посчитай сколько времени займет написание нестандартного селекта?
    Значительно проще выводить каледарик с двумя селеками для года и месяца. И тоже кликать 6 раз.
    Затейники, блин. %)

  10. Alexsas пишет:

    — Да ты ахренел! — скажут программисты.

    пока программисты будут так говорить дело далеко не пойдет..

    когда-то и календарик кто-то написал…

    новые инструменты позволяют очень гибко кастомизировать казалось бы стандартные элементы интерфейса.

    возьмем тотже Flex:

    http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html

    http://examples.adobe.com/flex3/componentexplorer/explorer.html

    Саша, а ты посчитай сколько времени займет написание нестандартного селекта?

    С такими мыслями ты будешь Толик с зади, всегда.
    Новые идеи правят миром.

    Может мой выбор даты и не супер, но я двигаюсь в правильном направлении: Я об этом думаю, и пытаюсь оптимизировать.

    еще глянь вот это:

    http://www.datejs.com/

    А все потому, что люди пытаются двигаться, а не пытаются подсчитать сколько же времени займет написание чего-то нестандартного…

    И тоже кликать 6 раз.

    Далеко не 6. Далеко…

    Жду ответа

  11. Weltkind пишет:

    Считаем клики в моем варианте.
    Первый клик: выволивается календарик.
    Второй клин: на календарике вываливается список годов
    третий клик: выбираем год
    четвертый клик: на календарике вываливается список месяцев
    пятый клик: выбираем месяц
    шестой клик: выбираем день

    Вопрос чем твой вариант лучше? Более того он путает пользователя.

  12. Alexsas пишет:

    дай ссылку

  13. chuvak пишет:

    Блиина Адобовцы молодцы с ихним Флексом

  14. Никита пишет:
    — Да ты ахренел! — скажут программисты.

    пока программисты будут так говорить дело далеко не пойдет..

    Отчасти соглашусь, отчасти нет. Когда есть возможность*необходимость можно/нужно делать именно нестандартный селект. Когда сроки проекта “поджимают” тут уже не до вылизывания каждого пиксела..

    А по сабжу согласен с Alexsas.
    В большинстве случаев подход “Good Enough”, имхо, рулит.

Оставьте свой отзыв!

Вам нужно войти, чтобы оставить комментарий.

SandS design