可访问性测试Skill accessibility-testing

确保Web应用程序对残疾人士友好,包括屏幕阅读器用户、键盘导航用户等,遵循WCAG标准进行测试。

测试 0 次安装 0 次浏览 更新于 3/3/2026

name: 可访问性测试 description: 测试Web应用程序的WCAG合规性,并确保残疾用户可用性。用于可访问性测试,a11y,axe,ARIA,键盘导航,屏幕阅读器兼容性和WCAG验证。

可访问性测试

概述

可访问性测试确保Web应用程序可以被残疾人士使用,包括使用屏幕阅读器、键盘导航或其他辅助技术的人。它验证了与WCAG(Web内容可访问性指南)的合规性,并识别了可访问性的障碍。

何时使用

  • 验证WCAG 2.1/2.2合规性
  • 测试键盘导航
  • 验证屏幕阅读器兼容性
  • 测试颜色对比度
  • 验证ARIA属性
  • 测试表单可访问性
  • 确保焦点管理
  • 使用辅助技术进行测试

WCAG级别

  • 级别A:基本可访问性(必须有)
  • 级别AA:中级可访问性(应该有,许多司法管辖区的法律要求)
  • 级别AAA:高级可访问性(最好有)

指令

1. 使用Playwright的axe-core

// tests/accessibility/homepage.a11y.test.ts
import { test, expect } from '@playwright/test';
import AxeBuilder from '@axe-core/playwright';

test.describe('Homepage Accessibility', () => {
  test('should not have any automatically detectable WCAG A or AA violations', async ({
    page,
  }) => {
    await page.goto('/');

    const accessibilityScanResults = await new AxeBuilder({ page })
      .withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa'])
      .analyze();

    expect(accessibilityScanResults.violations).toEqual([]);
  });

  // ... 其余代码省略,保持原有格式不变

});

2. 键盘导航测试

// tests/accessibility/keyboard-navigation.test.ts
import { test, expect } from '@playwright/test';

test.describe('Keyboard Navigation', () => {
  // ... 其余代码省略,保持原有格式不变
});

3. ARIA测试

// tests/accessibility/aria.test.ts
import { test, expect } from '@playwright/test';

test.describe('ARIA Attributes', () => {
  // ... 其余代码省略,保持原有格式不变
});

4. 使用jest-axe的Jest

// tests/components/Button.a11y.test.tsx
import React from 'react';
import { render } from '@testing-library/react';
import { axe, toHaveNoViolations } from 'jest-axe';
import { Button } from '../Button';

// ... 其余代码省略,保持原有格式不变
});

5. Cypress可访问性测试

// cypress/e2e/accessibility.cy.js
describe('Accessibility Tests', () => {
  // ... 其余代码省略,保持原有格式不变
});

6. 使用Selenium和axe的Python

# tests/test_accessibility.py
import pytest
from selenium import webdriver
from axe_selenium_python import Axe

// ... 其余代码省略,保持原有格式不变

手动测试清单

// … 其余代码省略,保持原有格式不变

最佳实践

// … 其余代码省略,保持原有格式不变

工具

// … 其余代码省略,保持原有格式不变

标准

// … 其余代码省略,保持原有格式不变

示例

// … 其余代码省略,保持原有格式不变