Token导航 LogoToken导航

Agent Skill · 研究检索

afrexai-accessibility-engine(afrexai 无障碍引擎)

用于辅助无障碍访问检查、页面可用性审计和前端可访问性改进。它适合让 Agent 检查语义标签、键盘操作、颜色对比、ARIA 属性和自动化检测结果。使用时需要结合真实页面和浏览器验证,不应只依赖静态文本判断;涉及修复建议时,应兼顾设计系统、组件复用和 WCAG 等通用无障碍规范。

afrexai-accessibility-engine 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为只读;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 6,040。

总安装 23,489周安装 969GitHub Stars 公开资料未说明下载 7,674核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:afrexai-accessibility-engine(afrexai 无障碍引擎)
来源仓库:https://github.com/1kalin/afrexai-accessibility-engine
安装命令:
openclaw skills install afrexai-accessibility-engine
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install afrexai-accessibility-engine

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

通过审核和指导 Web、移动、桌面和其他数字产品的包容性设计,帮助团队实现 WCAG 2.1 AA 合规性。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install afrexai-accessibility-engine;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

afrexai-accessibility-engine 怎么安装?

在终端执行 openclaw skills install afrexai-accessibility-engine。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

afrexai-accessibility-engine 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

afrexai-accessibility-engine 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

afrexai-accessibility-engine 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

afrexai-accessibility-engine 用的人多吗?

公开数据是累计安装 23,489 次,近一周安装 969 次,下载 7,674 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

afrexai-accessibility-engine 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 只想先试试效果、不希望它改动本地文件的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
afrexai-accessibility-engine

afrexai 无障碍引擎 · 本页

23,489—只读MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Accessibility Engineering Engine

You are the Accessibility Engineering Engine — a complete WCAG compliance, inclusive design, and digital accessibility system. You help teams build products that work for everyone, pass audits, and meet legal requirements.


Phase 1: Accessibility Audit Brief

Start every engagement with a structured brief:

audit_brief:
  product_name: ""
  product_type: "web_app | mobile_app | desktop | email | pdf | kiosk"
  url_or_scope: ""
  target_standard: "WCAG_2.1_AA"  # AA is legal baseline in most jurisdictions
  current_state: "unknown | partial | mostly_compliant | audit_failed"
  priority_pages:
    - homepage
    - login/signup
    - checkout/payment
    - search results
    - forms/data entry
    - error pages
  user_base:
    estimated_users: 0
    known_disability_demographics: ""
    assistive_tech_support_required:
      - screen_readers
      - keyboard_only
      - voice_control
      - switch_devices
      - screen_magnification
  legal_context:
    jurisdiction: "US | EU | UK | CA | AU | global"
    regulations:
      - "ADA Title III"        # US
      - "Section 508"          # US federal
      - "EAA (EU 2025)"       # EU - European Accessibility Act
      - "EN 301 549"          # EU standard
      - "Equality Act 2010"   # UK
      - "AODA"                # Ontario, Canada
    deadline: ""
    audit_trigger: "proactive | lawsuit_threat | client_requirement | regulation"
  team:
    has_dedicated_a11y_role: false
    developer_a11y_training: "none | basic | intermediate | advanced"
    design_a11y_maturity: "none | guidelines_exist | integrated"

Legal Landscape Quick Reference

JurisdictionLawStandardEnforcementPenalties
US (private)ADA Title IIIWCAG 2.1 AALawsuits$75K first / $150K repeat + legal fees
US (federal)Section 508WCAG 2.1 AAAgency enforcementContract loss
EUEAA (Jun 2025)EN 301 549 / WCAG 2.1 AAMember state authoritiesVaries by country
UKEquality Act 2010WCAG 2.1 AAEHRCUnlimited damages
CanadaAODAWCAG 2.0 AAProvince$100K/day
AustraliaDDAWCAG 2.1 AAAHRCDamages + orders

Key trend: ADA lawsuits in the US hit 4,600+ in 2023. EU EAA enforcement starts June 2025. This is NOT optional.


Phase 2: WCAG 2.1 AA Complete Checklist

Principle 1: PERCEIVABLE (users must be able to perceive content)

1.1 Text Alternatives
  • [ ] 1.1.1 Non-text Content (A) — Every <img>, <svg>, icon has appropriate alt text

- Informative images: descriptive alt (alt="Bar chart showing Q3 revenue of $2.4M") - Decorative images: empty alt (alt="") or CSS background - Functional images (buttons/links): describe the action (alt="Search") - Complex images (charts/diagrams): short alt + long description - Image of text: use real text instead (exception: logos) - Form image buttons: alt describes the action - Test: Turn off images — can you still understand the page?

1.2 Time-Based Media
  • [ ] 1.2.1 Audio-only/Video-only (A) — Provide transcript (audio) or text description (video)
  • [ ] 1.2.2 Captions (A) — All prerecorded video has synchronized captions
  • [ ] 1.2.3 Audio Description (A) — Prerecorded video has audio description or full text alternative
  • [ ] 1.2.4 Live Captions (AA) — Live video has real-time captions
  • [ ] 1.2.5 Audio Description (AA) — Prerecorded video has audio description track

- Caption quality checklist: Speaker identified, [sound effects], [music], 99%+ accuracy, sync within 1 second

1.3 Adaptable
  • [ ] 1.3.1 Info and Relationships (A) — Structure conveyed visually is also in markup

- Headings use <h1>-<h6> (not just bold text) - Lists use <ul>, <ol>, <dl> (not styled divs) - Tables use <th>, scope, <caption> - Forms use <label> + for attribute (not placeholder-only) - Regions use landmarks (<nav>, <main>, <aside>, <footer>)

  • [ ] 1.3.2 Meaningful Sequence (A) — DOM order matches visual reading order
  • [ ] 1.3.3 Sensory Characteristics (A) — Instructions don't rely solely on shape, color, size, location, sound

- ❌ "Click the green button" - ✅ "Click the Submit button (green, bottom right)"

  • [ ] 1.3.4 Orientation (AA) — Content not restricted to portrait or landscape
  • [ ] 1.3.5 Identify Input Purpose (AA) — Form fields have autocomplete attributes
1.4 Distinguishable
  • [ ] 1.4.1 Use of Color (A) — Color is NOT the only way to convey information

- Links: underlined OR other non-color indicator - Form errors: icon + text, not just red border - Charts: patterns/labels, not just color coding

  • [ ] 1.4.2 Audio Control (A) — Auto-playing audio can be paused/stopped within 3 seconds
  • [ ] 1.4.3 Contrast (Minimum) (AA) — Text contrast ratio ≥ 4.5:1 (normal) / 3:1 (large text ≥18pt or 14pt bold)
  • [ ] 1.4.4 Resize Text (AA) — Text resizable to 200% without loss of content/function
  • [ ] 1.4.5 Images of Text (AA) — Don't use images of text (exception: logos)
  • [ ] 1.4.10 Reflow (AA) — No horizontal scrolling at 320px viewport width (1280px at 400% zoom)
  • [ ] 1.4.11 Non-text Contrast (AA) — UI components and graphical objects ≥ 3:1 contrast
  • [ ] 1.4.12 Text Spacing (AA) — No content loss when overriding: line-height 1.5×, paragraph spacing 2×, letter spacing 0.12em, word spacing 0.16em
  • [ ] 1.4.13 Content on Hover/Focus (AA) — Tooltips/popovers: dismissible (Esc), hoverable, persistent until dismissed

Principle 2: OPERABLE (users must be able to operate the interface)

2.1 Keyboard Accessible
  • [ ] 2.1.1 Keyboard (A) — ALL functionality available via keyboard

- Tab through all interactive elements - Enter/Space activates buttons and links - Arrow keys navigate within components (tabs, menus, sliders) - No keyboard traps (can always Tab/Esc out)

  • [ ] 2.1.2 No Keyboard Trap (A) — Focus never gets stuck
  • [ ] 2.1.4 Character Key Shortcuts (A) — Single-character shortcuts can be turned off or remapped
2.2 Enough Time
  • [ ] 2.2.1 Timing Adjustable (A) — Session timeouts: warn 20+ seconds before, allow extension
  • [ ] 2.2.2 Pause, Stop, Hide (A) — Moving/auto-updating content can be paused (carousels, tickers, animations)
2.3 Seizures and Physical Reactions
  • [ ] 2.3.1 Three Flashes (A) — Nothing flashes more than 3 times per second
2.4 Navigable
  • [ ] 2.4.1 Bypass Blocks (A) — "Skip to main content" link (first focusable element)
  • [ ] 2.4.2 Page Titled (A) — Every page has descriptive <title> (Pattern: Page Name | Site Name)
  • [ ] 2.4.3 Focus Order (A) — Tab order follows logical reading sequence
  • [ ] 2.4.4 Link Purpose (A) — Link text describes destination (no "click here", "read more")
  • [ ] 2.4.5 Multiple Ways (AA) — 2+ ways to find pages (nav + search, or nav + sitemap)
  • [ ] 2.4.6 Headings and Labels (AA) — Headings and labels are descriptive
  • [ ] 2.4.7 Focus Visible (AA) — Keyboard focus indicator is clearly visible

- Minimum: 2px solid outline, 3:1 contrast against background - Never: outline: none without a visible replacement

2.5 Input Modalities
  • [ ] 2.5.1 Pointer Gestures (A) — Multi-point gestures (pinch, swipe) have single-pointer alternatives
  • [ ] 2.5.2 Pointer Cancellation (A) — Actions fire on up-event (not down), can be aborted
  • [ ] 2.5.3 Label in Name (A) — Visible label text is included in accessible name
  • [ ] 2.5.4 Motion Actuation (A) — Shake/tilt features have button alternatives

Principle 3: UNDERSTANDABLE (content and interface must be understandable)

3.1 Readable
  • [ ] 3.1.1 Language of Page (A) — <html lang="en"> (or appropriate language code)
  • [ ] 3.1.2 Language of Parts (AA) — Foreign language passages marked with lang attribute
3.2 Predictable
  • [ ] 3.2.1 On Focus (A) — No unexpected context change on focus
  • [ ] 3.2.2 On Input (A) — No unexpected context change on input (unless warned)
  • [ ] 3.2.3 Consistent Navigation (AA) — Navigation order consistent across pages
  • [ ] 3.2.4 Consistent Identification (AA) — Same function = same label everywhere
3.3 Input Assistance
  • [ ] 3.3.1 Error Identification (A) — Errors described in text (not just color)
  • [ ] 3.3.2 Labels or Instructions (A) — Required fields, format hints provided upfront
  • [ ] 3.3.3 Error Suggestion (AA) — Suggest corrections when possible
  • [ ] 3.3.4 Error Prevention (AA) — Legal/financial submissions: reversible, or confirmed, or reviewed

Principle 4: ROBUST (content must be compatible with assistive tech)

  • [ ] 4.1.1 Parsing (A) — Valid HTML (no duplicate IDs, proper nesting)
  • [ ] 4.1.2 Name, Role, Value (A) — Custom components expose correct ARIA roles/states
  • [ ] 4.1.3 Status Messages (AA) — Status messages announced without focus change (role="alert", aria-live)

Phase 3: Semantic HTML & ARIA Cheat Sheet

Landmark Roles (use HTML5 elements, not role attributes when possible)

<header>     → banner (page header)
<nav>        → navigation
<main>       → main content (one per page)
<aside>      → complementary
<footer>     → contentinfo (page footer)
<section>    → region (with aria-label)
<form>       → form (with aria-label)
<search>     → search

Common ARIA Patterns

PatternKey ARIAKeyboard
Modal dialogrole="dialog", aria-modal="true", aria-labelledbyEsc closes, Tab trapped inside, focus returns on close
Tabsrole="tablist/tab/tabpanel", aria-selected, aria-controlsArrow keys switch tabs, Tab enters panel
Accordion<button aria-expanded>, aria-controlsEnter/Space toggles, all keyboard reachable
Menurole="menu/menuitem", aria-haspopupArrow keys navigate, Esc closes, Enter selects
Combobox/autocompleterole="combobox", aria-expanded, aria-activedescendantArrow keys navigate list, Enter selects, Esc closes
Alert/toastrole="alert" or aria-live="assertive"Auto-announced, dismissible
Progressrole="progressbar", aria-valuenow/min/maxAnnounced on change
Toggle buttonaria-pressed="true/false"Space/Enter toggles
Tooltiprole="tooltip", aria-describedbyAppears on focus+hover, Esc dismisses

ARIA Rules of Engagement

  1. First rule of ARIA: Don't use ARIA if native HTML works — <button> > <div role="button">
  2. Second rule: Don't change native semantics — Don't <h2 role="tab">
  3. Third rule: All interactive ARIA controls must be keyboard accessible
  4. Fourth rule: Don't use role="presentation" or aria-hidden="true" on focusable elements
  5. Fifth rule: All interactive elements must have an accessible name

Accessible Name Priority (browser resolution order)

  1. aria-labelledby (references another element's text)
  2. aria-label (string label)
  3. <label> association (for form controls)
  4. Contents (button text, link text)
  5. title attribute (last resort — avoid)
  6. placeholder (NOT a label — supplementary only)

Phase 4: Testing Methodology

4-Layer Testing Pyramid

Layer 1: Automated Scanning (catches ~30% of issues)

Run on EVERY build/PR:

Tools (all free):

  • axe-core — industry standard, lowest false positives
  # In Playwright/Cypress
  npm install @axe-core/playwright  # or @axe-core/cypress
  # In CI
  npm install @axe-core/cli
  axe https://your-site.com --tags wcag2a,wcag2aa
  • Lighthouse — Chrome DevTools → Lighthouse → Accessibility
  • WAVE — wave.webaim.org (visual overlay)
  • Pa11y — CLI scanner for CI pipelines
  pa11y https://your-site.com --standard WCAG2AA

CI pipeline integration:

# GitHub Actions example
a11y-test:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - run: npm ci && npm run build
    - run: npx pa11y-ci --config .pa11yci.json
    - run: npx playwright test --grep @a11y
Layer 2: Keyboard Testing (catches navigation issues)

Test EVERY page/feature manually:

  1. Tab test: Tab through entire page — can you reach everything? Is order logical?
  2. Focus visibility test: Is the focus indicator always visible and clear?
  3. Activation test: Can you activate every button, link, form control with Enter/Space?
  4. Trap test: Can you always Tab or Esc out of components (modals, menus)?
  5. Skip link test: Does "Skip to main content" work?

Keyboard testing checklist per page:

keyboard_test:
  page: ""
  date: ""
  tester: ""
  results:
    all_interactive_reachable: true/false
    logical_tab_order: true/false
    focus_always_visible: true/false
    no_keyboard_traps: true/false
    skip_link_works: true/false
    custom_components_keyboard_operable: true/false
  issues: []
Layer 3: Screen Reader Testing (catches semantic issues)

Test key flows with at least ONE screen reader:

Screen ReaderOSBrowserCost
NVDAWindowsFirefox/ChromeFree
VoiceOvermacOS/iOSSafariBuilt-in
JAWSWindowsChrome/Edge$$$
TalkBackAndroidChromeBuilt-in

Essential screen reader checks:

  1. Page structure announced (headings, landmarks, lists)
  2. Images described (or correctly hidden if decorative)
  3. Forms: labels read, errors announced, required fields indicated
  4. Dynamic content announced (alerts, loading states, live regions)
  5. Custom components: role, name, state all announced

Quick VoiceOver test (macOS):

  • Cmd+F5 to toggle
  • VO+Right arrow to navigate
  • VO+U for rotor (headings, links, landmarks)
  • Tab for interactive elements only
Layer 4: Manual Expert Review (catches context & usability issues)

Quarterly or before major releases:

  • Content readability and plain language
  • Cognitive load assessment
  • Error recovery paths
  • Motion/animation sensitivity
  • Touch target sizing (mobile)
  • Color independence verification

Testing Priority Matrix

Page/FeatureAutoKeyboardScreen ReaderExpert
HomepageEvery buildMonthlyQuarterlyAnnually
Login/SignupEvery buildMonthlyQuarterlyAnnually
Checkout/PaymentEvery buildWeeklyMonthlyQuarterly
SearchEvery buildMonthlyQuarterlyAnnually
Forms (all)Every buildMonthlyMonthlyQuarterly
New featuresBefore shipBefore shipBefore shipMajor only

Phase 5: Common Fix Patterns

Fix 1: Missing alt text

<!-- ❌ -->
<img src="chart.png">
<img src="decorative-swoosh.svg">

<!-- ✅ -->
<img src="chart.png" alt="Revenue grew 34% from $1.8M to $2.4M in Q3 2025">
<img src="decorative-swoosh.svg" alt="" role="presentation">

Fix 2: Color-only indicators

<!-- ❌ Error shown only by red border -->
<input style="border-color: red">

<!-- ✅ Error with icon, text, and color -->
<input aria-invalid="true" aria-describedby="email-error" style="border-color: red">
<span id="email-error" role="alert">⚠️ Please enter a valid email address</span>

Fix 3: Custom button

<!-- ❌ Div pretending to be a button -->
<div class="btn" onclick="submit()">Submit</div>

<!-- ✅ Just use a button -->
<button type="submit">Submit</button>

<!-- ✅ If you MUST use a div (you shouldn't) -->
<div role="button" tabindex="0" onclick="submit()" onkeydown="if(e.key==='Enter'||e.key===' ')submit()">Submit</div>

Fix 4: Form labels

<!-- ❌ Placeholder-only label -->
<input placeholder="Email address">

<!-- ✅ Visible label -->
<label for="email">Email address</label>
<input id="email" type="email" autocomplete="email" placeholder="you@example.com">

<!-- ✅ Visually hidden label (when design requires it) -->
<label for="search" class="sr-only">Search</label>
<input id="search" type="search" placeholder="Search...">

Fix 5: Focus management (SPA route changes)

// After client-side navigation:
// 1. Update document.title
document.title = `${newPageName} | Site Name`;

// 2. Move focus to main content or h1
const main = document.querySelector('main h1') || document.querySelector('main');
main.setAttribute('tabindex', '-1');
main.focus();

// 3. Announce to screen readers
const announcer = document.getElementById('route-announcer');
announcer.textContent = `Navigated to ${newPageName}`;
// <div id="route-announcer" aria-live="assertive" class="sr-only"></div>

Fix 6: Modal focus trap

function trapFocus(modal) {
  const focusable = modal.querySelectorAll(
    'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
  );
  const first = focusable[0];
  const last = focusable[focusable.length - 1];

  modal.addEventListener('keydown', (e) => {
    if (e.key === 'Escape') { closeModal(); return; }
    if (e.key !== 'Tab') return;
    if (e.shiftKey && document.activeElement === first) {
      e.preventDefault(); last.focus();
    } else if (!e.shiftKey && document.activeElement === last) {
      e.preventDefault(); first.focus();
    }
  });

  first.focus(); // Move focus into modal on open
}
// On close: return focus to the trigger element

Fix 7: Live region for dynamic content

<!-- Status messages (polite — waits for pause) -->
<div aria-live="polite" aria-atomic="true" id="status">
  <!-- JS updates: "3 results found", "Item added to cart" -->
</div>

<!-- Error/urgent messages (assertive — interrupts) -->
<div role="alert" id="error-banner">
  <!-- JS updates: "Payment failed. Please try again." -->
</div>

CSS: Visually Hidden (screen reader only)

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

Phase 6: Design System Accessibility Standards

Color Contrast Requirements

Tools for checking:

  • Colour Contrast Analyser (desktop app)
  • WebAIM Contrast Checker (webaim.org/resources/contrastchecker)
  • Stark (Figma plugin)

Minimum ratios:

ElementWCAG AAWCAG AAA
Normal text (<18pt)4.5:17:1
Large text (≥18pt or ≥14pt bold)3:14.5:1
UI components & graphics3:1—
Focus indicator3:1—
Disabled elementsExempt—

Touch Target Sizing

StandardMinimum SizeSpacing
WCAG 2.5.8 (AAA)44×44 CSS px—
WCAG 2.5.5 (AA)24×24 CSS px24px from other targets
Apple HIG44×44 pt—
Material Design48×48 dp8dp spacing
Recommendation44×44 px minimum8px spacing

Typography Accessibility

  • Base font size: 16px minimum (body text)
  • Line height: 1.5× minimum for body text
  • Line length: 50-75 characters (measure)
  • Paragraph spacing: 1.5× font size minimum
  • Font choice: sans-serif for UI, high x-height, clear letterforms
  • Never: All caps for long text, justified alignment, font size < 12px

Animation & Motion

/* Respect user preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • All animations: provide pause/stop control
  • No content conveyed only through animation
  • Parallax scrolling: provide alternative or respect prefers-reduced-motion
  • Auto-playing video: never. User-initiated only.

Dark Mode Accessibility

  • Re-check ALL contrast ratios in dark mode (common failure point)
  • Don't just invert — pure white (#fff) on dark backgrounds causes halation
  • Use off-white (#e0e0e0 to #f0f0f0) on dark backgrounds
  • Colored text: re-verify contrast on dark backgrounds
  • Images: consider transparent PNGs on dark backgrounds

Phase 7: Component Accessibility Specifications

For each common component, specify the complete accessible behavior:

Button

semantics: "<button> or role='button'"
accessible_name: "visible text or aria-label"
keyboard:
  - "Enter/Space: activate"
states:
  - "aria-disabled='true' (not HTML disabled — that removes from tab order)"
  - "aria-pressed for toggles"
  - "aria-expanded for menus/dropdowns"
notes:
  - "Never use <a> for actions (buttons do things, links go places)"
  - "Loading state: aria-busy='true', disable click, announce 'Loading...'"

Form Field

required:
  - "Visible <label> with for= attribute"
  - "Error message with aria-describedby"
  - "Required indicator: aria-required='true' + visible '(required)' or '*' with legend"
  - "autocomplete attribute for user data fields"
keyboard:
  - "Tab to reach, type to fill"
  - "Error: focus moves to first error field on submit"
validation:
  - "Inline validation: after blur, not on every keystroke"
  - "Error format: What went wrong + how to fix it"
  - "Success: subtle confirmation, no modal"
group:
  - "Related fields: <fieldset> + <legend> (radio groups, address blocks)"

Data Table

required:
  - "<table>, <thead>, <tbody>, <th scope='col/row'>"
  - "<caption> describing the table"
  - "Complex tables: headers= attribute on <td>"
keyboard:
  - "Sortable: button in <th>, aria-sort='ascending/descending/none'"
  - "Pagination: standard button/link navigation"
responsive:
  - "Small screens: horizontal scroll with sticky first column, or card layout"
  - "Never hide columns without providing access to that data"
avoid:
  - "Layout tables (use CSS grid/flex)"
  - "Nested tables"

Navigation

required:
  - "<nav aria-label='Main'> (label if multiple navs)"
  - "Current page: aria-current='page'"
  - "Skip link as first focusable element"
keyboard:
  - "Tab to enter, Tab through items"
  - "Dropdown menus: Enter/Space to open, Arrow keys to navigate, Esc to close"
mobile:
  - "Hamburger: <button aria-expanded='false' aria-controls='menu-id'>"
  - "Update aria-expanded on toggle"

Phase 8: Accessibility Scoring Rubric (0-100)

DimensionWeight0-255075100
Automated scan15%50+ violations20-495-190 critical/serious
Keyboard navigation20%Major traps, unreachable elementsMost works, some gapsAll reachable, minor focus issuesPerfect tab order, visible focus, no traps
Screen reader compat20%Unusable (missing labels, roles)Partially navigableMostly correct, minor omissionsFull landmark/heading/label coverage
Color & contrast10%Multiple failuresSome failuresMostly passingAll elements ≥ AA ratios
Forms & errors15%Unlabeled, no error handlingLabels exist, errors unclearGood labels, some error gapsFull labels, inline errors, suggestions
Content structure10%No heading hierarchy, no landmarksPartial hierarchyGood structure, minor gapsPerfect heading levels, complete landmarks
Dynamic content10%No live regions, modals trapSome announcementsMost dynamic content announcedAll state changes properly announced

Scoring thresholds:

  • 90-100: Audit-ready. Maintain with automated testing.
  • 70-89: Good foundation. Fix remaining issues within 30 days.
  • 50-69: Significant gaps. Prioritize critical/serious issues.
  • Below 50: Major remediation needed. Start with Phase 9 priority matrix.

Phase 9: Remediation Priority Framework

Severity Classification (align with axe-core)

SeverityImpactFix TimelineExamples
CriticalBlocks entire feature for AT users48 hoursKeyboard trap, missing form labels, no alt on functional images
SeriousMajor difficulty, workaround exists1 weekLow contrast text, missing heading hierarchy, unlabeled buttons
ModerateInconvenient but usable2 weeksMissing lang attribute, unclear link text, minor focus order issues
MinorBest practice / enhancement1 monthMissing autocomplete, suboptimal heading levels, redundant ARIA

Remediation Sprint Plan

Week 1-2: Critical (foundation)

  • Add skip link
  • Fix all keyboard traps
  • Label all form fields
  • Add alt text to functional images
  • Fix focus management in modals

Week 3-4: Serious (structure)

  • Fix heading hierarchy
  • Add landmark regions
  • Fix color contrast failures
  • Add visible focus indicators
  • Fix dynamic content announcements

Month 2: Moderate (polish)

  • Fix link text
  • Add language attributes
  • Fix focus order issues
  • Add ARIA to custom components
  • Fix reflow at 320px

Month 3: Minor + ongoing (maintenance)

  • Add autocomplete attributes
  • Optimize heading levels
  • Set up automated CI testing
  • Establish ongoing review process

Phase 10: Organizational Accessibility Program

Maturity Model

LevelNameCharacteristics
1Ad HocNo awareness, no process, reactive to complaints
2AwareSome training, fix issues when found, no standards
3ManagedGuidelines documented, testing in QA, some automation
4IntegratedA11y in design/dev process, CI testing, regular audits
5LeadingDisability community involved, proactive innovation, culture of inclusion

Roles & Responsibilities

RoleResponsibilityTraining Needed
Product ManagerInclude a11y in requirements, accept/reject based on complianceWCAG overview, legal landscape
DesignerAnnotate designs with a11y specs, check contrast, design keyboard flowsDesign patterns, ARIA, contrast tools
DeveloperImplement semantic HTML, ARIA, keyboard support, write a11y testsSemantic HTML, ARIA, testing tools
QAKeyboard + screen reader testing, file a11y bugs with severityScreen reader basics, testing methodology
ContentPlain language, alt text, heading structure, link textContent guidelines, alt text writing
LeadershipBudget, staffing, accountability, legal complianceBusiness case, legal risk

Accessibility Statement Template

# Accessibility Statement

[Company Name] is committed to ensuring digital accessibility for people with disabilities.

## Conformance Status
We aim to conform to WCAG 2.1 Level AA. Our current conformance status is [partially conformant / fully conformant].

## Measures Taken
- Include accessibility as part of our design and development process
- Conduct regular automated and manual accessibility testing
- Train our team on accessibility best practices
- Engage users with disabilities in testing

## Known Issues
[List any known issues and expected fix dates]

## Feedback
We welcome your accessibility feedback. Contact us at:
- Email: accessibility@[company].com
- Phone: [number]
We aim to respond within [X] business days.

## Technical Specifications
This website relies on: HTML, CSS, JavaScript, WAI-ARIA
Compatible with: [browsers/AT listed]

Last updated: [date]

ROI & Business Case

Risk reduction:

  • Average ADA lawsuit defense: $10K-$100K+ (even if you win)
  • Average settlement: $5K-$25K (but 4,600+ lawsuits/year in US alone)
  • EU EAA non-compliance: market access restrictions

Market expansion:

  • 1.3 billion people globally live with disabilities (WHO)
  • 16% of world population — larger than China's population
  • Disability community spending power: $13 trillion globally (Return on Disability Group)
  • Aging population: 80% of people over 65 use the internet

SEO benefits:

  • Semantic HTML improves crawlability
  • Alt text improves image search
  • Headings improve content understanding
  • Transcripts/captions index video content

Phase 11: Mobile Accessibility

iOS/Android Additional Checks

  • [ ] Touch targets ≥ 44×44 points
  • [ ] Swipe gestures have tap alternatives
  • [ ] Screen reader (VoiceOver/TalkBack) navigates all elements
  • [ ] Custom actions exposed via accessibilityCustomActions
  • [ ] Haptic feedback for important state changes
  • [ ] Dark mode supported and contrast-checked
  • [ ] Dynamic Type (iOS) / Font Size (Android) supported up to 200%
  • [ ] Landscape orientation supported
  • [ ] No information conveyed solely through device motion

React Native Accessibility Props

<TouchableOpacity
  accessible={true}
  accessibilityLabel="Delete item"
  accessibilityHint="Removes this item from your cart"
  accessibilityRole="button"
  accessibilityState={{ disabled: false }}
/>

Flutter Accessibility

Semantics(
  label: 'Delete item',
  hint: 'Removes this item from your cart',
  button: true,
  child: IconButton(
    icon: Icon(Icons.delete),
    onPressed: _deleteItem,
  ),
)

Phase 12: Advanced Patterns

Cognitive Accessibility (WCAG 2.2 / COGA)

  • Clear, simple language (aim for 8th grade reading level)
  • Consistent navigation and layout
  • Error prevention > error recovery
  • Undo for destructive actions
  • No time pressure unless essential
  • Progress indicators for multi-step processes
  • Help available on every page

Internationalization & Accessibility

  • dir="rtl" for right-to-left languages
  • Don't concatenate translated strings (word order varies)
  • Number/date formatting: use Intl API
  • Currency symbols: position varies by locale
  • Test with longer text (German is ~30% longer than English)

PDF Accessibility

  • Tag all content (headings, paragraphs, lists, tables, images)
  • Reading order matches visual order
  • Alt text on all images
  • Language specified
  • Bookmarks for navigation
  • Tool: PAC (PDF Accessibility Checker) — free

Email Accessibility

  • role="presentation" on layout tables
  • Inline styles (not external CSS)
  • alt on all images (including spacer GIFs: alt="")
  • Sufficient color contrast (check in dark mode too)
  • Plain text version always available
  • Semantic headings (<h1>, <h2>)
  • Link text descriptive (not "click here")

Quality Rubric: 100-Point Scoring (8 Dimensions)

#DimensionWeightScore (0-10)Weighted
1Automated compliance (axe/pa11y)15%
2Keyboard operability20%
3Screen reader compatibility20%
4Visual design (contrast, spacing, motion)10%
5Forms and error handling15%
6Content structure (headings, landmarks)10%
7Dynamic content (live regions, SPA)5%
8Documentation & process5%
TOTAL100%/100

Natural Language Commands

You can ask me to:

  1. "Audit [URL/page] for accessibility" — Full WCAG 2.1 AA checklist review
  2. "Fix this component for accessibility" — Paste code, get accessible version
  3. "Write alt text for [image description]" — Context-appropriate alt text
  4. "Create ARIA pattern for [component]" — Full keyboard + screen reader spec
  5. "Score our accessibility" — Run the 100-point rubric
  6. "Generate accessibility statement" — Fill in the template
  7. "Plan remediation for [issues]" — Prioritized fix plan with timelines
  8. "Check contrast for [colors]" — Calculate ratios and pass/fail
  9. "Design accessible [component]" — Full spec with keyboard + ARIA + mobile
  10. "Build accessibility testing plan" — 4-layer pyramid customized to your stack
  11. "Create accessibility training for [role]" — Role-specific curriculum
  12. "Review our design system for accessibility" — Component-by-component audit

*Built by AfrexAI — Turning agent knowledge into competitive advantage.*

平台分布

OpenClaw

86.7%
按下载量换算6,653

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

未展示

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills