Учёт доступности
Доступность сайтов, построенных на CMS, зависит от правильного моделирования контента, создания доступных шаблонов и создания доступного контента с учётом рекомендаций по удобочитаемости и доступности.
Wagtail обычно предоставляет разработчикам контроль над моделированием контента и разметкой front-end, но всё же следует учитывать несколько областей и способы помочь авторам соблюдать лучшие практики удобочитаемости. Заметьте, что создание доступных веб-сайтов включает в себя гораздо больше, чем то, что описано здесь – для получения дополнительной информации ознакомьтесь с нашим списком ресурсов по доступности.
Моделирование контента
В процессе определения моделей вашего сайта обратите внимание на следующие области:
Alt-текст для изображений
По умолчанию для изображений Wagtail используется поле title в качестве alt-текста (#4945). Это неподходящий вариант, поскольку это не отображается в интерфейсе CMS, а форма загрузки изображений по умолчанию использует имя файла изображения в качестве заголовка.
В идеале, всегда добавляйте необязательное поле «alt-текст» там, где используется изображение, наряду с полем изображения:
- Для обычных полей добавьте поле alt-текста в панель вашего изображения.
- Для StreamField добавьте дополнительное поле в ваш блок изображения.
- Для форматированного текста Wagtail уже позволяет настроить alt-текст для изображений форматированного текста.
При определении полей alt-текста убедитесь, что они являются необязательными, чтобы редакторы могли не указывать alt-текст для декоративных изображений. Уделите время, чтобы предоставить help_text соответствующие рекомендации. Например, ссылки на установленные ресурсы по alt-тексту.
Примечание
Стоит ли добавлять поле alt-текста в модель Image для моего сайта?
Наличие отдельного поля alt в модели Image (#5789) лучше, чем ничего, и может быть уместно для некоторых веб-сайтов, но мы рекомендуем встраивать его в контент, поскольку в идеале alt-текст должен быть написан в контексте использования изображения:
- Если содержимое alt-текста уже присутствует в остальной части страницы, изображение не должно повторять это содержимое.
- В идеале, alt-текст должен быть написан с учётом контекста отображения изображения.
- Изображение может быть декоративным в одних случаях и не в других. Например, миниатюры в списках страниц часто можно считать декоративными.
См. RFC 51: Контекстный alt-текст для долгосрочного решения этой проблемы.
Заголовок вставки
Отсутствие заголовков вставок является распространённой проблемой при проверке доступности веб-сайтов Wagtail. В некоторых случаях iframe вставок Wagtail не имеет установленного атрибута title. Это обычно проблема с поставщиками OEmbed, такими как YouTube (#5982). Это очень проблематично для пользователей с программами чтения экрана, которые полагаются на заголовок, чтобы понять, что представляет собой вставка и следует ли взаимодействовать с ней.
Если ваш сайт использует вставки, у которых отсутствуют заголовки, убедитесь в выполнении одного из следующих действий:
- Добавьте поле OEmbed title в качестве
titleвiframe. - Добавьте пользовательское обязательное поле Title к вашим вставкам и добавьте его в качестве
iframeвtitle.
Доступные уровни заголовков
Wagtail очень легко позволяет разработчикам контролировать доступные уровни заголовков для любого контента, через функции форматированного текста или пользовательские блоки StreamField. В обоих случаях, уделите время, чтобы ограничить доступные уровни заголовков, чтобы структура документа страниц была более логичной и последовательной. Рассмотрите следующие ограничения:
- Запретите
h1в форматированном тексте. Должен быть только один тегh1на странице, который обычно соответствуетtitleстраницы. - Ограничьте уровни заголовков до
h2для основного контента страницы. Добавьтеh3только в случае необходимости. Избегайте других уровней как общее правило. - Для контента, отображаемого в определённом разделе страницы, ограничьте уровни заголовков теми, которые находятся непосредственно ниже основного заголовка раздела.
Если управление заголовками осуществляется через StreamField, убедитесь, что вы применили эти же ограничения.
Жирный и курсивный шрифты в форматированном тексте
По умолчанию Wagtail сохраняет форматирование жирным шрифтом как тег b, а курсивным как i (#4665). Хотя эти теги не всегда имеют корректную семантику (strong и em более распространены), для пользователей с программами чтения экрана это не имеет существенного значения, поскольку по умолчанию программы чтения экрана не объявляют контент по-разному в зависимости от выделения.
Если это вас беспокоит, вы можете изменить используемые теги при сохранении контента с помощью конвертеров форматов форматированного текста. В будущем, обработчики переопределения форматированного текста должны также поддерживать это без изменения формата хранения (#4223).
TableBlock
По умолчанию TableBlock делает слишком лёгким для конечных пользователей пропустить необходимость использования заголовков строк или столбцов (#5989). Убедитесь, что всегда установлены либо заголовки строк, либо заголовки столбцов. Всегда добавляйте заголовок, чтобы пользователи с программами чтения экрана знали, где находятся таблицы.
Доступность в шаблонах
Ниже приведены распространённые нюансы, которые необходимо учитывать, чтобы сделать шаблоны сайта максимально доступными.
Alt-текст в шаблонах
См. раздел моделирование контента выше. Кроме того, убедитесь, что вы настроили alt-текст изображений, установив его соответствующее значение, или пустую строку для декоративных изображений или изображений, где alt-текст является повторением другого контента. Даже если у ваших изображений есть alt-текст, полученный непосредственно из модели изображения, вам по-прежнему необходимо решить, нужен ли alt-текст для конкретного контекста использования изображения. Например, избегайте alt-текста в списках, где alt-текст просто повторяет заголовок элементов списка.
Формы
The Form builder uses Django’s forms API. Here are considerations specific to forms in templates:
- Avoid rendering helpers such as
as_table,as_ul,as_p, which can make forms harder to navigate for screen reader users or cause HTML validation issues (see Django ticket #32339). - Make sure to visually distinguish required and optional fields.
- Take the time to group related fields together in
fieldset, with an appropriatelegend, in particular for radios and checkboxes (see Django ticket #32338). - If relevant, use the appropriate
autocompleteandautocapitalizeattributes. - For Date and Datetime fields, make sure to display the expected format or an example value (see Django ticket #32340). Or use input type=”date”.
- For Number fields, consider whether
input type="number"really is appropriate, or whether there may be better alternatives such as inputmode.
Make sure to test your forms’ implementation with assistive technologies, and review official W3C guidance on accessible forms development for further information.
Ресурсы по доступности
Мы сосредоточиваемся на особенностях, специфичных для веб-сайтов Wagtail, но доступность — это намного больше. Вот ценные ресурсы для получения дополнительной информации, для разработчиков, но также и для дизайнеров и авторов:
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/stable/advanced_topics/accessibility_considerations.html