From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../aria/aria_live_regions/index.html | 111 ++++++++++++++ .../accessibility/aria/aria_techniques/index.html | 169 +++++++++++++++++++++ .../index.html | 87 +++++++++++ .../using_the_aria-label_attribute/index.html | 68 +++++++++ .../using_the_aria-labelledby_attribute/index.html | 140 +++++++++++++++++ files/ru/web/accessibility/aria/index.html | 123 +++++++++++++++ .../aria/roles/checkbox_role/index.html | 149 ++++++++++++++++++ files/ru/web/accessibility/aria/roles/index.html | 80 ++++++++++ 8 files changed, 927 insertions(+) create mode 100644 files/ru/web/accessibility/aria/aria_live_regions/index.html create mode 100644 files/ru/web/accessibility/aria/aria_techniques/index.html create mode 100644 files/ru/web/accessibility/aria/aria_techniques/using_the_aria-describedby_attribute/index.html create mode 100644 files/ru/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html create mode 100644 files/ru/web/accessibility/aria/aria_techniques/using_the_aria-labelledby_attribute/index.html create mode 100644 files/ru/web/accessibility/aria/index.html create mode 100644 files/ru/web/accessibility/aria/roles/checkbox_role/index.html create mode 100644 files/ru/web/accessibility/aria/roles/index.html (limited to 'files/ru/web/accessibility/aria') diff --git a/files/ru/web/accessibility/aria/aria_live_regions/index.html b/files/ru/web/accessibility/aria/aria_live_regions/index.html new file mode 100644 index 0000000000..6f22cb75a6 --- /dev/null +++ b/files/ru/web/accessibility/aria/aria_live_regions/index.html @@ -0,0 +1,111 @@ +--- +title: ARIA Live Regions +slug: Web/Accessibility/ARIA/ARIA_Live_Regions +translation_of: Web/Accessibility/ARIA/ARIA_Live_Regions +--- +

Introduction

+ +

In the past, a web page change could only be spoken in entirety which often annoyed a user, or by speaking very little to nothing, making some or all information inaccessible. Until recently, screen readers have not been able to improve this because no standardized markup existed to alert the screen reader to a change. ARIA live regions fill this gap and provide suggestions to screen readers regarding whether and how to interrupt users with a change.

+ +

Simple Live Regions

+ +

Dynamic content which updates without a page reload is generally either a region or a widget. Simple content changes which are not interactive should be marked as live regions. Below is a list of each related ARIA live region property with a description.

+ +
    +
  1. aria-live: The aria-live=POLITENESS_SETTING is used to set the priority with which screen reader should treat updates to live regions - the possible settings are: off/polite/assertive. The default setting is 'off'. This attribute is by far the most important.
  2. +
  3. +

    aria-controls: The aria-controls=[IDLIST] is used to associate a control with the regions that it controls. Regions are identified just like an ID in a div, and multiple regions can be associated with a control using a space, e.g. aria-controls="myRegionID1 myRegionsID2".

    + +
    Not known if the aria-controls aspect of live regions is implemented in current ATs, or which. Needs research.
    +
  4. +
+ +

Normally, only aria-live="polite" is used. Any region which receives updates that are important for the user to receive, but not so rapid as to be annoying, should receive this attribute. The screen reader will speak changes whenever the user is idle.

+ +

For regions which are not important, or would be annoying because of rapid updates or other reasons, silence them with aria-live="off".

+ +

Simple Use Case: combobox updates useful on-screen information

+ +

A website specializing in providing information about birds provides a drop down box. When a bird is selected from the drop down, a region on the page is updated with details about the type of bird selected.

+ +

<select size="1" id="bird-selector" aria-controls="bird-info"><option> .... </select>

+ +

<div role="region" id="bird-info" aria-live="polite">

+ +

As the user selects a new bird, the info is spoken. Because "polite" is chosen, the screen reader will wait until the user pauses. Thus, moving down the list will not speak every bird the user visits, only the one finally chosen.

+ +

Preferring Specialized Live Region Roles

+ +

In the following well-known predefined cases it is better to use a specific provided "live region role":

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RoleDescriptionCompatibility Notes
logChat, error, game or other type of logTo maximize compatibility, add a redundant aria-live="polite" when using this role.
statusA status bar or area of the screen that provides an updated status of some kind. Screen reader users have a special command to read the current status.To maximize compatibility, add a redundant aria-live="polite" when using this role.
alertError or warning message that flashes on the screen. Alerts are particularly important for client side validation notices to users. (TBD: link to ARIA form tutorial with aria info)To maximize compatibility, some people recommend adding a redundant aria-live="assertive" when using this role. However, adding both aria-live and role=alert causes double speaking issues in VoiceOver on iOS.
progressbarA hybrid between a widget and a live region. Use this with aria-valuemin, aria-valuenow and aria-valuemax. (TBD: add more info here). 
marqueefor text which scrolls, such as a stock ticker. 
timeror any kind of timer or clock, such as a countdown timer or stopwatch readout. 
+ +

Advanced Live Regions

+ +

(TBD: what is supported where?)

+ +
    +
  1. aria-atomic: The aria-atomic=BOOLEAN is used to set whether or not the screen reader should always present the live region as a whole, even if only part of the region changes - the possible settings are false/true where false is the default.
  2. +
  3. aria-relevant: The aria-relevant=[LIST_OF_CHANGES] is used to set what types of changes are relevant to a live region - the possible settings are additions/removals/text/all where "additions text" is the default.
  4. +
  5. aria-labelledby: The aria-labelledby=[IDLIST] is used to associate a region with its labels, similar to aria-controls but instead associating labels to the region and again label identifiers are separated with a space.
  6. +
  7. aria-describedby: The aria-describedby=[IDLIST] is used to associate a region with its descriptions, similar to aria-controls but instead associating descriptions to the region and description identifiers are separated with a space.
  8. +
+ +

Advanced Use Case: Roster

+ +

A chat site would like to display a list of users currently logged on. Display a list of users where a user's log-in and log-out status will be reflected dynamically (without a page reload).

+ +
<ul id="roster" aria-live="polite" aria-relevant="additions removals">
+	<!-- use JavaScript to add remove users here-->
+</ul>
+
+ +

Breakdown of ARIA live properties:

+ + + +

TBD: Realistic use case for aria-atomic="true"

diff --git a/files/ru/web/accessibility/aria/aria_techniques/index.html b/files/ru/web/accessibility/aria/aria_techniques/index.html new file mode 100644 index 0000000000..2e29856a5c --- /dev/null +++ b/files/ru/web/accessibility/aria/aria_techniques/index.html @@ -0,0 +1,169 @@ +--- +title: Использование ARIA +slug: Web/Accessibility/ARIA/ARIA_Techniques +tags: + - ARIA + - Accessibility + - NeedsTranslation + - TopicStub +translation_of: Web/Accessibility/ARIA/ARIA_Techniques +--- +

 

+ +

 Роли

+ +

 

+ +

Роли виджета

+ +
+ +
+ +

Композиционные роли

+ +

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

+ +
+ +
+ +

Document structure roles

+ +
+ +
+ +

Landmark roles

+ +
+ +
+ +

States and properties

+ +

 

+ +

Widget attributes

+ +
+ +
+ +

Live region attributes

+ +
+ +
+ +

Drag & drop attributes

+ +
+ +
+ +

Relationship attributes

+ +
+ +
diff --git a/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-describedby_attribute/index.html b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-describedby_attribute/index.html new file mode 100644 index 0000000000..c23c3725b4 --- /dev/null +++ b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-describedby_attribute/index.html @@ -0,0 +1,87 @@ +--- +title: Использование атрибута aria-describedby +slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute +tags: + - доступность +translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute +--- +

Описание

+ +

Атрибут aria-describedby используется для указания ID элементов, описывающих объект. Он используется для установления отношений между элементами управления или группами и текстом, описывающим их. Это очень похоже на aria-labelledby: лэйбл описывает сущность объекта, в то время как описание предоставляет дополнительную информацию, которая может понадобиться пользователю.

+ +

Атрибут aria-describedby используется не только для элементов форм; он, также, используется для связывания статического текста с элементами управления, группами элементов, панелями, областями, которые имеют заголовок, определениями, и др. В разделе {{ anch("Examples") }} ниже приведено больше информации о том как использовать атрибут в этих случаях.

+ +

Этот атрибут может использоваться с любым типичным элементом HTML-форм; он не ограничивается элементами, которым назначена  ARIA role .

+ +

Значение

+ +

разделенный пробелами список ID элементов

+ +

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

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

Примеры

+ +

Пример 1: Связвание приложения и описания

+ +

В примере ниже, вводный параграф описывает приложение календаря. aria-describedby используется для связывания параграфа с контейнером приложения.

+ +
<div role="application" aria-labelledby="calendar" aria-describedby="info">
+    <h1 id="calendar">Calendar</h1>
+    <p id="info">
+        This calendar shows the game schedule for the Boston Red Sox.
+    </p>
+    <div role="grid">
+        ...
+    </div>
+</div>
+
+ +

Пример 2: Кнопка закрытия

+ +

В примере ниже, ссылка, которая функционирует как кнопка закрытия диалога, описана в другом месте документа. Атрибут aria-describedby используется для связывания описания с ссылкой.

+ +
<button aria-label="Close" aria-describedby="descriptionClose"
+    onclick="myDialog.close()">X</button>
+
+...
+
+<div id="descriptionClose">Closing this window will discard any information entered and
+return you back to the main page</div>
+
+ +

Рабочие примеры:

+ + + +

Примечания

+ + + +

Использование ARIA ролей

+ +

все элементы базовой разметки

+ +

Связанные ARIA методы

+ + + +

Совместимость

+ +

TBD: добавить информацию о поддержке для общих UA и AT комбинаций продуктов

+ +

Дополнительные ресурсы

+ + diff --git a/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html new file mode 100644 index 0000000000..b76b9de8c8 --- /dev/null +++ b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html @@ -0,0 +1,68 @@ +--- +title: Использование атрибута aria-label +slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute +tags: + - ARIA + - HTML + - aria-label + - Клиент + - доступность +translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute +--- +

Атрибут  aria-label  создаёт текстовую метку текущего элемента в случае отсутствия видимого текста описания элемента. Если есть видимый текст, обозначающий элемент, используйте вместо этого aria-labelledby.

+ +

Этот атрибут может быть использован для любого стандартного HTML элемента; не ограничивается элементами с ARIA role.

+ +

Значение

+ +

строка

+ +

Возможные эффекты на клиентские приложения и вспомогательные технологии

+ +
+

Edit section

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

Примеры

+ +
+

Пример 1: Множественные лейблы

+ +

В примере ниже, кнопка стилизована под типичную кнопку "закрыть" с X посередине. Поскольку нет ничего обозначающего значение того, что кнопка закрывает диалог, то aria-label атрибут используется чтобы обеспечить метку для любой вспомогающей технологии.

+
+ +
<button aria-label="Close" onclick="myDialog.close()">X</button>
+
+ +

Рабочие примеры:

+ +

Заметки

+ + + +

Использование ARIA ролями

+ +

Все элементы базовой разметки

+ +

Связанные ARIA техники

+ + + +

Совместимость

+ +

Будет определено позднее: Добавить информацию о поддержке для общих комбинаций продуктов UA и AT

+ +

Дополнительные ресурсы

+ + diff --git a/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-labelledby_attribute/index.html b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-labelledby_attribute/index.html new file mode 100644 index 0000000000..8736fc801a --- /dev/null +++ b/files/ru/web/accessibility/aria/aria_techniques/using_the_aria-labelledby_attribute/index.html @@ -0,0 +1,140 @@ +--- +title: Использование атрибута aria-labelledby +slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute +translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute +--- +

Описание

+ +

Атрибут aria-labelledby содержит идентификаторы (атрибут id) меток для таких обьектов как элементы ввода (input), виджеты, группы. Атрибут создаёт связь между обьектами и их метками. Вспомогательные технологии, такие как средства чтения экрана, используют этот атрибут чтобы собирать все метки в каталог документа, из которого пользователь может перемещаться между ними. Без идентификатора (атрибута id) вспомогательные технологии не могут собрать данные обьекты в каталог.

+ +

aria-labelledby очень похож на aria-describedby: Метка (label) предоставляет основную информацию об обьекте, в то время как описание (description) даёт более полную/детальную информацию которая может понадобится пользователю.

+ +

В дополнение к элементам формы вы можете использовать атрибут aria-labelledby, чтобы связать статический текст с виджетами, группами элементов, панелями, областями, которые имеют заголовок, определения и другие типы объектов. Ниже, в разделе {{ anch("Примеры") }} приведенны примеры и информация как использовать атрибут в данном виде.

+ +

Чтобы повысить совместимость с клиетскими приложениями которые не поддерживают ARIA атрибуты, вы можете использовать aria-labelledby вместе элементом {{ HTMLElement("label") }} (используя for атрибут)

+ +

Этот атрибут может быть использован в любом типичном HTML элементе формы, он не ограничен элементами которые имеют атрибут ARIA role

+ +

Значение

+ +

Список идентификаторов (id) разделенных пробелом

+ +

Возможные эфекты в клиентских приложениях и вспомогательных технологиях

+ +

Когда клиенсткое приложение вычисляют доступное имя элемента который имеет и атрибут aria-labelledby, и атрибут aria-label, они отдадут приоритет aria-labelledby

+ +

Примеры

+ +

Example 1: Multiple Labels

+ +

In the example below, each input field is labelled by both its own individual label and by the label for the group:

+ +
<div id="billing">Billing</div>
+
+<div>
+    <div id="name">Name</div>
+    <input type="text" aria-labelledby="billing name"/>
+</div>
+<div>
+    <div id="address">Address</div>
+    <input type="text" aria-labelledby="billing address"/>
+</div>
+
+ +

Example 2: Associating Headings With Regions

+ +

In the example below, header elements are associated with the content they head. Note that the region being referenced is the region that contains the header.

+ +
<div role="main" aria-labelledby="foo">
+   <h1 id="foo">Wild fires spread across the San Diego Hills</h1>
+   Strong winds expand fires ignited by high temperatures ...
+</div>
+
+ +

Example 3: Radio Groups

+ +

In the example below, the container of a radiogroup is associated with its label using the aria-labelledby attribute:

+ +
<div id="radio_label">My radio label</div>
+<ul role="radiogroup" aria-labelledby="radio_label">
+    <li role="radio">Item #1</li>
+    <li role="radio">Item #2</li>
+    <li role="radio">Item #3</li>
+</ul>
+
+ +

Example 4: Dialog Label

+ +

In the example below, the header element that labels the dialog is referred to by the aria-labelledby attribute:

+ +
<div role="dialog" aria-labelledby="dialogheader">
+    <h2 id="dialogheader">Choose a File</h2>
+    ... Dialog contents
+</div>
+
+ +

Example 5: Inline Definition

+ +

In the example below, the definition of a term that is described in the natural flow of the narrative is associated with the term itself using the aria-labelledby attribute:

+ +
<p>The doctor explained it had been a <dfn id="placebo">placebo</dfn>, or <span role="definition" aria-labelledby="placebo">
+an inert preparation prescribed more for the mental relief of the patient than for its actual effect on a disorder.</span>
+</p>
+
+ +

Example 6: Definition Lists

+ +

In the example below, the definitions in a formal definition list are associated with the terms they define using the aria-labelledby attribute:

+ +
<dl>
+    <dt id="anathema">anathema</dt>
+    <dd role="definition" aria-labelledby="anathema">a ban or curse solemnly pronounced by ecclesiastical authority
+                                                     and accompanied by excommunication</dd>
+    <dd role="definition" aria-labelledby="anathema">a vigorous denunciation : cursor</dd>
+
+    <dt id="homily">homily</dt>
+    <dd role="definition" aria-labelledby="homily">a usually short sermon</dd>
+    <dd role="definition" aria-labelledby="homily">a lecture or discourse on or of a moral theme</dd>
+</dl>
+
+ +

Example 7: Menus

+ +

In the example below, a popup menu is associated with its label using the aria-labelledby attribute:

+ +
<div role="menubar">
+    <div role="menuitem" aria-haspopup="true" id="fileMenu">File</div>
+    <div role="menu" aria-labelledby="fileMenu">
+        <div role="menuitem">Open</div>
+        <div role="menuitem">Save</div>
+        <div role="menuitem">Save as ...</div>
+        ...
+    </div>
+    ...
+</div>
+
+ +

Notes 

+ +

The most common accessibility API mapping for a label is the accessible name property

+ +

Used by ARIA roles

+ +

All elements of the base markup

+ + + + + +

Compatibility

+ +

TBD: Add support information for common UA and AT product combinations

+ +

Additional resources

+ + diff --git a/files/ru/web/accessibility/aria/index.html b/files/ru/web/accessibility/aria/index.html new file mode 100644 index 0000000000..b2dc0f6ec3 --- /dev/null +++ b/files/ru/web/accessibility/aria/index.html @@ -0,0 +1,123 @@ +--- +title: ARIA +slug: Web/Accessibility/ARIA +tags: + - ARIA + - Web + - доступность +translation_of: Web/Accessibility/ARIA +--- +

Accessible Rich Internet Applications (ARIA) определяет способ сделать веб контент и веб приложения (особенно те, которые разработаны с помощью Ajax и JavaScript) более доступными для людей с ограниченными возможностями. Например, ARIA делает доступным навигационные маркеры, JavaScript виджеты, подсказки на форме, сообщения об ошибках, автоматические обновления и многое другое.

+ +

ARIA - это набор специальных атрибутов, которые могут быть добавлены в любую разметку,  но особенно подходят для HTML. Атрибут role определяет тип объекта (такие как статья, оповещение или ползунок). Дополнительные ARIA атрибуты предоставляют другие полезные возможности, такие как описания для форм или текущее значение индикатора выполнения.

+ +

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

+ +
+

Note: Пожалуйста, примите участие в написании и/или переводе статей чтобы сделать ARIA понятнее и доступнее для тех, кто только начинает изучать материал! Не хватает на это времени? Тогда отправьте свои предложения в список рассылки Mozilla по теме accessibility, или на IRC каналс тэгом #accessibility.

+
+ +
+
+

Начало работы с ARIA

+ +
+
Введение в ARIA
+
Быстрое введение в превращение динамического контента в доступный с помощью ARIA. Смотрите также классическую статью ARIA intro by Gez Lemon, from 2008.
+
Web Applications and ARIA FAQ
+
Ответы на часто задаваемые вопросы о том как и почему нужно использовать ARIA в разработке интерфейсов веб-приложений.
+
Записи использования экранных читалок с ARIA.
+
На этих видео можно увидеть реальные и учебные примеры того ARIA улучшает доступность.
+
Использование ARIA в HTML
+
Практическое руководство для разработчиков. Содержит рекомендации по использованию ARIA-атрибутов при разметке.
+
+ +

Простое улучшение ARIA

+ +
+
Улучшение навигации по странице с помощью ARIA Landmarks
+
Хорошее введение в использование ARIA landmarks для улучшения навигации для пользователей с экранными читалками. Стоит также заглянуть в заметки по поддержке ARIA landmarks читалками и примеры использования на реальных сайтах (опубликовано в Июле 2011).
+
Улучшение доступности форм
+
ARIA используется не только для обозначения динамического контента! Узнайте, как улучшить доступность форм HTML используя дополнительные ARIA-атрибуты.
+
Live regions (в процессе написания)
+
Live regions подсказывают экранным читалкам как правильно обрабатывать изменения контента на странице.
+
Использование ARIA Live Regions для оповещения об изменении контента страницы
+
Краткая сводка об использовании live regions от создателей JAWS screen reader software. Live regions также поддерживаются NVDA в Firefox и VoiceOver в Safari.
+
+ +

ARIA для виджетов на JavaScript.

+ +
+
Навигация с помощью клавиатуры и фокус в виджетах на JavaScript
+
Первый шаг в создании доступных JavaScript виджетов, позволяющих производить навигацию с помощью клавиатуры. Статья описывает последовательные шаги по достижению цели. Еще один хороший ресурс - статья Yahoo! об управлении фокусом.
+
Style Guide for Keyboard Navigation
+
В этом руководстве описываются способы управления самыми распространенными виджетами с клавиатуры.
+
+ +

Дополнительные ресурсы по ARIA

+ +
+
Виджеты. Техники, руководства, примеры.
+
Нужен слайдер, меню или другой виджет? здесь вы можете найти все, что нужно
+
JavaScript UI библиотеки со встроенной поддержкой ARIA.
+
Если вы начинаете новый проект, то вам стоит обратить внимание на UI библиотеки, имеющие встроенную поддержку ARIA. Внимание: статья 2009 года — то, что она описывает, стоит вынести в отдельную статью на MDN, которая будет поддерживаться в актуальном состоянии.
+
+
+ +
+

Список рассылки.

+ +
+
Открытая Google Group, посвященная ARIA
+
Здесь можно задать вопрос об ARIA, а также предложить улучшение существующей документации, которая находится там же.
+
+ +

Блоги

+ +

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

+ +

Paciello Group

+ +

Accessible Culture

+ +

Обнаружение багов.

+ +

Сообщайте об ошибках ARIA в браузерах, экранных читалках и библиотеках JavaScript.

+ +

Примеры

+ +
+
ARIA. Библиотека примеров.
+
Набор примеров по которым можно многому научиться.
+
Различные демки библиотек с доступными JS виджетами.
+
jQuery, YUI
+
Yahoo! Mail
+
Детище Yahoo! - Yahoo! Mail, веб-приложение, выглядящее практически как нативное и вполне доступное. После обзора Yahoo! Mail с использованием экранной читалки Marco Zehe сказал: "Хорошая работа, не сбавляйте обороты!".
+
Yahoo! Search
+
Yahoo! проделали невероятную работу по продвижению ARIA в своем поисковике, используя все возможности и делясь своим опытом. Yahoo! Search использует одновременно ARIA landmarks, live regions, и widgets.
+
+ +

Стандартизация.

+ +
+
WAI-ARIA Activities Overview at W3C
+
Authoritative Overview of WAI-ARIA Standardization efforts by the Web Accessibility Initiative (WAI)
+
WAI-ARIA Specification
+
The W3C specification itself, useful as a reference. Note that, at this stage, it is important to test compatibility, as implementations are still inconsistent.
+
WAI-ARIA Authoring Practices
+
+

Like the W3C WAI-ARIA specification, the official best practices represents a future ideal — a day when authors can rely on consistent ARIA support across browsers and screen readers. The W3C documents provide an in-depth view of ARIA.

+ +

For now, web developers implementing ARIA should maximize compatibility. Use best practices docs and examples based on current implementations.

+
+
Open AJAX Accessibility Task Force
+
The Open AJAX effort centers around developing tools, sample files, and automated tests for ARIA.
+
Under Construction: WCAG 2.0 ARIA Techniques
+
The community needs a complete set of WCAG techniques for WAI-ARIA + HTML, so that organizations can be comfortable claiming their ARIA-enabled content is WCAG compliant. This is important when regulations or policies are based on WCAG.
+
+
+
+ + + +

Accessibility, AJAX, JavaScript

diff --git a/files/ru/web/accessibility/aria/roles/checkbox_role/index.html b/files/ru/web/accessibility/aria/roles/checkbox_role/index.html new file mode 100644 index 0000000000..b9eb71997d --- /dev/null +++ b/files/ru/web/accessibility/aria/roles/checkbox_role/index.html @@ -0,0 +1,149 @@ +--- +title: 'ARIA: checkbox role' +slug: Web/Accessibility/ARIA/Roles/checkbox_role +translation_of: Web/Accessibility/ARIA/Roles/checkbox_role +--- +

\{{ariaref}}

+ +

checkbox role используется для переключаемых интерактивных элементов управления. Элементы, содержащие role="checkbox" также должны включать aria-checked атрибут, чтобы продемонстрировать состояние чекбокса ассистивным технологиям.

+ +
<span role="checkbox" aria-checked="false" tabindex="0" aria-labelledby="chk1-label">
+</span> <label id="chk1-label">Remember my preferences</label>
+ +

Первое правило ARIA -  если у нативного HTML элемента или атрибута присутствует небходимая семантика или поведение, следует использовать его, а не использовать другой элемент не по назначению, добавляя ARIA. Вместо этого лучше использовать HTML checkbox  <input type="checkbox">, который изначально предоставляет необходимый функционал:

+ +
<input type="checkbox" id="chk1-label">
+<label for="chk1-label">Запомнить мои предпочтения</label>
+ +

Описание

+ +

Нативный HTML checkbox  элемент управления может находиться только в двух состояниях отмеченности - "отмечен" или "не отмечен", с неопределенным состоянием, устанавливаемым с помощью JavaScript. Аналогично элемент с role="checkbox"  может находиться в трех состояниях, обозначенных через aria-checked атрибут: true, false, or mixed.

+ +

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

+ +

Разработчику необходимо динамически изменять значение атрибута aria-checked при активации чекбокса.

+ +

Связанные WAI-ARIA Роли, Состояния, и Свойства

+ +
+
+ +
+
aria-checked
+
+

Значение aria-checked определяет состояние чекбокса. Этот атрибут может принимать одно из трех значений:

+ +

true
+     Чекбокс отмечен
+ false
+     Чекбокс не отмечен
+ mixed
+     Чекбокс частично отмечен, или в неопределенном состоянии

+
+
tabindex="0"
+
Делает элемент фокусируемым, так что пользователь ассистивных технологий может сразу перейти к нему и начать читать.
+
+ +

Взаимодействие с клавиатурой

+ + + + + + + + + + + + +
КлавишаФункция
ПробелАктивирует чекбокс
+ +

Необходимый JavaScript

+ +

Необходимый обработчики событий

+ +
+
onclick
+
Обрабатывает клики, которые изменяют состояние чекбокса, меняя значение атрибута aria-checked и внешний вид чекбокса так, чтобы он выглядел отмеченным млм неотмеченным для зрячего пользователя.
+
onKeyPress
+
Обрабатывает случай, когда пользователь нажимает Пробел для смены состояния чекбокса путем изменения значения атрибута aria-checked и внешнего вида чекбокса так, чтобы он выглядел отмеченным млм неотмеченным для зрячего пользователя.
+
+ +
+
+ +

Примеры

+ +

Пример ниже создает простой чекбокс, используя CSS и JavaScript для обработкиотмеченного и неотмеченного состояний элемента.

+ +

HTML

+ +
<span role="checkbox" id="chkPref" aria-checked="false" onclick="changeCheckbox()" onKeyPress="changeCheckbox()"
+   tabindex="0" aria-labelledby="chk1-label"></span>
+<label id="chk1-label" onclick="changeCheckbox()" onKeyPress="changeCheckbox()">Запомнить мои предпочтения</label>
+ +

CSS

+ +
[role="checkbox"] {
+    padding:5px;
+}
+
+[aria-checked="true"]::before {
+    content: "[x]";
+}
+
+[aria-checked="false"]::before {
+    content: "[ ]";
+}
+ +

JavaScript

+ +
function changeCheckbox(event) {
+    let item = document.getElementById('chkPref');
+    switch(item.getAttribute('aria-checked')) {
+        case "true":
+            item.setAttribute('aria-checked', "false");
+            break;
+        case "false":
+            item.setAttribute('aria-checked', "true");
+            break;
+    }
+}
+ +

{{EmbedLiveSample("Examples", 230, 250)}}

+ +

Проблемы доступности

+ +

Когда checkbox роль добавлена к элементу, юзер агент должен сделать следующее:

+ + + +

Продукты, использующие ассистивные технологии должны сделать следующее:

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

Лучшие практики

+ +

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

+ +

Смотрите также:

+ + + +

 

diff --git a/files/ru/web/accessibility/aria/roles/index.html b/files/ru/web/accessibility/aria/roles/index.html new file mode 100644 index 0000000000..b86909d5a7 --- /dev/null +++ b/files/ru/web/accessibility/aria/roles/index.html @@ -0,0 +1,80 @@ +--- +title: WAI-ARIA Roles +slug: Web/Accessibility/ARIA/Roles +tags: + - ARIA + - ARIA Roles + - Accessibility + - NeedsTranslation + - Reference + - Rôles + - TopicStub +translation_of: Web/Accessibility/ARIA/Roles +--- +

This page lists reference pages covering all the WAI-ARIA roles discussed on MDN. For a full list of roles, see Using ARIA: Roles, States, and Properties

+ +

{{SubpagesWithSummaries}}

+ + -- cgit v1.2.3-54-g00ecf