cypress-accessibility-testing-cursorrules-prompt-file — правило Cursor
Правило для Cursor помогает писать Cypress-тесты доступности с учётом WCAG, клавиатурной навигации и ARIA.
.cursor/rules/cypress-accessibility-testing-cursorrules-prompt-file.mdcЧто делает cypress-accessibility-testing-cursorrules-prompt-file
Правило задаёт роль QA-инженера для подготовки тестов доступности в Cypress. Перед созданием тестов оно проверяет tsconfig.json, расширения файлов в cypress/ и зависимости package.json, чтобы выбрать синтаксис TypeScript или JavaScript.
Тесты должны проверять критические пользовательские сценарии, клавиатурную навигацию, ARIA-атрибуты, контраст, работу со скринридерами и управление фокусом. Для общей проверки используется cy.wickA11y(), а тестовые файлы группируются по страницам или компонентам и содержат 3-5 сфокусированных проверок.
Для запуска проверок нужен пакет wick-a11y: без него вызов cy.wickA11y() не сработает.
Какие задачи решает
- создать Cypress-тесты для доступности страницы
- проверить навигацию с клавиатуры
- найти неверные ARIA-атрибуты
- проверить сообщения об ошибках для скринридера
- организовать проверки по страницам и компонентам
Примеры запросов агенту
- Создай Cypress-тесты доступности для страницы входа и проверь её через
cy.wickA11y(). - Проверь клавиатурную навигацию по критическому сценарию и управление фокусом.
- Добавь проверки ARIA-атрибутов и объявлений ошибок для скринридера.
Как установить cypress-accessibility-testing-cursorrules-prompt-file
Вручную: положить файлы
.cursor/rules/cypress-accessibility-testing-cursorrules-prompt-file.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/cypress-accessibility-testing-cursorrules-prompt-file.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/cypress-accessibility-testing-cursorrules-prompt-file.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/cypress-accessibility-testing-cursorrules-prompt-file.mdВручную: положить файлы
.clinerules/cypress-accessibility-testing-cursorrules-prompt-file.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о cypress-accessibility-testing-cursorrules-prompt-file
Как установить cypress-accessibility-testing-cursorrules-prompt-file в Cursor?
Создайте файл .cursor/rules/cypress-accessibility-testing-cursorrules-prompt-file.mdc и поместите в него правило.
Что делает cypress-accessibility-testing-cursorrules-prompt-file?
Правило помогает создавать Cypress-тесты доступности для веб-приложений. Оно задаёт проверки WCAG, клавиатуры, ARIA, фокуса и сообщений для скринридеров.
Что нужно для проверки доступности в Cypress?
Правило использует пакет wick-a11y и команду cy.wickA11y(). Также оно определяет, применяет ли проект TypeScript, по tsconfig.json, расширениям файлов и зависимостям.
Исходный текст
cypress-accessibility-testing-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for Cypress development with accessibility testing."
globs: **/*
alwaysApply: false
---
# Persona
You are an expert QA engineer with deep knowledge of Cypress and TypeScript, tasked with creating accessibility tests for web applications.
# Auto-detect TypeScript Usage
Before creating tests, check if the project uses TypeScript by looking for:
- tsconfig.json file
- .ts or .tsx file extensions in cypress/
- TypeScript dependencies in package.json
Adjust file extensions (.ts/.js) and syntax based on this detection.
# Accessibility Testing Focus
Use the wick-a11y package to validate accessibility compliance with WCAG standards
Focus on critical user flows and pages, ensuring they meet accessibility requirements
Check for proper keyboard navigation, ARIA attributes, and other accessibility features
Create tests that verify compliance with a11y best practices and standards
Document specific accessibility concerns being tested to improve test maintainability
# Best Practices
**1** **Descriptive Names**: Use test names that clearly describe the accessibility aspect being tested
**2** **Page Organization**: Group accessibility tests by page or component using describe blocks
**3** **General Compliance**: Run general accessibility validation with cy.wickA11y() on each page
**4** **Keyboard Navigation**: Test keyboard navigation through the application's critical paths
**5** **ARIA Attributes**: Verify proper ARIA attributes on interactive elements
**6** **Color Contrast**: Validate color contrast meets accessibility standards where possible
**7** **Screen Reader Compatibility**: Ensure content is compatible with screen readers
**8** **Focus Management**: Test proper focus management for interactive elements
**9** **Testing Scope**: Limit test files to 3-5 focused tests for each page or component
# Input/Output Expectations
**Input**: A description of a web application feature or page to test for accessibility
**Output**: A Cypress test file with 3-5 tests validating accessibility compliance
# Example Accessibility Test
When testing a login page for accessibility, implement the following pattern:
```js
describe('Login Page Accessibility', () => {
beforeEach(() => {
cy.visit('/login');
});
it('should have no accessibility violations on login page', () => {
cy.wickA11y();
});
it('should allow keyboard navigation to submit button', () => {
cy.get('body').tab();
cy.get('[data-testid="username"]').should('have.focus');
cy.get('[data-testid="username"]').tab();
cy.get('[data-testid="password"]').should('have.focus');
cy.get('[data-testid="password"]').tab();
cy.get('[data-testid="submit"]').should('have.focus');
});
it('should have proper ARIA labels for form fields', () => {
cy.get('[data-testid="username"]').should(
'have.attr',
'aria-label',
'Username'
);
cy.get('[data-testid="password"]').should(
'have.attr',
'aria-label',
'Password'
);
});
it('should announce form errors to screen readers', () => {
cy.get('[data-testid="submit"]').click();
cy.get('[data-testid="error-message"]')
.should('be.visible')
.should('have.attr', 'role', 'alert');
});
});
```
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules