From 517527279d5bd9a24e85de86d7991f66b3ac73cc Mon Sep 17 00:00:00 2001 From: viratatwebflow Date: Thu, 22 Jan 2026 00:28:17 +0530 Subject: [PATCH 1/3] update: add accessibility-audit skill to documentation - Introduced the **accessibility-audit** skill in AGENTS.md and README.md, detailing its purpose, analysis capabilities, output, and safety measures for ensuring WCAG 2.1 compliance. --- .gitignore | 1 + AGENTS.md | 9 + README.md | 1 + .../skills/accessibility-audit/SKILL.md | 688 ++++++++++++++++++ 4 files changed, 699 insertions(+) create mode 100644 plugins/webflow-skills/skills/accessibility-audit/SKILL.md diff --git a/.gitignore b/.gitignore index 888de9e..2dec9e5 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ tmp/ temp/ *.tmp +.mcp.json \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 61eb65d..9f6b1c9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -128,6 +128,15 @@ Solution: - Output: Link health score, automatic fixes (HTTP→HTTPS), manual review items - Safety: Preview + granular approval for fixes +- **accessibility-audit**: Comprehensive WCAG 2.1 accessibility audit for pages + - Use when: Preparing for launch, ensuring accessibility compliance, improving user experience + - Analyzes: Buttons, forms, links, focus states, headings, keyboard navigation, ARIA attributes + - Detects: Missing labels, non-semantic elements, focus issues, heading hierarchy problems, touch target sizes + - Output: Accessibility score (0-100), categorized issues (critical/serious/moderate), specific fixes + - Requires: Webflow Designer connection + - Safety: Preview + granular approval for fixes + - Note: Excludes image alt text (covered by asset-audit skill) + ### Design & Naming Systems - **flowkit-naming**: Apply Webflow's official FlowKit CSS naming system diff --git a/README.md b/README.md index 4a80adf..5ac232f 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Copy the `skills/` directory to your agent's skills location, or reference the ` - **site-audit** - Comprehensive health check with scoring (0-100) and prioritized recommendations - **asset-audit** - Identify optimization opportunities for images and files - **link-checker** - Scan and fix broken/insecure links across pages and CMS content +- **accessibility-audit** - WCAG 2.1 compliance check for pages with detailed reports and fixes ### Publishing & Code - **safe-publish** - Preview → Confirm → Publish workflow with verification diff --git a/plugins/webflow-skills/skills/accessibility-audit/SKILL.md b/plugins/webflow-skills/skills/accessibility-audit/SKILL.md new file mode 100644 index 0000000..1b3a139 --- /dev/null +++ b/plugins/webflow-skills/skills/accessibility-audit/SKILL.md @@ -0,0 +1,688 @@ +--- +name: accessibility-audit +description: Run comprehensive accessibility audit (WCAG 2.1) on Webflow pages - checks buttons, forms, links, focus states, headings, keyboard navigation, and generates detailed reports with fixes. Requires Webflow Designer connection. Excludes image alt text (covered by asset-audit skill). +--- + +# Accessibility Audit + +Comprehensive WCAG 2.1 accessibility audit for Webflow pages with detailed issue detection and actionable fixes. + +## Important Note + +**ALWAYS use Webflow MCP tools for all operations:** +- Use Webflow MCP's `webflow_guide_tool` to get best practices before starting +- Use Webflow MCP's `data_sites_tool` with action `list_sites` to identify available sites +- Use Webflow MCP's `data_sites_tool` with action `get_site` to retrieve site details +- Use Webflow MCP's `data_pages_tool` with action `list_pages` to get all pages +- Use Webflow MCP's `element_tool` with action `get_all_elements` to get detailed element information (requires Designer) +- Use Webflow MCP's `element_tool` with action `add_or_update_attribute` to fix accessibility issues (requires Designer) +- Use Webflow MCP's `element_snapshot_tool` to get visual previews of elements +- DO NOT use any other tools or methods for Webflow operations +- All tool calls must include the required `context` parameter (15-25 words, third-person perspective) +- **Designer connection required** - This skill needs Designer to access element attributes and styles + +## Instructions + +### Phase 1: Site & Page Selection +1. **Get site information**: Use Webflow MCP's `data_sites_tool` with action `list_sites` to identify target site +2. **Ask for page selection**: + - If user provides page ID, use it directly + - Otherwise, use `data_pages_tool` with action `list_pages` to show available pages + - Let user select which page(s) to audit +3. **Confirm audit scope**: Ask user what to check: + - Full audit (all accessibility checks) + - Critical issues only (WCAG Level A) + - Specific categories (forms, buttons, navigation, etc.) + +### Phase 2: Element Extraction & Analysis +4. **Ensure Designer is connected**: Before proceeding, verify Webflow Designer is open and connected + - If not connected, instruct user to open Designer and connect + - This is required to access element attributes and styles +5. **Switch to target page**: Use `de_page_tool` with action `switch_page` to navigate to the page being audited +6. **Extract all elements**: Use `element_tool` with action `get_all_elements` for detailed analysis + - Set `include_style_properties: true` to check focus styles + - Set `include_all_breakpoint_styles: false` to minimize data +7. **Parse element data**: Identify interactive and content elements: + - Buttons (Button, LinkBlock with button role) + - Links (TextLink, Link, LinkBlock) + - Form inputs (Input, Select, Textarea) + - Headings (Heading elements with levels) + - Interactive divs/spans (check for onClick or interactive roles) + - Images (Image elements) - **SKIP for this audit** +8. **Extract attributes for each element**: + - ARIA attributes (aria-label, aria-describedby, role, tabIndex) + - DOM attributes (id, domId, href, type, placeholder) + - Text content + - Style properties (outline, border for focus states) + - Element metadata (canHaveAttributes, tag name) + +### Phase 3: Accessibility Checks + +#### Critical Issues (Must Fix - WCAG Level A) +9. **Icon-only buttons without labels** (WCAG 4.1.2) + - Find: Button elements with no text content + - Check: Missing `aria-label` or `aria-labelledby` + - Impact: Screen readers cannot identify button purpose + - Fix: Add `aria-label` attribute with descriptive text + +10. **Form inputs without labels** (WCAG 1.3.1) + - Find: Input, Select, Textarea elements + - Check: Missing associated label or `aria-label` + - Impact: Users don't know what input is for + - Fix: Add `aria-label` or associate with `