Использование каркаса робота и топора

Внимание к тестированию доступности быстро растет. В этой статье я кратко расскажу о тестировании доступности и покажу, как вы можете использовать robotframework для выполнения тестов доступности в ваших обычных конвейерах тестирования.

Что такое тестирование доступности?

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

Чем доступнее система, тем больше пользы от нее могут получить люди с ограниченными возможностями.

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

Веб-доступность используется более конкретно для веб-сайтов и того, насколько хорошо они доступны.

Руководство по доступности веб-контента (WCAG) признано стандартом W3C для обеспечения доступности веб-сайтов и содержит несколько ключевых рекомендаций по импорту для обеспечения доступности. Основные принципы, упомянутые в этом документе:

  1. Воспринимаемость — информация и компоненты пользовательского интерфейса должны быть представлены пользователям так, как они могут их воспринять.
  2. Оперативный — компоненты пользовательского интерфейса и навигация должны быть работоспособными.
  3. Понятный — информация и работа пользовательского интерфейса должны быть понятными.
  4. Надежность — контент должен быть достаточно надежным, чтобы его можно было надежно интерпретировать широким спектром пользовательских агентов, включая вспомогательные технологии.

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

Почему я должен инвестировать время в веб-доступность?

Есть 3 основные причины:

  1. Это правильно! Я знаю, это звучит банально, самодовольно и самодовольно, но я верю, что это правда. Делая наши продукты более доступными, мы делаем мир лучше, и по большей части это не требует особых усилий.
  2. Это выгодно. По данным Всемирной организации здравоохранения, более 1 миллиарда человек во всем мире живут с той или иной формой инвалидности, это почти 13% всего населения планеты. По оценкам CDC, каждый четвертый взрослый в США имеет ту или иную форму инвалидности. Каким бы ни было реальное число, речь идет об очень большой толпе. Убедившись, что наше приложение является инклюзивным для них, мы сразу же расширяем нашу потенциальную клиентскую базу.
  3. Юридические штрафы. Я действительно не хочу, чтобы это было причиной, но это так.
    Во многих штатах по всему миру существуют юридические положения, касающиеся доступности веб-сайтов. Несоблюдение правил доступности веб-сайтов может привести к судебным искам и штрафам.

Но как?

Представляем топор

Axe — это проект с открытым исходным кодом, разработанный и поддерживаемый dequelabs.
Он использует правила, предоставленные WCAG, для создания линтера, линтер запускается на страницах веб-сайта и дает подсказки по проблемам доступности.

Axe имеет множество реализаций для разных языков, одна из них — aXe selenium python, которая объединяет axe с селеном для полного решения по автоматизации.

Кроме того, robotframework-axelibrary был разработан для интеграции aXe selenium python с robotframework.

Представляем робототехнику

О robotframework я рассказывал в предыдущей статье. Robotframework — это платформа с открытым исходным кодом на основе Python для приемочного тестирования программного обеспечения.

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

Он предлагает богатую экосистему с множеством инструментов, легко доступных для различных целей тестирования, от веб-тестирования до тестирования API, базы данных, мобильных устройств или IoT.

Представляем robotframework-axelibrary

Библиотека aXe позволяет нам запускать aXe с селеном из нашего набора тестов robotframework.

Это приведет либо к отчету о доступности для чтения, либо к утверждениям об отклонении изменений кода, вызывающих нарушения доступности.

Во-первых, нам нужно установить зависимости:

pip install robotframework==4.1.3 selenium==4.1.0 robotframework-seleniumlibrary==6.0.0 robotframework-axelibrary==0.1.5

Теперь мы можем написать простой тест доступности для нашего сайта:

В этом тесте мы переходим на страницу входа на наш демонстрационный сайт с помощью селена, затем выполняем команду ax для обнаружения проблем с доступностью, при этом создается файл JSON со всеми найденными проблемами доступности, затем мы используем файл JSON для записи в удобочитаемом формате на наш результат испытаний.

Как мы видим в отчете, у нас есть несколько нарушений правил доступности, в этом примере контраст между элементами и фоном слишком низкий (4,47 вместо рекомендуемого 4,5), мы можем перейти по прикрепленной ссылке и узнать больше о это нарушение здесь.

Мы также можем добавить еще одну строку для утверждения, например, утверждать, что было обнаружено не более 1 нарушения доступности:

Should Be True    ${results.violations} < 1

Теперь наш конвейер автоматизации выйдет из строя при нарушении этого ограничения.

Заключение

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

Например, правительству Великобритании удалось отследить 30–40% проблем с доступностью, автоматизировав процесс — (для дальнейшего чтения).

Добавление тестирования доступности в ваши пайплайны не только поможет вашему бизнесу избежать судебных исков и штрафов, но также поможет сделать мир лучше для жизни.