accessibility-design-checklist

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

16 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/diegosouzapw/awesome-omni-skill/main/skills/design/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

ai-product-evaluation-design

16
from diegosouzapw/awesome-omni-skill

Transition from traditional PRDs to "Evals" (evaluations) to guide AI model behavior. Use this skill when launching new AI features, debugging unpredictable model outputs, or moving from a prompted prototype to a production-ready agent.

ai-npc-dialogue-designer

16
from diegosouzapw/awesome-omni-skill

Design AI-powered immersive NPC systems for escape room games using proven actor techniques from Korean immersive escape rooms (Danpyeonsun, Ledasquare). Implements adaptive dialogue, emotional simulation, player profiling, and trust dynamics using Gemini/GPT-4. Creates character profiles with lying probabilities, improvisational responses, and cost-optimized streaming. Use for murder mystery NPCs, suspect interrogation, or dynamic character interactions.

ai-eval-design-and-iteration

16
from diegosouzapw/awesome-omni-skill

Develop "quizzes" (evals) to measure model performance on specific tasks. Use these benchmarks to guide fine-tuning, determine product UX patterns, and track performance improvements over time. Use this when launching a new AI feature, switching between model versions, or optimizing for high-stakes accuracy.

ahu-design

16
from diegosouzapw/awesome-omni-skill

Air Handler Configuration & Sizing Agent

agent-ui-designer

16
from diegosouzapw/awesome-omni-skill

Expert visual designer specializing in creating intuitive, beautiful, and accessible user interfaces. Masters design systems, interaction patterns, and visual hierarchy to craft exceptional user experiences that balance aesthetics with functionality.

advanced-ssr-cache-design

16
from diegosouzapw/awesome-omni-skill

Engineer SSR caching strategies that preserve correctness under concurrent updates and streaming.

admin-design

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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.

accessibility-testing

16
from diegosouzapw/awesome-omni-skill

Guide for conducting comprehensive accessibility audits of code to identify WCAG compliance issues and barriers to inclusive design. This skill should be used when reviewing accessibility, ARIA implementation, keyboard navigation, or screen reader compatibility.

accessibility

16
from diegosouzapw/awesome-omni-skill

Quality assurance for web accessibility and usability, particularly for users with disabilities. Use when involved in any web project.

accessibility-ux-audit

16
from diegosouzapw/awesome-omni-skill

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

accessibility-rules

16
from diegosouzapw/awesome-omni-skill

Concise accessibility checklist and practices for components in the repository. Use when implementing UI to ensure keyboard, screen reader, and focus semantics.