Фокусы

01.02.2011

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

1. Мышиный фокус всегда один, всегда находится под курсором. Нельзя перемещать программно (и слава богу). Заботиться о нем нужно только в одном плане: правильного ли размера у нас зоны нажатия/прокрутки колесом?

Три самопроверки:

  • Достаточно ли большие кнопки (Фиттсу привет!) у частотных действий?
  • Достаточно ли маленькие кнопки для потенциально трагичных действий, если эти действия не частотны?
  • Работает ли прокрутка колесом мыши повсюду?
  • Можно ли сделать зону прокрутки колесом мыши больше прокручиваемой области? Например, в таком окне ничто не мешает сделать зоной прокрутки все содержимое окна, чтобы пользователю не нужно было перемещать курсор над списком.

2. Логический фокус определяет какой именно элемент управления в каком именно окне является активным, по этой самой причине он тесно связан с перемещением по экрану клавиатурой (Tab order). Может находиться почти на любом элементе управления.

Cамопроверки:

  • Если в интерфейсе есть опасные или очень редко используемые элементы управления, их часто стоит сделать не включенными в Tab Order.
  • Если делаем на странице диалоговое псевдоокно (например, через слой) нужно не просто открывать его, но и переставлять логический фокус на первый элемент окна (правило не касается палитр).
  • Если для вашего интерфейса главной эргономической характеристикой является скорость ввода, есть резон самостоятельно делать индикацию фокуса для полей (не забывая отключать ее в браузерах, которые делают это самостоятельно).
  • В многооконных интерфейсах не нужно убирать индикацию фокуса с полей в неактивных окнах.

3. Фокус клавиатурного ввода.

Самопроверки:

  • Не забыли ли убрать его при перемещении фокуса к другому полю ввода?
  • При возвращении в поле логического фокуса (см. далее) попадает ли фокус ввода на то же место, на котором с поля ушли? Т.е. сохранятся ли положение фокуса?

4. Фокус выделения.

Самопроверка:

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

Всё это писалось по памяти; очевидно, что что-то важное я забыл/упустил. Буду рад дополнениям и поправкам.


Show your support

Clapping shows how much you appreciated Влад Головач’s story.