Блог технического писателя Ильи Жукова

Контекстная справка в приложениях Windows

Понятие контекстной или контекстно-зависимой справки (от англ. context-sensitive help) появилось в 1987 году с выходом формата WinHelp. Изначально контекстная справка задумывалась как предоставление пользователю краткой информации об элементе интерфейса программы (окне, кнопке и т.п.), с которым пользователь работал в момент вызова справки. Позднее реализация контекстной справки свелась к прямым вызовам отдельных разделов справки из разных форм приложения.

 

Отличия от обычной справки

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

 

Способы реализации контекстной справки

Существует два основных способа реализации контекстной справки:

  • «Что это?» - описания элементов ГИП во всплывающих окнах.
  • Открытие определенных разделов обычной справки по прямым ссылкам из ПО.

 

Что это?

Самым распространенным способом реализации контекстной справки была так называемая справка "What's this?". Пользователь выбирал инструмент "Что это?" – обычно значок в строке заголовка окна со знаком вопроса - и щелкал интересующее его поле или кнопку. На экран выводилось всплывающее окно с кратким описанием выбранного элемента интерфейса. Созданием контекстной справки занимались программист и технический писатель.

Технически в проект справки добавлялось два файла:

  • текстовый файл со всеми текстами контекстной справки, поделенный на разделы .topic с уникальными идентификаторами;
  • файл заголовков (от англ. header file), в котором задавалось соответствие между уникальным идентификатором раздела из первого файла и цифровым идентификатором элемента ГИП.

Вызовы разделов контекстной справки вставлялись в исходный код ПО. Такой способ реализации контекстной справки поддерживался в форматах WinHelp (устарел) и HTML Help (CHM).

Подробное описание данного способа реализации контекстной справки можно посмотреть на сайте разработчика на английском языке: Creating Context-Sensitive Pop-up Help.

 

Открытие раздела обычной справки

Со временем процесс разработки ПО усложнялся, становился более динамичным. Выделялись и работали отдельно команда программистов и команда технических писателей. Программы становились сложнее и содержали уже не сотни, а тысячи уникальных элементов ГИП. Контекстную справку в изначальном виде стало очень сложно и трудоемко поддерживать. В этой связи был разработан второй подход к реализации контекстной справки. В зависимости от рабочей ситуации (открытое в данный момент диалоговое окно, используемый функционал и т.п.), при вызове справки стали открывать определенный раздел обычной справки с описанием данного окна, функционала и т.п. Сегодня в основном используется такой способ реализации контекстной справки. Он поддерживается в форматах HTML Help (CHM) и WebHelp. А от первого способа реализации контекстной справки практически полностью отказались в пользу второго.

Примером реализации такой контекстной справки может служить вызов разных разделов справки разными командами с ленты.

 

вызов разделов CHM из приложения

 

Вызов разделов из CHM-файла

Cинтаксис ссылки для вызова раздела CHM-файла следующий (исключая префикс ms-its и имя окна справки):

Helpfile.chm::/Topic.htm#anchor

Где:

  • Helpfile.chm - файл справки HTML Help;
  • Topic.htm - раздел в корне CHM-файла;
  • Topic - идентификатор раздела (HELP-ID);
  • anchor - якорь в разделе Topic.htm.

 

Чаще всего файлы разделов находятся в корне CHM-файла. Идентификатор раздела можно посмотреть в проекте (если вы автор) или в свойствах раздела CHM-файла.

 

свойства раздела

 

На локальном ПК ссылку можно проверить следующим образом:

Выберите Пуск -> Выполнить и введите:

hh.exe C:\test\HelpFile.chm::/Topic.htm#anchor

Где:

  • hh.exe - программа для просмотра справки в формате HTML Help (CHM), файл расположен в C:\Windows\hh.exe;
  • C:\test\HelpFile.chm - путь к CHM-файлу;
  • Topic.htm - раздел в корне CHM-файла;
  • anchor - якорь в разделе Topic.htm.

 

Вызов CHM из программы

Справку в формате CHM можно вызвать из любого приложения, работающего в ОС Windows. По ссылкам ниже можно посмотреть инструкции для программистов на английском языке для разных сред разработки:

Programming Tutorials

CHM files and programming languages

 

Вызов разделов из WebHelp

Для вызова раздела WebHelp по идентификатору используется ссылка следующего вида:

http://www.WEB-SITE.com/WebHelp_folder/HELP-ID.html

 

Контекстная справка сегодня

На смену формату HTML Help (CHM) был разработан формат Microsoft Help 2, но в 2003 году компания Microsoft решила не выпускать новую платформу справки. Данный формат используется компанией, но до сих пор не стал публичным. В 2009 году компания Microsoft запатентовала систему вывода контекстной справки на электронных устройствах (Патент США US8151192B2).

Согласно описанию, помимо обработчика и ОС система состоит из:

  • модуля определения атрибутов приложения (application attributes discovery module);
  • модуля определения состояния системы (system state discovery module);
  • модуля инфраструктуры справки (help infrastructure module);
  • модуля определения справочного контекста (help context mapping module);
  • модуля хранения разделов справки (help topic collection module);
  • и средства просмотра справки.

 

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

Модуль инфраструктуры справки обрабатывает полученные атрибуты приложения, информацию о состоянии системы, и определяет набор контекстов справки (help context set), связанный с приложением в момент, когда пользователь вызывает справку.

В модуле определения справочного контекста хранятся XML-таблицы соответствий между контекстами и комбинациями атрибутов приложения и информации о состоянии системы (в нечитаемом для человека виде). Данный модуль определяет лучшее соответствие между контекстом приложения и контекстом справки + определяет идентификаторы разделов справки. В модуле хранения каждый раздел справки обладает уникальным идентификатором. Средство просмотра справки выводит разделы справки по полученному идентификатору.

 

Добавить комментарий

Все о справке и документации для пользователей!

Следить за новыми статьями: