From design
Run a WCAG 2.1 AA accessibility audit on a design or page. Trigger with "audit accessibility", "check a11y", "is this accessible?", or when reviewing a design for color contrast, keyboard navigation, touch target size, or screen reader behavior before handoff.
How this skill is triggered — by the user, by Claude, or both
Slash command
/design:accessibility-review <Figma URL, URL, or description><Figma URL, URL, or description>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.
Lark-native execution (depth core: LARK-PATTERNS, LARK-RECIPES, LARK-FUSION). The audit engine stays as-is; only delivery/tracking is Lark. The design source stays in your design tool (Figma external MCP) — pull color values, font sizes, ARIA, touch targets from there. Land the audit where the org will find it (Wiki via
lark_wiki_node_create, P8), log every finding as a row in an a11y-issues Lark Base (system-of-record, P5: readlark_base_search, writelark_base_record_upsert; scaffold the table via base-deploy), file the fixes as Lark Tasks (lark_task_createafter resolving the owner withlark_contact_search, P1,dry_runfirst, P2), and post the summary as an interactive card (lark_im_card_send, P4) — not plain chat text.
Audit a design or page for WCAG 2.1 AA accessibility compliance.
/accessibility-review $ARGUMENTS
Audit for accessibility: @$1
## Accessibility Audit: [Design/Page Name]
**Standard:** WCAG 2.1 AA | **Date:** [Date]
### Summary
**Issues found:** [X] | **Critical:** [X] | **Major:** [X] | **Minor:** [X]
### Findings
#### Perceivable
| # | Issue | WCAG Criterion | Severity | Recommendation |
|---|-------|---------------|----------|----------------|
| 1 | [Issue] | [1.4.3 Contrast] | 🔴 Critical | [Fix] |
#### Operable
| # | Issue | WCAG Criterion | Severity | Recommendation |
|---|-------|---------------|----------|----------------|
| 1 | [Issue] | [2.1.1 Keyboard] | 🟡 Major | [Fix] |
#### Understandable
| # | Issue | WCAG Criterion | Severity | Recommendation |
|---|-------|---------------|----------|----------------|
| 1 | [Issue] | [3.3.2 Labels] | 🟢 Minor | [Fix] |
#### Robust
| # | Issue | WCAG Criterion | Severity | Recommendation |
|---|-------|---------------|----------|----------------|
| 1 | [Issue] | [4.1.2 Name, Role, Value] | 🟡 Major | [Fix] |
### Color Contrast Check
| Element | Foreground | Background | Ratio | Required | Pass? |
|---------|-----------|------------|-------|----------|-------|
| [Body text] | [color] | [color] | [X]:1 | 4.5:1 | ✅/❌ |
### Keyboard Navigation
| Element | Tab Order | Enter/Space | Escape | Arrow Keys |
|---------|-----------|-------------|--------|------------|
| [Element] | [Order] | [Behavior] | [Behavior] | [Behavior] |
### Screen Reader
| Element | Announced As | Issue |
|---------|-------------|-------|
| [Element] | [What SR says] | [Problem if any] |
### Priority Fixes
1. **[Critical fix]** — Affects [who] and blocks [what]
2. **[Major fix]** — Improves [what] for [who]
3. **[Minor fix]** — Nice to have
Design tool (Figma, external — keep as-is): inspect color values, font sizes, touch targets, and component ARIA/keyboard behavior directly from the design spec via the Figma MCP. Lark has no design-canvas equivalent; this layer stays external.
Log findings to a Lark Base (P5 — system-of-record). Read the current a11y backlog with
lark_base_search (pass search_fields for the column(s) to match; lark_base_search does NOT
support jq, so narrow with select_fields/limit. If field names are unknown, discover them via
lark_api GET /open-apis/bitable/v1/apps/{base}/tables/{table}/fields first); write one row per
finding with lark_base_record_upsert
(base_token, table_id, fields:{ Issue, "WCAG Criterion", Severity, Recommendation, Status },
dry_run: true first). If no a11y-issues Base exists yet, delegate to base-deploy to scaffold
it (don't hand-roll schema).
File fixes as Lark Tasks (project tracker). For each Critical/Major finding: resolve the owner
with lark_contact_search(query="<name>") → open_id (P1), then lark_task_create with the WCAG
criterion + severity in the summary (dry_run: true, confirm, commit; P2). Delegate richer task ops
(subtasks, tasklists) to the lark-task skill.
Land the full audit in Wiki (P8). Publish the report as a durable page with
lark_wiki_node_create (then fill via the lark-doc skill / DocxXML) so it lives next to the
team's a11y remediation docs — not as a chat message.
Surface the summary as an interactive card (P4). Post the issue counts + top priority fixes with
lark_im_card_send (print_json: true to validate the YAML spec, then dry_run: true, then send):
a colored header ("X issues, Y critical"), one item row per Critical fix with a side Create task
button, and an actions footer. Card grammar lives in the lark-im skill.
npx claudepluginhub larkcowork/lark-cowork-plugins --plugin designCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.