Agent skill

Kb Playwright Testing

by Community-Access in Community-Access/accessibility-agents

Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

MITAuto-check passedFrontend & Design

Install Kb Playwright Testing

skills CLI
$ npx skills add Community-Access/accessibility-agents --skill kb-playwright-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Community-Access/accessibility-agents kb-playwright-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Community-Access/accessibility-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kb-playwright-testing .claude/skills/kb-playwright-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
kb-playwright-testing
GitHub stars
422
Token cost
~2k tokens
SKILL.md length
265 words
Files
2
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

  • Tasks that involve Accessibility
  • SKILL.md covers Playwright Accessibility Testing, MCP Tools Available, @axe-core/playwright Patterns and Keyboard Traversal Patterns, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve Browser testing

What it does

Kb Playwright Testing is an agent skill from Community-Access/accessibility-agents. Reference data, not a reviewer. Browser accessibility testing using Playwright and @axe-core/playwright. Keyboard scans, contrast verification, and accessibility tree snapshots.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Frontend & Design, covering Accessibility and Browser testing. It works with Playwright. The repository describes itself as: Accessibility review agents for Claude Code, GitHub Copilot, and Claude Desktop. Eleven specialists that enforce WCAG 2.2 AA compliance so AI coding tools stop generating… The licence is MIT.

When your agent uses it

  • Tasks that involve Accessibility
  • Tasks that involve Browser testing

Example prompts

  • “/kb-playwright-testing”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit decf6ba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kb Playwright Testing loads about 2k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 265 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~50
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Community-Access/accessibility-agents at commit decf6ba, republished under its MIT licence (© Community-Access). 265 words, ~1,965 tokens.

Download SKILL.mdSave it as .claude/skills/kb-playwright-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
kb-playwright-testing
description
Reference data, not a reviewer. Browser accessibility testing using Playwright and @axe-core/playwright. Keyboard scans, contrast verification, and accessibility tree snapshots.
license
MIT
disable-model-invocation
true
user-invocable
false
metadata.tier
reference
metadata.domain
cross-cutting
metadata.output
none
metadata.effort
low
metadata.title
Playwright Testing

Playwright Accessibility Testing

Reusable knowledge module for browser-based accessibility testing using Playwright and @axe-core/playwright.

MCP Tools Available

Each tool, with its purpose and requires @axe-core or playwright.

ToolPurposeRequires @axe-core/playwright
run_playwright_keyboard_scanTab-order traversal, keyboard trap detectionNo
run_playwright_state_scanClick triggers, scan revealed content with axe-coreYes
run_playwright_viewport_scanMulti-viewport axe-core + touch target measurementYes
run_playwright_contrast_scanComputed-style contrast ratio after CSS cascadeNo
run_playwright_a11y_treeBrowser accessibility tree snapshotNo

@axe-core/playwright Patterns

Full Page Scan
javascript
import AxeBuilder from '@axe-core/playwright';

const results = await new AxeBuilder({ page })
  .withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'wcag22aa'])
  .analyze();
Scoped Element Scan
javascript
const results = await new AxeBuilder({ page })
  .include('.modal-content')
  .withTags(['wcag2a', 'wcag2aa'])
  .analyze();
Single Rule Verification
javascript
const results = await new AxeBuilder({ page })
  .include('#hero-image')
  .withRules(['image-alt'])
  .analyze();
expect(results.violations).toEqual([]);
Scan After Interaction
javascript
await page.click('[aria-expanded="false"]');
await page.waitForSelector('.accordion-content', { state: 'visible' });
const results = await new AxeBuilder({ page })
  .include('.accordion-content')
  .analyze();

Keyboard Traversal Patterns

Record Tab Sequence
javascript
const tabStops = [];
for (let i = 0; i < maxTabs; i++) {
  await page.keyboard.press('Tab');
  const info = await page.evaluate(() => {
    const el = document.activeElement;
    return {
      tagName: el?.tagName,
      role: el?.getAttribute('role'),
      name: el?.getAttribute('aria-label') || el?.textContent?.trim().slice(0, 50),
      id: el?.id,
      tabIndex: el?.tabIndex
    };
  });
  tabStops.push(info);
}
Detect Keyboard Traps

A keyboard trap is detected when the same element receives focus after consecutive Tab presses:

javascript
let trapCount = 0;
let lastSelector = '';
for (const stop of tabStops) {
  const currentSelector = `${stop.tagName}#${stop.id}`;
  if (currentSelector === lastSelector) {
    trapCount++;
    if (trapCount >= 3) { /* TRAP DETECTED */ }
  } else {
    trapCount = 0;
  }
  lastSelector = currentSelector;
}
Focus Management After Modal Open
javascript
await page.click('[data-modal-trigger]');
await page.waitForSelector('[role="dialog"]', { state: 'visible' });
const focusedRole = await page.evaluate(() =>
  document.activeElement?.closest('[role="dialog"]') ? 'inside-dialog' : 'outside-dialog'
);
// focusedRole should be 'inside-dialog'

Focus Management Test Templates

Modal Focus Trap Test
javascript
test('modal traps focus correctly', async ({ page }) => {
  await page.goto(url);
  await page.click('[data-open-modal]');
  await page.waitForSelector('[role="dialog"]', { state: 'visible' });

  // Focus should be inside the dialog
  const inDialog = await page.evaluate(() =>
    document.activeElement?.closest('[role="dialog"]') !== null
  );
  expect(inDialog).toBe(true);

  // Tab through dialog — should not escape
  for (let i = 0; i < 20; i++) {
    await page.keyboard.press('Tab');
    const stillInDialog = await page.evaluate(() =>
      document.activeElement?.closest('[role="dialog"]') !== null
    );
    expect(stillInDialog).toBe(true);
  }

  // Escape should close and return focus to trigger
  await page.keyboard.press('Escape');
  const focusedId = await page.evaluate(() => document.activeElement?.id);
  expect(focusedId).toBe('modal-trigger-id');
});
javascript
test('skip link moves focus to main content', async ({ page }) => {
  await page.goto(url);
  await page.keyboard.press('Tab'); // Focus skip link
  await page.keyboard.press('Enter'); // Activate it
  const focusedId = await page.evaluate(() => document.activeElement?.id);
  expect(focusedId).toBe('main-content');
});

CI Integration

GitHub Actions with Playwright
yaml
name: Accessibility Tests
on: [push, pull_request]

jobs:
  a11y:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npx playwright install --with-deps chromium
      - name: Start dev server
        run: npm run dev &
        env:
          CI: true
      - name: Wait for server
        run: npx wait-on http://localhost:3000 --timeout 30000
      - name: Run accessibility tests
        run: npx playwright test tests/a11y/
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: a11y-test-results
          path: test-results/
Playwright Config for Accessibility Tests
javascript
// playwright.config.js (a11y section)
export default {
  testDir: './tests/a11y',
  use: {
    baseURL: process.env.BASE_URL || 'http://localhost:3000',
    // Use Chromium only — @axe-core/playwright is Chromium-validated
    browserName: 'chromium',
  },
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:3000',
    reuseExistingServer: !process.env.CI,
  },
};

Graceful Degradation

Detection Pattern
javascript
let _playwrightAvailable = null;
async function isPlaywrightAvailable() {
  if (_playwrightAvailable !== null) return _playwrightAvailable;
  try {
    await import('playwright');
    _playwrightAvailable = true;
  } catch {
    _playwrightAvailable = false;
  }
  return _playwrightAvailable;
}
Degradation Matrix

Each playwright, with its @axe-core or playwright and available scans.

Playwright@axe-core/playwrightAvailable Scans
YesYesAll 5 tools (keyboard, state, viewport, contrast, tree)
YesNo3 tools (keyboard, contrast, tree)
No—None — fall back to code review + axe-core CLI
User-Facing Messages

When unavailable:

yaml
Playwright not installed. Behavioral testing (keyboard traversal, dynamic states,
responsive viewport, rendered contrast) is unavailable.

Install: npm install -D playwright @axe-core/playwright && npx playwright install chromium

When partially available:

yaml
@axe-core/playwright not installed. State scanning and viewport scanning are
unavailable. Keyboard, contrast, and accessibility tree scans will proceed.

Install: npm install -D @axe-core/playwright

WCAG Coverage Map

Each WCAG SC, with its description and playwright tool.

WCAG SCDescriptionPlaywright Tool
1.3.1Info and Relationshipsa11y tree, state scan
1.4.3Contrast (Minimum)contrast scan
1.4.6Contrast (Enhanced)contrast scan
1.4.10Reflowviewport scan
2.1.1Keyboardkeyboard scan
2.1.2No Keyboard Trapkeyboard scan
2.4.3Focus Orderkeyboard scan
2.4.7Focus Visiblekeyboard scan
2.5.5Target Size (Enhanced)viewport scan
2.5.8Target Size (Minimum)viewport scan
4.1.2Name, Role, Valuea11y tree, state scan

© Community-Access, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/kb-playwright-testing of Community-Access/accessibility-agents.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit decf6ba

Compare with similar skills

Kb Playwright Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Kb Playwright Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kb Playwright Testing this skillCommunity-Access/accessibility-agents422—~2kAutomated safety check: PassMIT
Scout UI Testingelastic/kibana21k—~3.1kAutomated safety check: PassCustom licence
Common Web Visual TestingHoangNguyen0403/agent-skills-standard571—~760Automated safety check: PassMIT
Reactmagnus919/agent-skills113—~1.4kAutomated safety check: PassMIT
Vitemagnus919/agent-skills113—~1.5kAutomated safety check: NotesMIT
E2E Testingericrisco/rsc-harness167—~3.2kAutomated safety check: PassMIT

Similar skills

  • Scout UI Testing

    elastic/kibana

    Official

    A skill your agent uses when creating, updating, debugging, or reviewing Scout UI tests in Kibana (Playwright + Scout fixtures), including page objects, browser authentication, parallel UI tests…

    21k GitHub stars~3.1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Common Web Visual Testing

    HoangNguyen0403/agent-skills-standard

    Standardizes visual audits, responsive design, and behavioral testing for web apps.

    571 GitHub stars~760 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • React

    magnus919/agent-skills

    Operate React applications as a named tool: inspect and diagnose React/Vite projects, design component boundaries and state flow, implement accessible responsive UI, and verify behavior with the…

    113 GitHub stars~1.4k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Vite

    magnus919/agent-skills

    Operate Vite projects: inspect versions and configuration, run bounded development and production builds, diagnose dependency and asset failures, and configure environment-aware frontend delivery.

    113 GitHub stars~1.5k tokensUpdated yesterday
    Frontend & DesignAuto-check: notes
  • E2E Testing

    ericrisco/rsc-harness

    A skill your agent uses when writing or stabilizing Playwright tests that drive a real browser through multi-step journeys — durable locators, web-first assertions, storageState auth, trace/retries…

    167 GitHub stars~3.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Eval Graphics

    elvisun/newsjack

    Turn an eval study's numbers into on-brand, publish-ready figures using the Newsjack chart room (the eval design system), then validate them with Playwright.

    1.5k GitHub stars~2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from Community-Access/accessibility-agents

All 108 skills in this repo
  • A11y Core

    Community-Access/accessibility-agents

    Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules.

    422 GitHub stars~1.2k tokensUpdated 15 days ago
    Auto-check passed
  • Kb Web Scanning

    Community-Access/accessibility-agents

    Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

    422 GitHub stars~1.2k tokensUpdated 15 days ago
    Auto-check passed
  • Accessibility Lead

    Community-Access/accessibility-agents

    Web UI accessibility lead. An agent skill from Community-Access/accessibility-agents.

    422 GitHub stars~932 tokensUpdated 15 days ago
    Auto-check passed
  • Alt Text Headings

    Community-Access/accessibility-agents

    Alt text, SVGs, figures, charts, heading order, page titles and landmarks.

    422 GitHub stars~1.5k tokensUpdated 15 days ago
    Auto-check passed
  • Aria Specialist

    Community-Access/accessibility-agents

    ARIA roles, states and properties for custom widgets and dynamic content.

    422 GitHub stars~1.6k tokensUpdated 15 days ago
    Auto-check passed
  • Cognitive Accessibility

    Community-Access/accessibility-agents

    Plain language, WCAG 2.2 cognitive criteria, COGA guidance and auth UX.

    422 GitHub stars~1.4k tokensUpdated 15 days ago
    Auto-check passed

Works with

Questions about Kb Playwright Testing

What does Kb Playwright Testing do?

Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents. Kb Playwright Testing is an agent skill from Community-Access/accessibility-agents. Reference data, not a reviewer.

When should I use Kb Playwright Testing?

Kb Playwright Testing fits situations like: tasks that involve Accessibility; tasks that involve Browser testing.

How do I install Kb Playwright Testing in Claude Code?

Run `npx skills add Community-Access/accessibility-agents --skill kb-playwright-testing -a claude-code`. Or copy the skill folder (skills/kb-playwright-testing in Community-Access/accessibility-agents) into .claude/skills/kb-playwright-testing in your project. Claude Code loads it when a task matches its description.

How do I install Kb Playwright Testing in Codex?

Run `npx skills add Community-Access/accessibility-agents --skill kb-playwright-testing -a codex`. Or copy the skill folder (skills/kb-playwright-testing in Community-Access/accessibility-agents) into .agents/skills/kb-playwright-testing in your project. Codex loads it when a task matches its description.

Can I use Kb Playwright Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Community-Access/accessibility-agents --skill kb-playwright-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kb-playwright-testing, .gemini/skills/kb-playwright-testing, .github/skills/kb-playwright-testing and .opencode/skills/kb-playwright-testing in your project.

What does Kb Playwright Testing need to run?

SKILL.md names no scripts, command-line tools or credentials: Kb Playwright Testing is instructions for the agent only. Our summary lists: Node.js.

Does Kb Playwright Testing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Kb Playwright Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Kb Playwright Testing use?

Kb Playwright Testing is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kb Playwright Testing use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kb Playwright Testing?

Skills that share tags, products or a category with Kb Playwright Testing: Scout UI Testing (elastic/kibana, 21k stars), Common Web Visual Testing (HoangNguyen0403/agent-skills-standard, 571 stars), React (magnus919/agent-skills, 113 stars) and Vite (magnus919/agent-skills, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kb Playwright Testing?

Community-Access (a GitHub organization) maintains it in Community-Access/accessibility-agents, which has 422 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on September 23, 2026.

Source: Community-Access/accessibility-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.