ibm-a11y-testing-guide

Guide writing Langflow frontend accessibility tests with axe and IBM Equal Access.

154k|10.0k|Updated Feb 8, 2023
One-click install
npx skills add https://github.com/langflow-ai/langflow --skill ibm-a11y-testing-guide
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ibm-a11y-testing-guide
Source: https://github.com/langflow-ai/langflow/tree/main/.agents/skills/ibm-a11y-testing-guide
Command: npx skills add https://github.com/langflow-ai/langflow --skill ibm-a11y-testing-guide

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Frontend accessibility testing requires running multiple engines and understanding component-specific pitfalls, but developers often stop at a single axe scan and miss real WCAG Level 1 violations. This Skill provides the reference knowledge to choose the right test layer and debug violations across the Langflow UI.

Core Features & Use Cases

  • Engine Selection Guidance: Decides when to use Jest+axe, Playwright page.runA11yScan, or the Python route scanner based on UI surface complexity.
  • POUR Checklist & Rule Gap Reference: Maps WCAG criteria to specific axe-vs-IBM rule gaps and component gotchas for AG Grid, Radix, and modals.
  • Use Case: When adding a new settings page with an editable data grid, consult this Skill to write both Jest unit tests and Playwright stateful scans, then debug any IBM-only violations like missing accessible names on icon-only columns.

Quick Start

Use the ibm-a11y-testing-guide skill to review my new Playwright accessibility test for the global variables settings page and identify which IBM rules I should verify beyond axe.

Frequently Asked Questions about ibm-a11y-testing-guide

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write accessibility tests for React components in Jest?

Render the component with React Testing Library and call axe(container) from @/utils/a11y-test. Assert with toHaveNoViolations(). Note that color-contrast is disabled in jsdom since layout cannot be measured.

What is the difference between axe-core and IBM Equal Access for accessibility testing?

axe-core runs in Jest via jsdom and catches contrast, labels, and basic ARIA issues. IBM Equal Access is stricter on ARIA structure and keyboard semantics, catching real WCAG Level 1 violations like tabbable elements with presentation roles that axe silently passes.

How do I run an IBM accessibility scan in Playwright?

Call page.runA11yScan(label) after navigating to the route and triggering the target state. Set RUN_A11Y=true to run the scan and RUN_A11Y_ASSERT=true to fail on new violations. The scan runs aChecker.getCompliance on the live DOM.

Why does AG Grid fail keyboard accessibility tests on disabled paging buttons?

Disabled paging buttons must use tabindex=-1, never inert or disabled, because AG Grid relies on its own tab guards. Breaking those guards traps reverse Shift+Tab entry, violating WCAG 2.1.2 No Keyboard Trap.

When should I use Playwright instead of Jest for accessibility tests?

Use Playwright when the surface needs real browser layout, routing, app state, modals, tables, focus order, or full-page keyboard interactions. Use Jest for primitives or components that render correctly in jsdom without full app routing.

How do I baseline known IBM accessibility violations that cannot be fixed?

Run the scan once to generate the report, then copy offending results into tests/a11y/baselines/{label}.json with ruleId, reasonId, and path.dom fields. The filterReport marks matching entries as ignored so the scan passes while the debt is tracked.