Библиотека Axe-core предоставляет мощные инструменты для автоматического тестирования доступности веб-приложений. Одним из ключевых аспектов современного веба является мультиязычность: страницы часто содержат контент на нескольких языках, а корректная обработка таких страниц критична для пользователей с особыми потребностями. Axe-core обеспечивает поддержку мультиязычности через гибкую настройку локализации сообщений и правил.
По умолчанию Axe-core выводит сообщения на английском языке. Для приложений, работающих на нескольких языках, важно, чтобы описания нарушений доступности и рекомендации соответствовали языку интерфейса.
axe.configure() позволяет задать
локализацию для сообщений:axe.configure({
locale: 'ru', // установка русского языка
});
'en',
'fr', 'de', 'es',
'ru' и другие.description, help,
helpUrl в результатах тестирования.Особенность: локаль применяется только к текстовым
сообщениям. Коды правил (ruleId) и результаты тестов
остаются неизменными, что упрощает автоматическую обработку данных.
В случае отсутствия нужной локали или необходимости адаптировать тексты под корпоративные стандарты возможно добавление пользовательских переводов.
axe.configure({
locales: {
'ru': {
'image-alt': {
description: 'Элемент изображения должен иметь альтернативный текст.',
help: 'Добавить атрибут alt к изображению для улучшения доступности.'
}
}
},
locale: 'ru'
});
description и help.langAxe-core учитывает атрибут lang в HTML. Это важно для
корректной оценки контента, так как некоторые правила зависят от
языковой семантики:
<html lang="ru">
<body>
<p>Пример текста на русском языке.</p>
</body>
</html>
lang для каждого блока:<p lang="en">Text in English.</p>
<p lang="ru">Текст на русском.</p>
Некоторые правила Axe-core адаптированы под языковые особенности:
image-alt — проверяет наличие
альтернативного текста для изображений. Рекомендации корректируются под
язык, указанный в lang.label — проверяет соответствие меток и
элементов форм. Текст подсказок адаптируется под локаль.document-title — оценивает заголовок
документа; рекомендации учитывают языковую семантику и длину текста в
контексте конкретного языка.Использование мультиязычных правил позволяет создавать тесты, которые не просто формально проверяют наличие элементов, но и адаптированы к семантической и культурной специфике языка.
В приложениях на React, Vue или Angular Axe-core можно интегрировать с учетом мультиязычности:
import axe from 'axe-core';
import { render } from '@testing-library/react';
import App from './App';
const { container } = render(<App />);
axe.run(container, { locale: 'ru' }).then(results => {
console.log(results.violations);
});
axe.run().axe.configure({ locale }).Такой подход позволяет поддерживать единый механизм тестирования доступности для всех языковых версий приложения без дублирования кода.
Для мультиязычных приложений рекомендуется использовать форматирование результатов с учетом локали:
results.violations.forEach(v => {
console.log(`${v.help} (${v.id})`);
});
v.help выводится на языке, соответствующем
locale.Для сайтов с динамическим контентом можно реализовать автоматическое определение языка страницы:
const lang = document.documentElement.lang || 'en';
axe.configure({ locale: lang });
axe.run().then(console.log);
Мультиязычная поддержка в Axe-core сочетает гибкость локализации сообщений, учет языковых атрибутов HTML и возможность создания пользовательских переводов, что делает библиотеку мощным инструментом для тестирования доступности многоязычных веб-приложений.