Перейти к содержанию

Альтернативы изображениям в учебной статье

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

Продолжим статью a11y-lab/lesson.html. В разделе о Descendants уже есть выражение выбора потомков и короткий ожидаемый результат. Добавим схему XML и разберём, что необходимо сохранить в тексте. Затем рассмотрим декоративный значок и скриншот вывода. Эти изображения требуют разных решений, хотя все могут быть представлены элементом img.

Что именно объясняет схема

В нашем учебном документе корневой элемент Employees содержит два дочерних элемента Employee. У первого значение FirstName равно Alex, у второго — Elena. Иллюстрация дерева показывает отношения между узлами. Её полезная информация — структура и значения, а не цвет прямоугольников или количество пикселей между ними.

Если написать alt="XML", получится слишком общее название. Если перечислить все видимые линии, описание будет длинным и не объяснит назначение. Для схемы удобнее коротко назвать содержание, а подробную структуру дать обычным текстом рядом. Этот подход позволяет обращаться к объяснению по частям, а не прослушивать большой атрибут как единую строку.

Вставьте следующий фрагмент после первого пояснения в разделе descendants. Файл images/employees-tree.svg здесь обозначает учебную схему; её исходник входит в папку примера курса, а не является снимком рабочего сайта.

<figure>
  <img src="images/employees-tree.svg"
       width="640" height="260"
       alt="Дерево Employees с двумя сотрудниками; структура описана ниже.">
  <figcaption>
    Корневой элемент Employees содержит два элемента Employee.
    В первом FirstName имеет значение Alex, во втором — Elena.
    Метод Descendants("Employee") выбирает оба элемента Employee.
  </figcaption>
</figure>

Короткая альтернатива сообщает, что показано и где найти объяснение. Подпись сохраняет существенные отношения и связывает их с методом. Цвет схемы не становится единственным носителем смысла. width и height задают исходные пропорции изображения; они не определяют содержательность описания и не заменяют alt.

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

Подпись и альтернатива решают разные задачи

figcaption связывает видимую подпись с иллюстрацией. Он может объяснять, почему изображение присутствует в уроке, или назвать результат. Атрибут alt относится непосредственно к изображению. Подпись не означает, что любую картинку можно оставить без alt; нужно оценить, передаёт ли окружающий текст её существенный смысл и как устроено чтение.

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

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

Не нужно начинать каждую альтернативу со слова «изображение». Важнее назначение: «Дерево Employees», «Выбран пункт…», «Результат отбора…». Если тип представления существенен, его можно назвать. Для диаграммы и фотографии он иногда помогает понять контекст; для кнопки, изображённой значком, полезнее объяснить действие, а не геометрию значка.

Декоративный значок внутри ссылки

Добавим учебную ссылку на каталог прежних материалов. Её видимый текст уже полностью объясняет назначение. Стрелка рядом только поддерживает оформление:

<a href="/catalog/legacy/">
  Прежние уроки
  <img src="images/arrow.svg" width="20" height="20" alt="">
</a>

При таком устройстве имя ссылки берётся из слов «Прежние уроки». Дополнительное «стрелка вправо» не улучшило бы выбор назначения. Теперь изменим условие: уберём текст и оставим только картинку. Ссылка потеряет очевидное название, и пустой alt уже не подходит. Нужно вернуть видимую подпись либо дать изображению содержательное описание назначения.

Именно контекст отличает декоративный значок от функционального. Один и тот же SVG в одном месте может дополнять текст, а в другом быть единственным содержимым кнопки. Нельзя составить глобальный список файлов «всегда декоративные» без знания использования. Для принятия решения полезно дерево выбора WAI для alt.

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

Вывод программы должен оставаться содержанием

Для объяснения метода важен результат. Скриншот консоли показывает его визуально, но строки можно представить обычным текстом. В нашем стенде не требуется имитировать настоящий запуск C#: ниже приведён ожидаемый вывод отбора имён для учебных данных, а не измерение рабочего ProfessorWeb.

<p>Если из выбранных сотрудников вывести FirstName, ожидаются две строки:</p>
<pre><code>Alex
Elena</code></pre>
<p>После условия FirstName == "Elena" остаётся одна строка: Elena.</p>

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

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

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