Специальные возможности для приложений среды выполнения Windows на C#, VB, C++ и XAML

Applies to Windows and Windows Phone

В этом разделе представлены некоторые понятия и технологии из области сценариев специальных возможностей в приложениях среды выполнения Windows, в коде которых используются расширения компонентов на C#, Visual Basic или Visual C++ (C++/CX) и определение пользовательского интерфейса на XAML.

Ищете версию этого раздела для JavaScript? См. раздел Специальные возможности для приложений среды выполнения Windows на JavaScript и HTML.

Схема: каким образом эта тема связана с другими? См.:

Предварительные требования

Предполагается, что вы умеете создавать простые приложения среды выполнения Windows. Инструкции по созданию первого приложения среды выполнения Windows на C++, C# или Visual Basic см. в разделе о создании вашего первого приложения среды выполнения Windows на C# или Visual Basic или в разделе о создании вашего первого приложения среды выполнения Windows на C++.

Специальные возможности и ваше приложение

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

  • Applies to Windows Phone

Объявление о специальных возможностях приложения относится только к Магазину Windows.

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

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

Элементы управления среды выполнения Windows для XAML обеспечивают поддержку встроенной клавиатуры и средств чтения с экрана, которые основаны на функциях платформы специальных возможностей со встроенной поддержкой приложений среды выполнения Windows, HTML и других технологий пользовательских интерфейсов. Встроенная поддержка обеспечивает базовый уровень специальных возможностей, которые вы можете легко настроить, установив нужные свойства. Если вы создаете собственные компоненты и элементы управления XAML, можно также добавить аналогичную поддержку для этих элементов управления с помощью концепции однорангового элемента автоматизации.

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

Модель автоматизации пользовательского интерфейса

Поддержка специальных возможностей в приложениях среды выполнения Windows на C++, C# или Visual Basic базируется главным образом на встроенной поддержке структуры модели автоматизации пользовательского интерфейса Microsoft Windows. Эта поддержка обеспечивается базовыми классами и встроенным поведением реализации класса для типов элементов управления, а также представлением интерфейса в среде выполнения Windows для API поставщика автоматизации пользовательского интерфейса. Каждый класс элементов управления использует концепции модели автоматизации пользовательского интерфейса "Одноранговые элементы автоматизации" и "Шаблоны автоматизации", чтобы сообщить о роли и содержимом элемента управления клиентам автоматизации пользовательского интерфейса. Модель автоматизации пользовательского интерфейса воспринимает приложение среды выполнения Windows как окно верхнего уровня, а благодаря структуре модели все содержимое окна приложения, имеющее отношение к специальным возможностям, доступно клиенту автоматизации пользовательского интерфейса. Дополнительную информацию о модели автоматизации пользовательского интерфейса см. в общей информации о модели автоматизации пользовательского интерфейса.

специальные возможности

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

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

  • Экранная клавиатура, которая позволяет использовать для ввода текста указатель вместо клавиатуры.
  • Программное обеспечение для распознавания голоса, которое преобразует произнесенные слова в печатный текст.
  • Программы для чтения с экрана, которые преобразуют текст в речь или другие формы коммуникации, такие как шрифт Брайля.
  • Средство чтения с экрана "Экранный диктор" — специальный компонент Windows. Экранный диктор имеет режим сенсорного ввода, позволяющий выполнять задачи чтения с экрана путем обработки сенсорных жестов в случаях, когда клавиатура недоступна.
  • Программы или параметры, позволяющие регулировать параметры дисплея или его областей, например высококонтрастные темы, параметры разрешения экрана (количество точек на дюйм) или экранная лупа.

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

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

Поддержка чтения с экрана и основные сведения о специальных возможностях

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

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

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

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

Поддержка клавиатуры

Чтобы обеспечить хорошую поддержку клавиатуры, убедитесь, что с любой частью вашего приложения можно работать с помощью клавиатуры. Если ваше приложение в основном использует стандартные и не содержит пользовательские элементы управления, то большая часть работы уже сделана. Модель базового элемента управления среды выполнения Windows на XAML обеспечивает поддержку встроенной клавиатуры, включая навигацию по вкладкам, ввод текста и поддержку элементов управления. Элементы, которые являются контейнерами макета (например, панели), создают используемую по умолчанию последовательность перехода по вкладкам на основе последовательности макета. Эта последовательность перехода часто применяется для представления пользовательского интерфейса средствами специальных возможностей. Если данные в приложении отображаются с помощью элементов управления ListBox и GridView, то навигация при помощи клавиш со стрелками поддерживается по умолчанию. Если вы используете элемент управления Button, для активации кнопки можно нажимать клавиши ПРОБЕЛ или ВВОД.

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

Мультимедиа и подписи

В приложении среды выполнения Windows на C++, C# или Visual Basic аудиовизуальные элементы обычно отображаются с помощью объекта MediaElement. Вы можете использовать API MediaElement для управления воспроизведением мультимедиа. Для специальных возможностей можно при необходимости добавить элементы управления для воспроизведения, паузы и остановки файла мультимедиа. Мультимедийное содержимое иногда включает в себя дополнительные компоненты для специальных возможностей — например, субтитры или альтернативные звуковые дорожки со словесными описаниями. Дополнительную информацию о принципах работы с мультимедиа, MediaElement и специальными возможностями см. в разделе Поддержка специальных возможностей для мультимедийного содержимого.

Текст для специальных возможностей

Для специальных возможностей важны три основных свойства текста:

  • Инструменты должны определять способ прочтения текста — при переходах по клавише TAB или только при полном открытии документа. Вы можете управлять этим определением, указав соответствующий элемент для отображения текста или настроив свойства этих текстовых элементов. Каждый текстовый элемент в приложениях среды выполнения Windows имеет определенное назначение, которое обычно связано с соответствующей ролью модели автоматизации пользовательского интерфейса. Использование неподходящего элемента может привести к отправке неверного уведомления о роли в модель автоматизации пользовательского интерфейса и создать сложности для пользователей с ограниченными возможностями.
  • Многие пользователи с ослабленным зрением способны читать только тот текст, который резко выделяется по сравнению с фоном. Это не всегда очевидно для разработчиков приложений. Например, люди, плохо различающие цвета, не смогут прочитать текст, отображающийся слишком бледным цветом. Рекомендации по специальным возможностям, которые первоначально были созданы для содержимого веб-страниц, определяют стандарты для контраста, которые подходят и для приложений. Дополнительную информацию см. в разделе Требования к специальным возможностям для чтения текста.
  • Некоторым пользователям трудно читать слишком мелкий текст. Эту проблему можно решить простым увеличением размера шрифта в элементах пользовательского интерфейса. Однако такой вариант затруднителен для приложений, содержащих много текста, или таких приложений, где текст перемежается с другими визуальными элементами. В этом случае убедитесь, что приложение правильно взаимодействует с системными компонентами, которые можно масштабировать на экране вместе с содержащимся в приложениях текстом. (Некоторые пользователи изменяют значения количества точек на дюйм, прибегая к нему как к параметру специальных возможностей. Этот параметр доступен в разделе Увеличение изображений на экране на странице Специальные возможности, которая перенаправляет вас к пользовательскому интерфейсу Панель управления, в раздел Оформление и персонализация / Экран.)

Поддержка тем с высокой контрастностью

Элементы управления пользовательского интерфейса, которые доступны для приложений среды выполнения Windows на C++, C# или Visual Basic, используют визуальное представление, определенное как элемент словаря ресурсов XAML для тем. Одна или несколько из этих тем специально используются, когда система настроена на высокую контрастность. Когда пользователь переключается на высокую контрастность, динамически просматривая соответствующую тему в словаре ресурсов, все элементы управления пользовательского интерфейса также будут использовать соответствующую тему высокой контрастности. Чтобы наверняка не отключить эти темы, даже случайно, укажите стиль напрямую или воспользовавшись другим вариантом оформления, в котором высококонтрастные темы не смогут загрузиться или перекрыть ваши настройки оформления. Дополнительную информацию см. в разделе Поддержка тем с высокой контрастностью.

Проектирование альтернативного интерфейса

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

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

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


<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>


private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Проверка и публикация

Дополнительную информацию об объявлении специальных возможностей и публикации приложения см. в разделе Объявление о специальных возможностях вашего приложения в Магазине Windows.

  • Applies to Windows Phone

Объявление о специальных возможностях приложения относится только к Магазину Windows.

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

При создании пользовательского элемента управления мы рекомендуем вам также реализовать или расширить один или несколько подклассов AutomationPeer для обеспечения поддержки специальных возможностей. В некоторых случаях при использовании того же однорангового класса, который используется базовым классом элементов управления, поддержка модели автоматизации для вашего производного класса будет адекватной на базовом уровне. Однако это следует проверить. Чтобы равноправный элемент мог правильно сообщить имя нового класса элемента управления, реализация однорангового элемента остается рекомендованным способом. Реализация пользовательского элемента автоматизации осуществляется в несколько шагов. Дополнительные сведения см. в разделе о пользовательских одноранговых элементах автоматизации.

Поддержка специальных возможностей в приложениях, поддерживающих межпрограммное взаимодействие XAML и Microsoft DirectX

Содержимое DirectX, размещенное в пользовательском интерфейсе XAML (с помощью SwapChainPanel или SurfaceImageSource), по умолчанию недоступно. Образец межпрограммного взаимодействия XAML SwapChainPanel DirectX показывает, как создать одноранговые элементы автоматизации пользовательского интерфейса для содержимого DirectX. Этот метод обеспечивает доступ к такому содержимому для модели автоматизации пользовательского интерфейса.

Связанные разделы

Windows.UI.Xaml.Automation
Разработка с учетом специальных возможностей
Специальные возможности для приложений среды выполнения Windows на JavaScript и HTML
Пример реализации специальных возможностей на языке XAML

 

 

Показ:
© 2015 Microsoft