Основными предпосылками построения контекстно-зависимого интерфейса является задача оградить конечного пользователя от действий которые им не могут быть выполнены в определенной фазе работы с программой. Типичным примером является меню управления файлами в проводнике Windows, предоставляющему пользователю операции: копировать, вырезать, вставить. Операция «вставить» доступна при наличии в буфере обмена ссылок на копируемые или вырезанные файлы, или если таких ссылок нет, то операция будет заблокирована или полностью скрыта. Таким образом интерфейс побуждает пользователя выполнить определенную последовательность действий для получения доступной операции. В частности, предварительно скопировать требуемые для переноса или копирования файлы в буфер обмена.
Игнорирование управлением доступными операциями, приводит конечного пользователя в замешательство, неясно какие операции доступны, а какие нет, непонятно в каком режиме работает приложение и пр. Представьте себе, вам пришла задача визирования документа, с перечнем доступных операций согласовать, утвердить, ознакомиться, исполнить. Вам с ходу не ясно что от вас требуются, и вы начинаете пробираться на ощупь. Вы пробуете выполнить поочередно операции выстроив тем самым общую картину, посредствам перечитывания сообщений о недопустимости действий: «нет прав», «не для Вашей роли», «не для этого этапа» и пр. И хорошо если вообще существует обратная связь в виде информационных сообщений, то её и вовсе не бывает, или программа попытается выполнить недопустимую операцию и вернет пользователю «Object reference not set to an instance of an object».
Описанные проблемы возникают, когда не закладываются на эргономику и разработку удобного, дружелюбного интерфейса, но мой пост не о юзабилити, я рассмотрю основные техники построения контекстно-зависимого интерфейса.
Игнорирование управлением доступными операциями, приводит конечного пользователя в замешательство, неясно какие операции доступны, а какие нет, непонятно в каком режиме работает приложение и пр. Представьте себе, вам пришла задача визирования документа, с перечнем доступных операций согласовать, утвердить, ознакомиться, исполнить. Вам с ходу не ясно что от вас требуются, и вы начинаете пробираться на ощупь. Вы пробуете выполнить поочередно операции выстроив тем самым общую картину, посредствам перечитывания сообщений о недопустимости действий: «нет прав», «не для Вашей роли», «не для этого этапа» и пр. И хорошо если вообще существует обратная связь в виде информационных сообщений, то её и вовсе не бывает, или программа попытается выполнить недопустимую операцию и вернет пользователю «Object reference not set to an instance of an object».
Описанные проблемы возникают, когда не закладываются на эргономику и разработку удобного, дружелюбного интерфейса, но мой пост не о юзабилити, я рассмотрю основные техники построения контекстно-зависимого интерфейса.