Улучшение комплекса «кнопка — выпадающее меню»

Самое главное:

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

Опера имеет множество кнопок, рядом с которыми есть выпадающие меню. При этом у каждой из кнопок меню может вызыватся совсем по-разному.

Примеры:

button-menu complexes

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

  1. Стандартизирует комплекс кнопка-меню, что влияет на:
    1. Предсказуемость интерфейса;
    2. Пользовательские привычки, а, следовательно, все похожие действия будут выполнятся пользователем быстрей;
  2. Увеличивает область, над которой можно вызывать меню (вместо стрелки теперь вся кнопка по сути вызывает меню), что, согласно закону Фиттса, упрощает вызов меню;
  3. Создаёт ожидаемый полурежим (пока вы держите левую кнопку нажатой), который улучшит наше меню ещё больше, позволяя отобразить, что будет происходить при нажатии на тот или иной элемент списка (подробнее об этом в следующих выпусках).

Симбиоз из кнопки и жеста.

Меню истории в Опере (под кнопкой «Назад») уже работает почти таким же образом, но только если тащить вниз. Это полумера, потому что никак нельзя узнать о том, что под кнопкой вообще есть какое-либо меню. Поэтому кнопки с меню каким-то образом должны помечаться. Два примера:

Таким образом:

  1. Упрощается вызов меню;
  2. На обычный клик по кнопке мы можем повесить какое-либо действие по умолчанию, например:
    1. На кнопку «Назад» — переход на предыдущую страницу;
    2. На кнопку изменения масштаба — увеличение масштаба на 20%.

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