edubun
Русский

Экранные дикторы и первое правило ARIA

Первое правило ARIA велит обходиться без неё: если родной элемент HTML уже делает нужное, например button, используй его, а не добавляй роль к div.

С чем работает экранный диктор

Экранный диктор не читает пиксели. Браузер строит из HTML дерево доступности, упрощённую копию страницы, в которой у каждого важного элемента есть роль (кнопка, ссылка, заголовок, флажок), имя (текст, который его обозначает) и иногда состояние (отмечен, развёрнут, отключён). Экранный диктор читает это дерево вслух или передаёт его на брайлевский дисплей. Критерий успешного применения 4.1.2 «Название, роль, значение» уровня A в WCAG 2.2 требует, чтобы каждый элемент управления на странице сообщал эти три вещи.

Круглая кнопка с крестиком внутри. Зрячие догадываются, что она что-то закрывает; экранному диктору нужны роль и имя, чтобы сказать «Закрыть, кнопка».

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

Что добавляет ARIA

WAI-ARIA (Accessible Rich Internet Applications) является набором атрибутов, которые меняют то, что попадает в дерево доступности: role задаёт роль, атрибуты вроде aria-label задают имя, а такие, как aria-checked или aria-expanded, задают состояние. ARIA меняет только то, что объявляется. Она не делает элемент фокусируемым, не добавляет поведения клавиатуры и не меняет его вид. Руководство W3C ARIA Authoring Practices Guide выносит это в заголовок: «Лучше без ARIA, чем с плохой ARIA» (No ARIA is better than bad ARIA). Неправильная ARIA сообщает пользователю экранного диктора неправду о странице.

Правила использования ARIA

Документ W3C Using ARIA излагает короткие правила, которые цитируют повсюду (в феврале 2026 года он отмечен как прекращённый черновик, но сами правила не изменились). Правило 1: если можно использовать родной элемент или атрибут HTML, в котором нужный смысл и поведение уже встроены, используй его, а не переделывай другой элемент с помощью ARIA. Правило 2: не меняй родную семантику без крайней необходимости. Правило 3: каждым интерактивным элементом управления ARIA должно быть можно пользоваться с клавиатуры. Правило 4: не ставь role="presentation" или aria-hidden="true" на элемент, который может получить фокус, иначе некоторые пользователи попадут в «ничто».

А помогает ARIA там, где нужно закрыть пробелы, с которыми HTML не справляется. У кнопки, в которой только значок, нет текста, а значит, нет имени; aria-label="Close" даёт ей имя. Значок SVG рядом с видимым текстом служит украшением, и aria-hidden="true" на svg не пускает его в дерево. Это два атрибута, которые нужны большинству начинающих. Для целых виджетов, например вкладок или меню, следуй подходящему шаблону из Authoring Practices Guide, а не придумывай свой.

Дерево доступностиРоли, имена и состояния, которые браузер строит из HTML
WCAG 4.1.2Название, роль, значение (A)
Первое правило ARIAИспользуй родной элемент HTML, если он справляется
aria-labelДаёт элементу имя, например кнопке со значком
aria-hidden="true"Убирает украшения из дерева; никогда на фокусируемых элементах
WCAG 3.1.1Язык страницы (A): lang у html
Главное
  • Экранные дикторы читают дерево доступности: роль, имя, состояние.
  • ARIA меняет то, что объявляется, а не поведение или фокус.
  • Правило 1: сначала родной HTML. Лучше без ARIA, чем с плохой ARIA.
  • aria-label называет кнопки со значком; aria-hidden скрывает украшения.
  1. Что на самом деле читает экранный диктор?
    • Дерево доступности, построенное из HTML
    • Пиксели на экране
    • Файл CSS
    • Журнал сервера
  2. Какие три вещи, по 4.1.2, должен сообщать каждый элемент управления?
    • Название, роль, значение
    • Цвет, размер, положение
    • Title, alt, lang
    • Id, class, style
  3. Каково первое правило использования ARIA?
    • Использовать родной элемент HTML, если он уже справляется
    • Добавлять role каждому элементу
    • Всегда использовать aria-label
    • Прятать значки от всех
  4. Ты добавил role="button" к span. Что тебе ещё придётся добавить самому?
    • Фокус и обработку Enter/Space
    • Ничего
    • Цвет
    • Атрибут alt
  5. Какой заголовок есть в W3C Authoring Practices Guide?
    • Лучше без ARIA, чем с плохой ARIA
    • Всегда используй ARIA
    • ARIA заменяет HTML
    • ARIA нужна для оформления
  6. Какой атрибут ARIA даёт имя кнопке, в которой только значок?
  7. Где aria-hidden="true" не должен стоять никогда?
    • На элементе, который может получить фокус
    • На декоративном svg
    • На фоновом изображении
    • На разделителе
  8. В чём атрибут lang у html помогает экранному диктору?
    • Выбрать правильный голос и произношение
    • Найти заголовки
    • Прочитать alt
    • Изменить контраст
  9. Меняет ли ARIA вид элемента?
    • Нет, только то, что объявляется
    • Да, всегда
    • Меняет только role
    • Только в тёмной теме
  10. Пользователи экранного диктора чаще всего перемещаются по странице с помощью
    • списков заголовков, ссылок и ориентиров
    • чтения каждого слова сверху вниз
    • увеличения
    • печати
Источники курса (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17