Система и способ для обеспечения известности элементов пользовательского интерфейса для приложения и пользователя

Изобретение относится к вычислительной технике. Техническим результатом является обеспечение функциональных возможностей пользовательского интерфейса программно доступными для приложения без знания о типе элемента. Шаблоны управления используются для описания функциональных возможностей, которые могут проявляться двумя или более типами элементов или управляющих элементов. Функциональные возможности, которые обычны для двух или более типов элементов, описываются одним и тем же шаблоном управления. Некоторые предопределенные способы, структуры, свойства и/или события могут быть связаны с конкретным шаблоном управления. Элементы, которые поддерживают шаблон управления, когда они запрашиваются, возвращают интерфейс, который описывает эти способы, структуры, свойства и/или события. Шаблоны управления являются взаимоисключающими в функциональных возможностях, которые они представляют, так что они могут быть объединены произвольным образом для проявления полного набора функциональных возможностей, предоставляемых конкретным управляющим элементом. 4 н. и 17 з.п. ф-лы, 6 ил., 2 табл.

 

Настоящая заявка подана как заявка PCT 17 мая 2003 Корпорацией Microsoft, являющейся по принадлежности и местоположению компанией США, с указанием всех стран, за исключением США. Приоритет испрашивается в соответствии с предварительной заявкой США № 60/414,863 от 30 сентября 2002.

ОБЛАСТЬ ТЕХНИКИ

Настоящее изобретение относится к компьютерному программному обеспечению и, более конкретно, к признакам доступности пользовательского интерфейса компьютерного программного обеспечения.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Некоторые пользователи не могут взаимодействовать с компьютерным пользовательским интерфейсом общепринятым способом. Например, мелкие пиктограммы и шрифты ставят проблему для пользователей с плохим зрением. Звуковая предупредительная сигнализация и обратная связь бесполезны для пользователей с нарушением слуха. Вычислительная промышленность принимает во внимание эти потребности. Некоторые операционные системы поставляются с дополнительными признаками доступности, которые делают возможным для нетрудоспособных видоизменять пользовательский интерфейс для приспособления к их нуждам. Например, некоторые операционные системы позволяют пользователям получать визуальную обратную связь, где при других обстоятельствах будет использоваться слышимая обратная связь. Дополнительно, сверхкрупные экранные шрифты и высококонтрастные схемы могут использоваться для пользователей с плохим зрением. Для тех, кто имеет крайнее нарушение зрения, такое как слепота, некоторые операционные системы обеспечивают «экранные считывающие устройства», которые сообщают пользователю об элементах пользовательского интерфейса или обеспечивают инфраструктуру, позволяющую другой компании обеспечивать такое экранное считывающее устройство.

Обычная утилита экранного считывающего устройства выполняется одновременно с любым приложением, с которым может работать пользователь. Когда пользователь передвигается от элемента к элементу, как при переходе с одной кнопки на другую посредством клавиши табуляции, экранное считывающее устройство посылает информацию о текущем элементе механизму речевого воспроизведения текста и/или на обновляемый брайлевский дисплей для передачи этой информации пользователю. Механизмы речевого воспроизведения текста переводят эту информацию в синтезированную речь, чтобы уведомить о ней пользователя. Обновляемые брайлевские дисплеи брайлевской печати переводят эту информацию в точно определенный точечный растр (то есть брайлевские знаки) и поднимают контакты физического устройства аппаратного обеспечения соответственно каждой точке в брайлевских символах. В случае кнопки экранное считывающее устройство часто передает название кнопки и текущее положение этой кнопки (например, она в настоящее время блокирована и, следовательно, не может быть нажата). Подобным образом, если пользователь использует приложение обработки текста, экранное считывающее устройство может быть сконфигурировано, чтобы идентифицировать активное окно (то есть имя приложения) и текущую строку, предложение, слово или знак, ближайший к точке ввода. Экранное считывающее устройство может также описывать атрибуты этого текста, такие как название шрифта, вес, цвет, выделительный шрифт и выравнивание. Часто, экранное считывающее устройство также информирует пользователя о том, какие действия пользователь может совершить в настоящее время. Например, если пользователь передвинулся на кнопку, экранное считывающее устройство может уведомить пользователя, что он может нажать кнопку путем нажатия на клавишу пробела.

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

В настоящее время, продукты вспомогательной технологии по существу только могут запросить от элемента ограниченный набор информации, такой как его тип (например, кнопка, окно списка или тому подобное), его расположение на экране или его заголовок. Сам продукт вспомогательной технологии должен затем сделать вывод из полученного типа элемента, какие функциональные возможности доступны для пользователя. Другими словами, продукт вспомогательной технологии должен понимать, что такое «кнопка» и что кнопка может быть нажата (активизирована). Следовательно, проектировщики хорошего продукта вспомогательной технологии должны предварительно определить все типы элементов, которые могут быть включены в приложение, и идентифицировать их функциональные возможности. Это невозможная задача, потому что существуют новые типы экранных элементов или управляющих элементов, производимых на основе рутинных операций компаниями программного обеспечения во всей отрасли средств программного обеспечения. Дополнительно, это является малопродуктивным использованием ресурсов, потому что не все элементы уникальны. Многие элементы совместно используют сходные функциональные возможности, такие как способность к активизации или способность к управлению совокупностью объектов, когда могут выбираться один или более объектов.

Более общий класс приложений, автоматизированные утилиты, имеет приблизительно тот же набор требований, что и эти продукты вспомогательной технологии. В общем, автоматизированные утилиты нуждаются в способности динамически обнаруживать экранные элементы (например, управляющие элементы) посредством обхода объектной иерархии элементов или получения уведомления о событии, таком как при смене фокуса с одного управляющего элемента на другой. Эти утилиты также нуждаются в общем механизме запроса этих элементов для получения информации, удобной для восприятия человеком, которая может быть передана пользователю или сохранена для последующего обращения к ней. Наконец, автоматизированные утилиты нуждаются в способности обнаруживать, какая функциональность или режим предоставляются конкретным экранным элементом, даже если элемент полностью неизвестен автоматизированной утилите. К сожалению, специалистам в данной области техники не удается создать подобный механизм обнаружения элементов пользовательского интерфейса и запроса и манипуляции связанными с ними функциональными возможностями для применения к полному спектру возможных элементов.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Настоящее изобретение направлено на то, чтобы сделать функциональные возможности элемента (или управляющего элемента) пользовательского интерфейса программно доступными для приложения без априорного знания о типе элемента. Дополнительно, настоящее изобретение направлено на механизм для обеспечения разработчикам программного обеспечения контроля за информацией, которая может быть передана пользователю, использующему автоматизированную утилиту, такую как продукт вспомогательной технологии (например, экранное считывающее устройство для слепых). Вкратце, используются шаблоны управления для описания функциональных возможностей, которые могут быть присущими одному или более типам элементов. Функциональные возможности, которые являются общими для двух или более типов элементов, описываются тем же самым шаблоном управления. Некоторые предопределенные способы, структуры, свойства и/или события могут быть связаны с конкретным шаблоном управления. Элементы, которые поддерживают шаблон управления при их запросе, возвращают интерфейс, который описывает эти способы, структуры, свойства и/или события. Таким образом, автоматизированная утилита может манипулировать элементом без предшествующего знания о функциональных возможностях, поддерживаемых элементом, при условии, что элемент может подтвердить, что он поддерживает конкретный шаблон управления или набор шаблонов управления.

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

ФИГ.1 - функциональная блок-схема, которая иллюстрирует вычислительное устройство, которое может быть использовано в реализациях настоящего изобретения.

ФИГ.2 - функциональная блок-схема, в общих чертах иллюстрирующая экранное изображение в системе, реализующей настоящее изобретение.

ФИГ.3 - графическое представление объектного дерева, которое представляет элементы, показанные на экранном изображении на ФИГ.2.

ФИГ.4 - графическое представление поддерева объектного дерева, показанного на ФИГ.3.

ФИГ.5 - логическая блок-схема, в общих чертах иллюстрирующая процесс, который может быть применен продуктом вспомогательной технологии для описания и манипулирования экранными элементами для пользователя, согласно изобретению.

ФИГ.6 - логическая блок-схема, в общих чертах иллюстрирующая процесс запроса объекта, чтобы определить, какое поведение он проявляет, согласно изобретению.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНОГО ВОПЛОЩЕНИЯ

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

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

ИЛЛЮСТРАТИВНАЯ ВЫЧИСЛИТЕЛЬНАЯ СРЕДА ИЗОБРЕТЕНИЯ

ФИГ.1 иллюстрирует вычислительное устройство, которое может быть использовано в иллюстративных реализациях настоящего изобретения. Согласно ФИГ.1, примерная система для реализации изобретения содержит вычислительное устройство, такое как вычислительное устройство 100. В самой основной конфигурации вычислительное устройство 100 обычно содержит, по меньшей мере, одно устройство 102 обработки данных и системную память 104. В зависимости от точной конфигурации и типа вычислительного устройства системная память 104 может быть энергозависимой (такой как ОЗУ, RAM), энергонезависимой (такой как ПЗУ, ROM, флэш-память и т.д.) или некоторой их комбинацией. Системная память 104 обычно содержит операционную систему 105, один или более программных модулей 106 и может содержать программные данные 107. Эта основная конфигурация вычислительного устройства 100 иллюстрируется на ФИГ.1, с указанными компонентами внутри пунктирной линии 108.

Вычислительное устройство 100 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 100 может также содержать дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или магнитная лента. Такие дополнительные запоминающие устройства иллюстрируются на ФИГ.1 съемным запоминающим устройством 109 и несъемным запоминающим устройством 110. Компьютерные носители для хранения данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули и другие данные. Системная память 104, съемное запоминающее устройство 109 и несъемное запоминающее устройство 110 - все являются примерами компьютерных носителей для хранения данных. Компьютерные носители для хранения данных включают в себя, без ограничения указанным, RAM, ROM, EEPROM (электронно-стираемую программируемую постоянную память), флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства или любую другую среду, которая может быть использована для хранения желаемой информации и к которой может быть обеспечен доступ для вычислительного устройства 100. Любой такой компьютерный носитель для хранения данных может быть частью устройства 100. Вычислительное устройство 100 может также иметь устройство (а) 112 ввода, такое как клавиатура 122, мышь 123, перо, устройство речевого ввода, устройство сенсорного ввода, сканнер и т.д. Устройство (а) 114 вывода, такие как дисплей, динамики, принтер и т.д. также могут быть включены. Эти устройства хорошо известны в технике и не нуждаются в детальном описании.

Вычислительное устройство 100 может также содержать коммуникационные соединения 116, которые позволяют устройству поддерживать связь с другими вычислительными устройствами 118, например, в сети. Коммуникационные соединения 116 являются одним примером среды передачи. Среда передачи может обычно быть реализована машиночитаемыми инструкциями, структурами данных, программными модулями или другими данными в модулированном сигнале данных, таком как несущее колебание или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, в котором одна или более его характеристик установлена или изменяется таким образом, чтобы кодировать информацию в сигнале. В качестве примера, без ограничения указанным, среда передачи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другая беспроводная среда. Термин «машиночитаемый носитель», используемый здесь, включает как носитель для хранения данных, так и среду передачи.

ИЛЛЮСТРАТИВНАЯ РЕАЛИЗАЦИЯ ИЗОБРЕТЕНИЯ

На ФИГ.2 показана функциональная блок-схема, в общих чертах иллюстрирующая компоненты системы, реализующей настоящее изобретение. На ФИГ.2 показаны автоматизированная утилита 201 (например, продукт вспомогательной технологии) и приложение 202. Приложение 202 содержит множество элементов. Для целей данного описания, термин «элемент» означает любой компонент пользовательского интерфейса, с которым пользователь может взаимодействовать или который обеспечивает некоторую значащую информацию для пользователя или функциональные возможности для приложения 202. Термин «управляющий элемент» также иногда используется для идентификации таких элементов. Пользователь может взаимодействовать со многими элементами, показанными в приложении 202. Например, приложение 202 включает строку 212 меню с множеством меню, причем каждое меню имеет связанные с ним серии пунктов меню. Меню 214 редактирования включает «выпадающий» список меню с множеством пунктов 215 меню.

Некоторые элементы включены в другие элементы. Например, представление 220 в виде списка включает в себя несколько пиктограмм, таких как пиктограмма 222. Рамка 225 содержит комбинированное окно 230 и две кнопки, кнопку 231 и кнопку 232. Дополнительно, рамка 225 и представление 220 в виде списка содержатся в диалоговом элементе 221 с вкладками. В обычной компьютерной технологии каждый элемент, который содержится в другом элементе, считается дочерним элементом содержащего его элемента. Таким образом, комбинированное окно 230 является дочерним элементом рамки 225. Рамка 225 и представление 220 в виде списка являются дочерними элементами диалогового элемента 221 с вкладками.

Пользователь может передвигаться от одного элемента к другому несколькими способами. Одним способом является перевод указателя мыши с одного элемента на другой. Другим способом может быть нажатие клавиши табуляции или клавиши с изображением направлений стрелки. Элемент, к которому передвинулся пользователь, «активный в текущий момент» элемент, считается имеющим «фукус». Например, как показано на ФИГ.2, пункт 216 меню выбран и в текущий момент имеет фокус. Когда пользователь передвигается от одного элемента к другому элементу, автоматизированная утилита 201 может быть автоматически уведомлена об элементе, который получил фокус. В случае, когда автоматизированная утилита 201 является экранным считывающим устройством, она извлекает имя или метку нового фокусированного элемента и «произносит» эту информацию пользователю. Экранное считывающее устройство может считывать заголовок активного окна, опции меню, набранный текст и тому подобное. В действительности, экранное считывающее устройство собирает текстовую информацию и затем передает ее механизму речевого воспроизведения текста, который преобразует этот текст в синтезированный речевой вывод. Хотя здесь утилита описывается как экранное считывающее устройство, понятно, что автоматизированной утилитой может быть любое количество различного типа утилит, таких как речевое программное обеспечение и программное обеспечение речевого ввода текста, командные и управляющие утилиты, макрорегистраторы, сценарии автоматизированного тестирования, командная утилита и тому подобное.

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

Многие элементы являются диалоговыми и представляют функциональные возможности, которые обуславливают выполнение приложения 202 предназначенным ему способом. Например, кнопка 231, нажимаемая щелчком мыши, может привести к некоторой реакции приложения 202. Кнопка 232, нажимаемая щелчком мыши, может привести к некоторой другой реакции приложения 202. Выбор пункта 216 меню может привести к некоторой еще одной реакции.

Хотя каждый из элементов может несколько отличаться, многие проявляют похожие основные функциональные характеристики. Эти основные функциональные характеристики относятся к собственному поведению элемента в отличие от конкретной реакции, которая может произойти в приложении 202. Другими словами, кнопка 231 и кнопка 232 обе выбираются с помощью графического интерфейса, даже если бы приложение 202 могло реагировать различными способами, в зависимости от того, какая кнопка была выбрана. Также пункты 215 меню и пункты в комбинированном окне 230 могут выбираться. В отличие от этого большинство различных типов элементов также имеют некоторые основные функциональные возможности, которые различны. Например, комбинированное окно 230 позволяет редактировать текст в участке окна 233 редактирования, тогда как пункты 215 меню не обеспечивают возможность редактировать их содержание.

Изобретателями были определены некоторые шаблоны основных функциональных возможностей, которые представлены во многих элементах различного типа. Это определение позволило установить «шаблоны управления», чтобы описать основные функциональные возможности, которые могут проявляться элементом. Шаблон управления - это механизм для описания поведения элемента. Более конкретно, конкретный шаблон управления может определить некоторую структуру, свойства, события и способы, поддерживаемые элементом. Элементы могут поддерживать (и, возможно, поддерживают) множество шаблонов управления. Совокупность шаблонов управления, поддерживаемых элементом, определяет всем поведение у элемента.

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

Таблица 1. Описание иллюстративных шаблонов управления
ИмяОписание
Окно ПриложенияПроявляет поведение и информацию, обычно связанную с окном приложения верхнего уровня
КомандыПроявляет набор действий, которые могут быть выполнены пользователем («сохранить» документ, «нажать» кнопку и т.д.)
Описательная ИнформацияПроявляет семантическую информацию для элементов пользовательского интерфейса (ПИ), в особенности для тех, которые представляют другие объекты (например, пункт списка в почтовой программе может использовать этот шаблон, чтобы показать, что он представляет сообщение электронной почты и может представить информацию о важности этого сообщения, прочитано ли оно или нет и т.д.)
ФиксацияПроявляет возможность элемента менять свое состояние фиксации при исполнении
Развернуть/ СвернутьПроявляет способность управляющего элемента разворачиваться для отображения большего содержимого или сворачиваться, чтобы скрыть содержимое
СеткаПроявляет основные функциональные возможности сетки, размер и переход к определенным ячейкам
Пункт СеткиИспользуется для представления элементов Сетки
Иерархия ПунктаПроявляет и позволяет клиентам прослеживать иерархические отношения между элементами ПИ, независимые от их отношений в логическом дереве. Иерархические отношения определяются как нециклические
АктивизироватьПроявляет способность элемента к активизации. Например, кнопка поддерживает этот шаблон, чтобы позволить автоматизированной утилите программно нажать кнопку
МультимедиаПоказывает способность элемента представлять мультимедийное содержимое, включающее многочисленные потоки данных синхронизированным образом: закрытые заголовки, описательное аудио, ASL поток, альтернативные языки и т.д.
Составной ВидПроявляет способность элемента переключаться между множественными представлениями одного и того же набора информации данных или дочерних элементов
Область значений Проявляет связанный набор свойств, который отражает способность управляющего элемента управлять значением в конечном интервале. Передает действительные значения минимума и максимума управляющего элемента и его текущее значение
Прокручивать Для ПросмотраПроявляет способность управляющего элемента изменять участки содержания, видимые для пользователя
ВыборПоказывает пункты совокупности дочерних элементов контейнера, которые выбраны в текущий момент
Пункт ВыбораОпределяет выбираемый пункт в контейнере и позволяет непосредственно манипулировать выбором пункта
СортироватьПроявляет текущий порядок сортировки контейнера и позволяет клиентам программно пересортировать его элементы
РазбитьПроявляет способность делить область содержания элемента на множество панелей или взаимодействующие области
ТаблицаИспользуется во взаимосвязи с шаблоном Сетки, чтобы показать, что Сетка также имеет информацию заголовка
Пункт ТаблицыПредставляет ячейку в таблице; используется для упрощения вида таблицы для клиента
ТекстПроявляет поведение и функциональные возможности, связанные с редактированием, форматированием и интерпретацией больших блоков текста
ЗначениеИспользуется для получения и установки значений для управляющих элементов, которые не охватывают интервал
Визуальная ИнформацияИспользуется для обеспечения описания визуального появления изображения, элемента, анимации, управляющего элемента и т.д., которое обеспечивает важную информацию для пользователя
ОкноПроявляет способность элемента изменять экранное положение или размер, включая максимальный, минимальный и режим полного экрана
Изменить МасштабПроявляет способность управляющего элемента (например, средства просмотра документа) изменять масштаб изображения

Таким образом, элементы, показанные на ФИГ.2, могут конфигурироваться с подходящими шаблонами управления, чтобы представить тип поведения, который можно ожидать от конкретного типа элемента. Далее следует таблица, которая описывает некоторые обычные элементы и некоторые шаблоны управления, которые могут быть использованы для определения поведения этих обычных элементов:

Таблица 2. Шаблоны управления для Обычных Элементов
ЭлементСоответствующие шаблоны управления
КнопкаКоманды, Активизировать, Визуальная Информация (если подходит)
Комбинированное ОкноРазвернуть/Свернуть, Выбор, Текст, Значение
Окно представления спискаВыбор, Прокручивать для просмотра, Перетаскивание (если подходит)
Представление СпискаВыбор, Прокручивать для просмотра, Сетка (в некоторых видах), Составной Вид, Таблица, Перетаскивание (если подходит)
Текстовое Окно, РедактироватьКоманды, Перетаскивание, Прокручивать для просмотра (если подходит), Текст, Изменить Масштаб (если подходит)

ФИГ.3 - это графическая иллюстрация объектного дерева 301, которое представляет элементы приложения 202, показанные на ФИГ.2. Понятно, что один или более объектов в объектном дереве 301 могут быть объектами-заместителями (посредниками) или объектами-упаковщиками, которые представляют соответствующий элемент приложения 202. Тем не менее, только в целях упрощения, каждый объект в объектном дереве 301 трактуется как действительный элемент. Главное окно приложения 202 представляется в форме 305 объекта, и каждый элемент приложения 202 включает соответствующий объект в объектном дереве 301. Например, каждый участок диалогового элемента 221 с вкладками на ФИГ.2 имеет соответствующий пункт вкладки (вкладка 306, вкладка 307, вкладка 308) в объектном дереве 301. Подобным образом представление 220 списка и рамка 225 имеют соответствующие объекты (представление 311 списка и рамка 312) в объектном дереве 301. Порождающие/дочерние отношения также представлены в объектном дереве 301. Например, объект 312 рамки имеет дочерние объекты (комбинированное окно 230, кнопка 321 и кнопка 322), которые соответствуют элементам, содержащимся в рамке 225.

В процессе работы, когда пользователь передвигается от одного элемента к другому в приложении, устройство управления выбором, связанное с приложением 202, уведомляет автоматизированную утилиту 201 (показанную на ФИГ.3 как объект), что фокус изменился. В случае экранного считывающего устройства, изменение этого фокуса может вызвать запрос автоматизированной утилитой 201 конкретного объекта, представляющего текущий элемент с фокусом для множества свойств и шаблонов управления, поддерживаемых этим элементом. Изменение этого фокуса является одной из многих возможных причин, по которой автоматизированная утилита может выбрать запрос элемента для этой информации.

Поддерево 401 объектного дерева 301 проиллюстрировано на ФИГ.4. Чтобы дополнительно проиллюстрировать действие, допустим, что автоматизированная утилита 201 является экранным считывающим устройством. Когда пользователь передвигается на кнопку 231, экранное считывающее устройство может запросить соответствующий ей объект (кнопка 321) и извлечь ее Свойство Имени 410, строку в форме, удобной для восприятия человеком, для изложения пользователю. Свойство Имени 410 содержит строку, которая должна быть связана с тем управляющим элементом, который попал в поле зрения пользователя, смотрящего на дисплей. В этом случае, экранное считывающее устройство посылает строку «Кнопка Справка» механизму речевого воспроизведения текста, который затем воспроизводит информацию для пользователя.

Дополнительно, автоматизированная утилита 201 может запросить кнопку 321 установить шаблоны 412 управления, поддерживаемые соответствующим ей элементом. В этом случае, один идентифицированный шаблон управления для кнопки 321 является шаблоном управления «Активизировать». Шаблоны управления не только позволяют клиентскому приложению запрашивать поведение элемента, они также позволяют программно манипулировать этим элементом через интерфейсы, спроектированные для этого конкретного шаблона управления. В этом примере автоматизированная утилита 201 может направить запрос кнопке 321 непосредственно, чтобы определить, поддерживает ли она шаблон управления «Активизировать». Кнопка 321 может представить утвердительный ответ путем возврата интерфейса (Интерфейс X 414), который включает набор способов для использования преимуществ поведения активизации. В другом примере шаблон управления «Выбрать» (связанный с комбинированным окном 320) может обеспечить способы для запроса выбранных пунктов, выбора или отмены выбора конкретного пункта, определение, поддерживает ли элемент один или множество режимов выбора, и тому подобное.

В механизмах, обеспечиваемых настоящим изобретением, могут быть написаны автоматизированные утилиты, которые понимают как работать с каждым шаблоном управления, в отличие от каждого элемента ПИ или управляющего элемента. Так как дискретных типов поведения, которое проявляют элементы, относительно мало, будет намного меньше шаблонов управления, чем типов элементов или управляющих элементов. Результатом является меньший объем кода для автоматизированной утилиты и более гибкая архитектура автоматизированных утилит, которые могут эффективно опрашивать и манипулировать новыми элементами, которые поддерживают известные шаблоны управления.

На ФИГ.5 показана логическая блок-схема, в общих чертах иллюстрирующая процесс, который может быть применен управляемой событиями автоматизированной утилитой, которая основывается на событиях автоматизации ПИ, чтобы обнаруживать экранные элементы, которые должны опрашиваться для получения характерной информации и которыми можно манипулировать с использованием шаблонов управления. Процесс начинается или с обхода иерархии объекта, чтобы определить местоположение элемента, представляющего интерес (этап 510), или он может ожидать в цикле (этап 511), пока не получит уведомление о событии, которое он предварительно регистрирует, чтобы получить. Когда получено уведомление о событии, процесс продолжается на этапе 513.

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

На этапе 515 интересующий текущий элемент опрашивается о поддержке шаблона управления. Один из способов сделать это описан ниже со ссылкой на ФИГ.6. Чтобы определить, как программным способом манипулировать элементом, автоматизированная утилита может запросить, поддерживает ли элемент конкретный тип шаблона управления, или может запросить у элемента типы шаблонов управления, которые он поддерживает. Как только шаблоны управления становятся известными, процесс продолжается на этапе 517.

На этапе 517 элементом, имеющим фокус, манипулируют в соответствии с поддерживаемыми им шаблонами управления. Например, в ответ на запрос (например, этап 515), поддерживается ли конкретный шаблон управления, элемент может возвратить интерфейс, включающий методы, которые воплощают поведение, соответствующее шаблону управления. Посредством использования этого интерфейса, автоматизированная утилита (или любой другой клиент, построенный на Оболочке Автоматизации ПИ и имеющий соответствующие права защиты) может манипулировать элементом.

На ФИГ.6 показана логическая блок-схема, в общих чертах иллюстрирующая процесс запроса объекта, чтобы определить какое поведение он проявляет. Процесс начинается с решения на этапе 601, где элемент (представленный объектом) обнаруживается уведомлением о событии или некоторым другим механизмом, таким как обход иерархии объектов Автоматизации ПИ.

На этапе решения 601 определяется, требуется ли знание обо всех поддерживаемых шаблонах управления для элемента с фокусом. Например, некоторые обстоятельства могут служить основанием для запроса определения всех функциональных возможностей элемента, а не просто определения, ведет ли он себя конкретным желаемым образом. Один из примеров такого случая может иметь место в среде отладки или тестирующей среде. В этих случаях процесс продолжается на этапе 603. Тем не менее, почти всегда автоматизированной утилите необходимо знать поддерживает ли элемент конкретное поведение. В этих случаях процесс продолжается на этапе 605.

На этапе 603 происходит запрос поддерживаемых шаблонов управления для интересующего элемента. Запрос может потребовать полный список шаблонов управления, поддерживаемых элементом. Запрос может потребовать просто список, или он может потребовать интерфейсы к каждому из поддерживаемых шаблонов управления. В ответ на этапе 607 выдается список, и запрашивающая утилита или приложение обрабатывает его любым подходящим образом; но обычной практикой является использование методов в отношении возвращенных шаблонов управления, чтобы программно манипулировать элементом (например, использовать метод «Шаблон Активизации. Активизировать ()», чтобы нажать кнопку 321 и, таким образом, отобразить окно «Справка»).

На этапе 605 направляется запрос к элементу, чтобы определить, поддерживает ли он конкретный шаблон управления. Во многих случаях, при облегчении передвижения для приложения, автоматизированная утилита может знать, какие функциональные возможности или поведение ожидаются в конкретной точке приложения. Следовательно, вместо запроса списка всех поддерживаемых шаблонов управления, автоматизированная утилита может запросить, поддерживает ли элемент конкретный шаблон управления. Таким образом, на этапе 605 автоматизированная утилита может запросить элемент о том, поддерживает ли он конкретный шаблон управления.

На этапе решения 609 определяется, поддерживается ли конкретный шаблон управления. Например, запрашиваемый элемент может просто возвратить «отказ», если требуемый шаблон управления не поддерживается. В этом случае AT утилита может повторить запрос на этапе 605 с другим желаемым шаблоном управления, или она может завершиться, если не один из желаемых шаблонов управления не поддерживается. Если текущий шаблон управления поддерживается, процесс продолжается на этапе 611. Автоматизированная утилита может запросить о поддержке конкретного шаблона управления, пока все интересующие шаблоны управления не будут проверены. Следует отметить, что уведомление о поддержке конкретного шаблона управления может быть обеспечено просто возвращением в вызванную автоматизированную утилиту интерфейса с методами, которые соответствуют поддерживаемому шаблону управления.

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

Приведенное выше описание, примеры и данные обеспечивают полное описание изготовления и использования компонент изобретения. Так как многие воплощения изобретения могут быть сделаны без отклонения от сущности и объема изобретения, изобретение определяется прилагаемой формулой изобретения.

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

прием запроса, из утилиты автоматизации, запрашивающего шаблон управления, поддерживаемого элементом;

автоматическое определение из элемента, поддерживает ли элемент шаблон управления, путем программного запрашивания у элемента, поддерживает ли элемент упомянутый шаблон управления, прежде чем элемент будет исполняться, при этом шаблон управления описывает основную функциональность, проявляемую множеством типов элементов, которая соответствует методу, поддерживаемому элементом;

передачу шаблона управления, поддерживаемого элементом, в утилиту автоматизации; и

использование утилиты автоматизации для программного манипулирования элементом, который поддерживает шаблон управления, используя метод, поддерживаемый элементом,

при этом элементом манипулируют, основываясь на поддержке им шаблона управления без ссылки на тип элемента.

2. Способ по п.1, в котором основная функциональность содержит одно или более из предварительно определенных методов, структур, свойств или событий.

3. Способ по п.1, в котором элемент поддерживает множество различных шаблонов управления.

4. Способ по п.1, в котором элементом манипулируют посредством утилиты автоматизации, которая представляет собой экранное считывающее устройство.

5. Способ по п.4, в котором экранное считывающее устройство описывает функциональность, предоставляемую элементом, на основе панели управления.

6. Способ по п.1, в котором основная функциональность описывает поведение элемента и функциональность, которую он предоставляет пользователю.

7. Способ по п.1, дополнительно содержащий

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

вербальную передачу этой информации пользователю.

8. Способ по п.1, в котором шаблон управления является, по меньшей мере, одним из списка, содержащего следующее: Окно Приложения, Календарь, Команды, Описательная Информация, Фиксация, Развернуть/Свернуть, Графика, Сетка, Пункт Сетки, Пункт Иерархии, Активизировать, Мультимедиа, Составной Вид, Область Значений, Вращение, Прокрутка, Выбор, Пункт Выбора, Сортировать, Разбить, Таблица, Пункт Таблицы, Текст, Значение, Визуальная Информация, Окно, Изменить Масштаб.

9. Машиночитаемый носитель, имеющий выполняемые компьютером команды для выполнения способа по п.1.

10. Машиночитаемый носитель, имеющий выполняемые компьютером компоненты для манипулирования элементом, содержащие:

утилиту автоматизации экранного считывающего устройства, конфигурированную для

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

в ответ на запрос, приема ответа из упомянутого другого приложения, который включает в себя шаблон управления, который соответствует функциональному методу, поддерживаемому элементом; и

программного манипулирования элементом, который поддерживает шаблон управления, посредством интерфейса в соответствии с шаблоном управления, принятым от элемента.

11. Машиночитаемый носитель по п.10, в котором шаблон управления содержит средство для описания поведения элемента.

12. Машиночитаемый носитель по п.10, в котором шаблон управления определяет поведения, которые ассоциированы с элементом.

13. Машиночитаемый носитель по п.10, в котором элемент поддерживает множество шаблонов управления.

14. Машиночитаемый носитель по п.10, в котором утилита автоматизации манипулирует элементом через интерфейс, ассоциированный с шаблоном управления, причем интерфейс возвращается элементом в ответ на запрос о том, поддерживает ли элемент шаблон управления.

15. Машиночитаемый носитель по п.10, в котором информация элемента содержит воспринимаемый человеком текст, сохраненный во множестве свойств, причем воспринимаемый человеком текст ссылается на атрибут элемента.

16. Машиночитаемый носитель по п.15, в котором атрибут элемента содержит информацию об элементе, которая, будучи передана пользователю, информирует пользователя об элементе.

17. Машиночитаемый носитель, имеющий выполняемые компьютером компоненты для манипулирования элементом, содержащие:

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

прием запроса в приложении, включающем в себя элемент, причем запрос запрашивает шаблон управления, поддерживаемый элементом, из утилиты автоматизации;

в ответ на прием запроса, запрашивающего шаблон управления, идентификацию одного или более шаблонов управления, которые ассоциированы с элементом, причем каждый шаблон управления ассоциирован с конкретным поведением элемента; и

передачу шаблона управления, поддерживаемого элементом, в утилиту автоматизации;

при этом утилита автоматизации программно манипулирует элементом посредством интерфейса, который ассоциирован с одним из шаблонов управления.

18. Машиночитаемый носитель по п.17, в котором свойства включают в себя строки воспринимаемого человеком текста.

19. Машиночитаемый носитель по п.18, в котором строки воспринимаемого человеком текста дополнительно содержат информацию, которая описывает элемент, так что передача этой информации экранным устройством считывания информирует с возможностью прослушивания пользователя об элементе.

20. Машиночитаемый носитель по п.17, в котором каждый шаблон управления описывает поведение, которое поддерживается элементом.

21. Машиночитаемый носитель по п.17, в котором шаблон управления содержит средство для описания основной функциональности элемента.



 

Похожие патенты:

Изобретение относится к системам и способам обеспечения доступа пользователя к информации. .

Изобретение относится к компонентам и подсистемам вычислительной системы для поддержания и обеспечения представлений графического пользовательского интерфейса.

Изобретение относится к области цифровых информационных систем, в которых текстовая, изобразительная и видео- или аудиоинформация отображается как элементы индикации в согласованном друг с другом виде и согласованным образом.

Изобретение относится к средствам отображения цифровой информации. .

Изобретение относится к ручным устройствам с дисплеем и предназначено для просмотра информации. .

Изобретение относится к портативным устройствам, а именно миниатюрным или карманным компьютерам, мобильным телефонам, коммуникатерам и т.п. .

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

Изобретение относится к области вычислительной техники. .

Изобретение относится к средствам трехмерного представления коллекции данных на основе атрибута

Изобретение относится к компьютерным системам, обеспечивающим расширенное управление представления результатов поиска пользователю в соответствии с компонентом отображения с управляемым параметром

Изобретение относится к компьютерным системам, в частности к улучшенному способу и системе для отображения информации для вычислительного устройства

Изобретение относится к интерфейсам для ввода и вывода цифрового видеоизображения и звука, например HDMI (мультимедийный интерфейс высокой четкости), DVI (цифровой видеоинтерфейс)

Изобретение относится к способам и средствам мониторинга сетей сложной топологии и объектов, входящих в их состав, и может быть использовано для индикации, контроля состояния и управления параметрами разветвленных сетей сложной топологии различного назначения

Изобретение относится к вычислительной технике

Изобретение относится к системе и способу для передачи информации между компьютерной системой и вспомогательным устройством

Изобретение относится к области отображения графического интерфейса на дисплеях электронных устройств, а именно к настройке графического интерфейса пользователя для, по меньшей мере, двух дисплеев
Наверх