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

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

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

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

  • Старайтесь не применять абсолютное размещение элементов пользовательского интерфейса (например, в элементе Canvas), так как порядок представления часто отличается от порядка объявления дочерних элементов (который фактически является логическим). По возможности располагайте элементы пользовательского интерфейса в порядке документа или в логическом порядке, чтобы средства чтения экрана считывали их в правильном порядке. Если визуальный порядок элементов пользовательского интерфейса отличается от порядка документа или логического порядка, укажите правильный порядок считывания с помощью явных значений индекса перехода по клавише TAB (задайте TabIndex).

  • Не используйте цвет в качестве единственного способа передачи информации. Пользователи, которые не различают цвета, не смогут получить информацию, которая передана только цветом (пример: цветные индикаторы состояния). Включите другие визуальные подсказки, предпочтительно текст, чтобы обеспечить всесторонний доступ к информации.

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

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

    Примечание

    При обновлении содержимого области рекомендуется задать для свойства специальных возможностей AccessibilityProperties.LiveSetting соответствующего элемента нестандартное значение: Polite или Assertive. Некоторые вспомогательные технологии позволяют связать этот параметр с концепцией динамических областей, сформулированной в рамках стандарта W3C для доступных полнофункциональных интернет-приложений (ARIA), и таким образом информировать пользователя об изменении области содержимого.

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

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