войти зарегистрироваться

ИнтерфейсыКорявых интерфейсов пост (keys/shortcuts)

Давно хотел высказаться на одну тему. А именно «Клавиши-Модификаторы» (Shift, Alt, CTRL, Win/CMD/Apple/Amiga).

Имеют ли они право (при нажатии на них) выполнять какое-либо действие?

Я вот считаю, что не имеют. Взять например ALT — он используется в комбинациях клавиш типа ALT+F4 (win) или ALT+F2 (Far), или (прости господи) ALT+SHIFT (rus/lat).

Однако человек может передумать нажимать комбинацию клавиш или нажать клавишу-модификатор случайно. И что же тогда произойдёт? На «безопасных», нормальных клавишах-модификаторах — ничего.

К ним в Windows можно отнести Shift и CTRL. А на «опасных» типа WIN или ALT-а — произойдёт совершеннейшая ерунда: ALT — сменит фокус ввода, переместив курсор в строку меню. WIN — вообще может выкинуть вас из полноэкранного режима приложения, только для того, чтобы радостно показать вам меню «пуск».

Отсюда первое правило клавиатурного пользовательского интерфейса: клавиша-модификатор сама по себе должна быть инертна. (При нажатии на неё ничего не должно происходить.)

Далее, есть ужасное сочетание ALT+SHIFT, которое в некоторых случаях используется в Windows для переключения раскладок клавиатуры. Чем же оно ужасно? если вы промахнулись по SHIFT-у или недостаточно чётко его нажали и он не сработал — сработает одиночный ALT, который изменит фокус ввода и выплюнет вас в строку меню. А так как вы в это время писали текст — вы этого можете не заметить и ваши нажатия в худшем случае могут привести к выполнению каких-либо команд меню, либо просто к неприятному вводу нескольких букв в пустоту.

Сочетание CTRL+SHIFT не особо лучше, так как оно хоть и является «безопасным» и инертным (то есть при несрабатывании той или иной клавиши — ничего не произойдёт), обратная сторона этой «безопасности» — это то, что в фокусе внимания невозможно узнать произошло ли переключение (индикатор рус/лат, как правило находится вне поля зрения во время набивки текста).
А всё почему? Потому что нарушено второе правило: сочетания клавиш-модификаторов друг с другом также должны оставаться инертны (то есть нельзя назначать на сочетания типа CTRL+SHIFT или CTRL+SHIFT+ALT какие либо действия — во-первых потому, что если это действие молчаливое и незаметное — невозможно будет сразу однозначно определить совершилось оно или нет, а во вторых, любое исключение из правила инертности клавиш-модификаторов разрушает ощущение «безопасности»).

Какое сочетание было бы более удачным для переключения раскладки? (раз уж его привели в пример). А вот хотя-бы то же CTRL+Space (или CMD+Space на Mac). Почему оно лучше? 1) используется сочетание безопасной клавиши-модификатора и условно-безопасной клавиши «пробел» (она условно-безопасна при вводе текста — так как знак пробела не портит текст). 2) в случае несрабатывания клавиши-модификатора, мы сразу увидим это — вместо переключения раскладки введётся пробел.

Вобщем, для полного счастья в windows необходимо: 1) сделать все клавиши-модификаторы инертными и избавить, наконец ALT и WIN от этих ужасных побочных действий. 2) отключить все действия назначенные на сочетания клавиш-модификаторов.

И тогда, возможно, управление приложениями (и самой системой) с помощью горячих клавиш — станет удобнее (начнут, наконец, полномасштабно использовать кнопку «WIN» наравне со всеми).

(p.s. этот пост — ответ на подзамочную публикацию. Чтобы прочитать её, подпишитесь на блог «эти пользовательские интерфейсы».)

N.B. Друзья, переключение раскладки — всего-лишь один из примеров. Не стоит его принимать близко к сердцу =) Главный вопрос звучит так: «должны ли клавиши-модификаторы и их сочетания быть инертны».
(Иными словами: стоит ли ради сомнительного удобства вызывать какую-либо одну функцию одной клавишей — получать неудобство от использования данной клавиши во всех сочетаниях с ней?)

ИнтерфейсыУправление вкладками в разных браузерах

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

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

Не имея возможности сравнить все существующие программы, автор ограничился анализом реализации 1) браузерами 2) для Windows 3) следующих операций:
— создание вкладки;
— закрытие вкладки;
— отмена закрытия вкладки;
— навигация по вкладкам;
— открытие адреса/ссылки во вкладке.