Abilyo by WebAbility

Playwright SDK

Accessibility testing for Playwright test suites. Single-page analysis and continuous SPA monitoring.

Install

npm install -D @webability/playwright

Single Page Analysis

import { test, expect } from '@playwright/test'
import { a11yCheck } from '@webability/playwright'
 
test('homepage is accessible', async ({ page }) => {
  await page.goto('/')
  const result = await a11yCheck(page)
  expect(result.summary.critical).toBe(0)
})
 
test('login page has no serious issues', async ({ page }) => {
  await page.goto('/login')
  const result = await a11yCheck(page, { wcagTags: ['wcag21aa'] })
  expect(result.issues.filter(i => i.impact === 'critical')).toHaveLength(0)
})

Continuous Monitoring

For SPAs and dynamic content — captures issues that appear during user interaction.

import { test, expect } from '@playwright/test'
import { WebAbility } from '@webability/playwright'
 
test('checkout flow is accessible', async ({ page }) => {
  const wa = new WebAbility(page)
 
  await page.goto('/shop')
  await wa.start()
 
  await page.click('[data-add-to-cart]')
  await page.click('[data-checkout]')
  await page.fill('#email', '[email protected]')
  await page.click('#submit-order')
 
  const result = await wa.stop()
  expect(result.summary.critical).toBe(0)
})

API Reference

MethodDescription
a11yCheck(page, options?)Single-page scan. Returns ScanResult.
new WebAbility(page, options?)Create instance for continuous monitoring.
wa.analyze(options?)Single scan without start/stop.
wa.start(options?)Begin continuous monitoring. Captures DOM mutations.
wa.stop()Stop monitoring. Returns all issues found during session.

Requirements

  • Playwright 1.40+
  • Node.js 18+

On this page