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

Если вы хотите создать доступное приложение Windows, ознакомьтесь со списком методов, которые следует избегать:If you want to create an accessible Windows app, see this list of practices to avoid:

  • Не создавайте собственные элементы пользовательского интерфейса, если можно использовать стандартные элементы управления Windows или элементы управления, для которых уже реализована поддержка модели автоматизации пользовательского интерфейса Майкрософт.Avoid building custom UI elements if you can use the default Windows controls or controls that have already implemented Microsoft UI Automation support. Стандартные элементы управления Windows по умолчанию поддерживают специальные возможности. При их использовании обычно требуется добавить лишь нескольких атрибутов специальных возможностей, зависящих от конкретного приложения.Standard Windows controls are accessible by default and usually require adding only a few accessibility attributes that are app-specific. И напротив, реализация поддержки AutomationPeer для настоящего пользовательского элемента управления несколько сложнее (см. раздел Настраиваемые одноранговые элементы автоматизации).In contrast, implementing the AutomationPeer support for a true custom control is somewhat more involved (see Custom automation peers).

  • Не включайте статический текст или другие неинтерактивные элементы в последовательность табуляции (например, установив свойство TabIndex для неинтерактивного элемента).Don't put static text or other non-interactive elements into the tab order (for example, by setting the TabIndex property for an element that is not interactive). Наличие неинтерактивных элементов в последовательности табуляции противоречит правилам работы специальных возможностей клавиатуры, так как в результате снижается эффективность навигации с помощью клавиатуры.If non-interactive elements are in the tab order, that is against keyboard accessibility guidelines because it decreases efficiency of keyboard navigation for users. Во многих специальных возможностях применяются последовательность перехода и способность фокусировать элементы в составе логики представления интерфейса приложения пользователям, использующим специальные возможности.Many assistive technologies use tab order and the ability to focus an element as part of their logic for how to present an app's interface to the assistive technology user. Наличие элементов, содержащих только текст, в последовательности табуляции путает пользователей, привыкших к тому, что последовательность табуляции поддерживается лишь для интерактивных элементов (кнопок, флажков, полей текстового ввода, полей со списками, списков и т. д.).Text-only elements in the tab order can confuse users who expect only interactive elements in the tab order (buttons, check boxes, text input fields, combo boxes, lists, and so on).

  • Старайтесь не применять абсолютное размещение элементов пользовательского интерфейса (например, в элементе Canvas), так как порядок представления часто отличается от порядка объявления дочерних элементов (который фактически является логическим).Avoid using absolute positioning of UI elements (such as in a Canvas element) because the presentation order often differs from the child element declaration order (which is the de facto logical order). По возможности располагайте элементы пользовательского интерфейса в порядке документа или в логическом порядке, чтобы средства чтения экрана считывали их в правильном порядке.Whenever possible, arrange UI elements in document or logical order to ensure that screen readers can read those elements in the correct order. Если визуальный порядок элементов пользовательского интерфейса отличается от порядка документа или логического порядка, укажите правильный порядок считывания с помощью явных значений индекса перехода по клавише TAB (задайте TabIndex).If the visible order of UI elements can diverge from the document or logical order, use explicit tab index values (set TabIndex) to define the correct reading order.

  • Не используйте цвет в качестве единственного способа передачи информации.Don’t use color as the only way to convey information. Пользователи, которые не различают цвета, не смогут получить информацию, которая передана только цветом (пример: цветные индикаторы состояния).Users who are color blind cannot receive information that is conveyed only through color, such as in a color status indicator. Включите другие визуальные подсказки, предпочтительно текст, чтобы обеспечить всесторонний доступ к информации.Include other visual cues, preferably text, to ensure that information is accessible.

  • Не обновляйте автоматически весь холст приложения, если только это не является действительно необходимым для работы приложения.Don’t automatically refresh an entire app canvas unless it is really necessary for app functionality. Если вам необходимо автоматически обновлять содержимое страницы, обновляйте только определенные области страницы.If you need to automatically refresh page content, update only certain areas of the page. При использовании специальных возможностей обычно нужно предполагать, что обновленный холст приложения — это совершенно новая структура, даже если фактические изменения были минимальными.Assistive technologies generally must assume that a refreshed app canvas is a totally new structure, even if the effective changes were minimal. Для пользователя специальных возможностей это означает, что теперь любое представление документа или описание обновленного приложения должно быть создано заново и снова представлено пользователю.The cost of this to the assistive technology user is that any document view or description of the refreshed app now must be recreated and presented to the user again.

    Преднамеренное перемещение по страницам, инициированное пользователем, является достаточным основанием для обновления структуры приложения.A deliberate page navigation that is initiated by the user is a legitimate case for refreshing the app's structure. Тем не менее убедитесь, что элемент пользовательского интерфейса, который инициирует навигацию, правильно определен или назван, а также указывает на то, что его вызов приведет к изменению контекста и перезагрузке страницы.But make sure that the UI item that initiates the navigation is correctly identified or named to give some indication that invoking it will result in a context change and page reload.

    Примечание

    При обновлении содержимого области рекомендуется задать для свойства специальных возможностей AccessibilityProperties.LiveSetting соответствующего элемента нестандартное значение: Polite или Assertive.If you do refresh content within a region, consider setting the AccessibilityProperties.LiveSetting accessibility property on that element to one of the non-default settings Polite or Assertive. Некоторые вспомогательные технологии позволяют связать этот параметр с концепцией динамических областей, сформулированной в рамках стандарта W3C для доступных полнофункциональных интернет-приложений (ARIA), и таким образом информировать пользователя об изменении области содержимого.Some assistive technologies can map this setting to the Accessible Rich Internet Applications (ARIA) concept of live regions and can thus inform the user that a region of content has changed.

  • Не используйте элементы пользовательского интерфейса, которые мигают чаще трех раз в секунду.Don’t use UI elements that flash more than three times per second. У некоторых людей мигающие элементы могут вызвать эпилептический припадок.Flashing elements can cause some people to have seizures. Лучше всего избегать использования мигающих элементов пользовательского интерфейса.It is best to avoid using UI elements that flash.

  • Избегайте автоматического изменения контекста пользователя или активации функций.Don’t change user context or activate functionality automatically. Изменение контекста или активация должны происходить только в случае, когда пользователь непосредственно задействует элемент пользовательского интерфейса с фокусом.Context or activation changes should occur only when the user takes a direct action on a UI element that has focus. Изменения контекста пользователя включают изменение фокуса, отображение нового содержимого и перемещение на другую страницу.Changes in user context include changing focus, displaying new content, and navigating to a different page. Изменение контекста без участия пользователя может дезориентировать людей с ограниченными возможностями.Making context changes without involving the user can be disorienting for users who have disabilities. Исключениями из этого требования являются: отображение подменю, подтверждение форм, отображение текста справки в другом элементе управления и изменение контекста в ответ на асинхронное событие.The exceptions to this requirement include displaying submenus, validating forms, displaying help text in another control, and changing context in response to an asynchronous event.