accessibility-design-checklist

Эксперт по accessibility дизайну. Используй для WCAG, a11y чеклистов и inclusive design.

181 stars

Best use case

accessibility-design-checklist is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Эксперт по accessibility дизайну. Используй для WCAG, a11y чеклистов и inclusive design.

Teams using accessibility-design-checklist should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/accessibility-design-checklist/SKILL.md --create-dirs "https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/skills/data/accessibility-design-checklist/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/accessibility-design-checklist/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How accessibility-design-checklist Compares

Feature / Agentaccessibility-design-checklistStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Эксперт по accessibility дизайну. Используй для WCAG, a11y чеклистов и inclusive design.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Эксперт по чек-листу дизайна доступности

Вы эксперт по дизайну доступности и соответствию стандартам, специализирующийся на создании всесторонних чек-листов и аудитов для веб и мобильных интерфейсов. Вы обладаете глубокими знаниями руководящих принципов WCAG 2.1 AA/AAA, соответствия Section 508 и принципов инклюзивного дизайна.

## Основные принципы доступности

### POUR фреймворк
- **Воспринимаемость**: Информация должна быть представлена способами, которые пользователи могут воспринимать
- **Управляемость**: Компоненты интерфейса должны быть управляемыми всеми пользователями
- **Понятность**: Информация и работа UI должны быть понятными
- **Надёжность**: Контент должен быть достаточно надёжным для различных вспомогательных технологий

### Критические критерии успеха
- Коэффициенты цветового контраста: 4.5:1 для обычного текста, 3:1 для крупного текста (AA)
- Поддержка навигации с клавиатуры для всех интерактивных элементов
- Совместимость со скрин-ридерами с правильной семантической разметкой
- Управление фокусом и видимые индикаторы фокуса
- Альтернативный текст для всех значимых изображений

## Чек-лист визуального дизайна

### Цвет и контраст
```css
/* Обеспечьте достаточные коэффициенты контраста */
.text-primary {
  color: #1a1a1a; /* Коэффициент контраста 15.3:1 на белом */
}

.text-secondary {
  color: #595959; /* Коэффициент контраста 4.5:1 на белом */
}

/* Никогда не полагайтесь только на цвет */
.error-message {
  color: #d32f2f;
  border-left: 3px solid #d32f2f; /* Визуальный индикатор */
}

.error-message::before {
  content: "⚠ "; /* Индикатор иконки */
}
```

### Типографика и интервалы
- Минимальный размер шрифта: 16px для основного текста
- Высота строки: 1.4-1.6 для оптимальной читаемости
- Область касания: Минимум 44x44px (iOS) или 48x48dp (Android)
- Адекватные интервалы между интерактивными элементами (минимум 8px)

## Семантический HTML и ARIA

### Правильная структура заголовков
```html
<!-- Правильная иерархия заголовков -->
<h1>Основной заголовок страницы</h1>
  <h2>Заголовок раздела</h2>
    <h3>Заголовок подраздела</h3>
    <h3>Другой подраздел</h3>
  <h2>Другой раздел</h2>

<!-- Ссылка пропуска навигации -->
<a href="#main-content" class="skip-link">
  Перейти к основному контенту
</a>
```

### Интерактивные элементы
```html
<!-- Правильная реализация кнопки -->
<button type="button"
        aria-expanded="false"
        aria-controls="dropdown-menu"
        id="menu-button">
  Меню <span aria-hidden="true">▼</span>
</button>

<ul role="menu"
    aria-labelledby="menu-button"
    id="dropdown-menu"
    hidden>
  <li role="menuitem"><a href="#">Элемент 1</a></li>
  <li role="menuitem"><a href="#">Элемент 2</a></li>
</ul>

<!-- Метки и описания форм -->
<div class="form-group">
  <label for="email">Адрес электронной почты *</label>
  <input type="email"
         id="email"
         name="email"
         required
         aria-describedby="email-help email-error"
         aria-invalid="false">
  <div id="email-help" class="help-text">
    Мы никогда не передадим вашу почту
  </div>
  <div id="email-error" class="error" role="alert" hidden>
    Пожалуйста, введите корректный адрес электронной почты
  </div>
</div>
```

## Навигация с клавиатуры

### Управление фокусом
```css
/* Видимые индикаторы фокуса */
:focus-visible {
  outline: 2px solid #0066cc;
  outline-offset: 2px;
  border-radius: 2px;
}

/* Стилизация ссылки пропуска */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  z-index: 1000;
  padding: 8px;
  background: #000;
  color: #fff;
  text-decoration: none;
}

.skip-link:focus {
  top: 6px;
}
```

### Порядок табуляции и захват
```javascript
// Реализация захвата фокуса для модального окна
function trapFocus(element) {
  const focusableElements = element.querySelectorAll(
    'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
  );

  const firstElement = focusableElements[0];
  const lastElement = focusableElements[focusableElements.length - 1];

  element.addEventListener('keydown', (e) => {
    if (e.key === 'Tab') {
      if (e.shiftKey && document.activeElement === firstElement) {
        e.preventDefault();
        lastElement.focus();
      } else if (!e.shiftKey && document.activeElement === lastElement) {
        e.preventDefault();
        firstElement.focus();
      }
    }

    if (e.key === 'Escape') {
      closeModal();
    }
  });
}
```

## Оптимизация для скрин-ридеров

### Живые области и объявления
```html
<!-- Объявления статуса -->
<div aria-live="polite" id="status" class="sr-only"></div>
<div aria-live="assertive" id="alerts" class="sr-only"></div>

<!-- Состояния загрузки -->
<button aria-describedby="loading-status">
  <span>Отправить</span>
  <span id="loading-status" aria-live="polite"></span>
</button>
```

```javascript
// Объявление динамических изменений контента
function announceToScreenReader(message, priority = 'polite') {
  const announcement = document.createElement('div');
  announcement.setAttribute('aria-live', priority);
  announcement.setAttribute('aria-atomic', 'true');
  announcement.className = 'sr-only';
  announcement.textContent = message;

  document.body.appendChild(announcement);

  setTimeout(() => {
    document.body.removeChild(announcement);
  }, 1000);
}
```

## Тестирование и валидация

### Инструменты автоматизированного тестирования
- axe-core для всестороннего сканирования доступности
- WAVE расширение для браузера для визуальной обратной связи
- Lighthouse аудит доступности в Chrome DevTools
- Анализаторы цветового контраста (WebAIM, Stark)

### Чек-лист ручного тестирования
1. Навигация по всему интерфейсу только с помощью клавиатуры
2. Тестирование со скрин-ридером (NVDA, JAWS, VoiceOver)
3. Проверка контента при 200% увеличении
4. Проверка коэффициентов цветового контраста
5. Валидация реализации HTML и ARIA
6. Тестирование с пользователями с ограниченными возможностями

## Мобильная доступность

### Поддержка касаний и жестов
```css
/* Минимальные размеры областей касания */
.touch-target {
  min-height: 44px;
  min-width: 44px;
  padding: 12px;
}

/* Поддержка уменьшенной анимации */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
```

### Специфические для платформы соображения
- iOS: Поддержка роторной навигации VoiceOver
- Android: Совместимость с TalkBack и Switch Access
- Правильные семантические роли для нативных мобильных элементов
- Поддержка динамического шрифта для масштабирования текста

Related Skills

Advanced Modular Library Design

181
from majiayu000/claude-skill-registry

Design modular libraries with clear package boundaries, feature-first organization, and clean API surfaces. Use when structuring monorepos, defining module boundaries, or designing library APIs.

admin-design

181
from majiayu000/claude-skill-registry

Minimal, high-clarity admin UI design for this repo. Use when redesigning /admin pages (translation manager, dashboards, tables, forms), defining admin design tokens, or improving admin UX/keyboard workflows without changing core functionality.

adhd-design-expert

181
from majiayu000/claude-skill-registry

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

actionable-alerting-runbook-design

181
from majiayu000/claude-skill-registry

Designing effective alerts and runbooks for incident response. PROACTIVELY activate for: (1) Creating alerting rules, (2) Writing runbooks, (3) Reducing alert fatigue, (4) On-call escalation setup, (5) Incident response procedures. Triggers: "alerting", "runbook", "on-call", "pagerduty", "incident", "alert fatigue", "escalation", "playbook"

action-mapping-designer

181
from majiayu000/claude-skill-registry

This skill should be used when ensuring training focuses on performance outcomes and business impact. Use this skill to identify essential content, design performance-focused activities, create job aids, and eliminate unnecessary training.

accessibility

181
from majiayu000/claude-skill-registry

Build WCAG 2.1 AA compliant websites with semantic HTML, proper ARIA, focus management, and screen reader support. Includes color contrast (4.5:1 text), keyboard navigation, form labels, and live regions. Use when implementing accessible interfaces, fixing screen reader issues, keyboard navigation, or troubleshooting "focus outline missing", "aria-label required", "insufficient contrast".

accessibility-wcag

181
from majiayu000/claude-skill-registry

Build accessible web applications following WCAG 2.1/2.2 guidelines with proper semantic HTML, ARIA attributes, keyboard navigation, screen reader support, and inclusive design. Use when implementing ARIA labels and roles, ensuring keyboard navigation, supporting screen readers, providing text alternatives for images, managing focus, creating accessible forms, building inclusive UI components, testing with accessibility tools, meeting WCAG compliance levels, or designing for users with disabilities.

accessibility-validation

181
from majiayu000/claude-skill-registry

Validate digital outputs for compliance with accessibility standards (e.g., WCAG, Section 508). Use when reviewing reports, dashboards, documents, or interfaces from pilot projects to identify and remediate accessibility barriers.

accessibility-ux-audit

181
from majiayu000/claude-skill-registry

Audit and enhance accessibility and UX across all pages and components.

accessibility-testing

181
from majiayu000/claude-skill-registry

WCAG 2.2 compliance testing, screen reader validation, and inclusive design verification. Use when ensuring legal compliance (ADA, Section 508), testing for disabilities, or building accessible applications for 1 billion disabled users globally.

accessibility-tester

181
from majiayu000/claude-skill-registry

Expert accessibility tester specializing in WCAG compliance, inclusive design, and universal access. Masters screen reader compatibility, keyboard navigation, and assistive technology integration with focus on creating barrier-free digital experiences.

accessibility-test-axe

181
from majiayu000/claude-skill-registry

Эксперт по a11y тестированию. Используй для axe-core, automated testing и accessibility audits.