Тестирование доступности с использованием Pa11y 5 на странице с всплывающими окнами - PullRequest
0 голосов
/ 02 мая 2018

У меня есть страница, на которой я могу получить отчет о тестировании доступности от Pa11y 5, используя действия.

Когда я нажимаю кнопку на этой конкретной странице, я получаю всплывающее окно / наложение, я хотел бы, чтобы Pa11y прослушивал эту всплывающую / наложенную страницу и сообщал о показателях доступности, но в настоящее время Pa11y 5 может предоставить мне только Главная родительская страница, игнорирующая какие-либо отчеты по HTML на всплывающей странице? Есть ли способ добиться этого, скажите Pa11y, чтобы он переключился на всплывающее окно и прослушал этот всплывающий HTML-файл и сообщил об этом.

Всплывающее окно / оверлей содержит div [role = 'dialog'], так как это модальный диалог, сделанный из арии.

Я использую последний Pa11y, поэтому я продолжаю упоминать его как Pa11y 5. Я не использовал Pa11y4, поэтому не могу комментировать, если это работает с Pa11y 4.

Любая помощь / совет искренне приветствуется.

Обновление: В соответствии с просьбой ниже приведена моя полная (соответствующая) часть кода

const PageOptions1 = {  
    timeout: 30000,
    userAgent: 'A11Y TESTS',
    actions: [
        'screen capture screenshots/001-DefaultView.png'                    
    ]
};
const PageOptions2 = {
    timeout: 35000, 
    userAgent: 'A11Y TESTS',
    rootElement: 'div[role="dialog"]',
    actions: [
        'click element button[data-automation-id="ccbutton"]',
        'wait for element div[role="dialog"] to be added',
        'screen capture screenshots/002-Popup.png',
        'click element i.fa-close',
        'screen capture screenshots/002-DefaultView.png'
    ]
};

async function runPa11y(navigateUrl) {
    try {
        const results = await Promise.all([
            pa11y(navigateUrl, PageOptions1),
            pa11y(navigateUrl, PageOptions2),           
        ]);

        LogResults(results);
    } catch (error) {
        console.error("Error: " + error.message);
    }
}

runPa11y("Url to navigate");

1 Ответ

0 голосов
/ 03 мая 2018

Спасибо за ваши обновления! Вы делаете правильные вещи, и все выглядит так, как будто это работает, как и ожидалось.

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

Разбейте PageOptions2 на более мелкие единицы, чтобы последним действием было состояние, с которым вы хотите проверить, и все должно быть в порядке.

...