accessibility-audit

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).

By webflow · 495 installs

npx skills add webflow/webflow-skills --skill accessibility-audit

Source repository · Upstream listing

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 and their page IDs Use Webflow MCP's data element tool with action get all elements (passing the page ID directly) to get detailed element information Use Webflow MCP's data element tool with action set attributes to fix accessibility issues Use Webflow MCP's element snapshot tool to get visual previews of elements — this is a Designer tool and requires a Designer connection if used 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) No Designer connection is required for the audit or fixes. data element tool operates headlessly on any page ID from list pages . Designer is only needed if you choose to use element snapshot tool for optional visual previews. 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. Extract all elements : Use data element tool with action get all elements , passing the target page's ID from Phase 1, for detailed analysis — no Designer connection needed Set include style properties: true to check focus styles Set include all breakpoint styles: false to minimize data 5. 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 6. 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) 7. 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 8. 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 <label using id 9. Non semantic click handlers (WCAG 2.1.1) Find: Div or Span elements (identified by element type) Check: Interactive behavior without proper role/keyboard support Impact: Not keyboard accessible, screen readers miss interactivity Fix: Add role="button" , tabIndex="0" , suggest using real <button 10. Links without destination (WCAG 2.1.1) Find: Link elements with no href attribute Check: Links that only use onClick without href Impact: Not keyboard accessible, breaks browser features Fix: Add proper href or convert to button Serious Issues (Should Fix WCAG Level AA) 11. Focus outline removed without replacement (WCAG 2.4.7) Find: Elements with outline: none style Check: No visible alternative focus indicator Impact: Keyboard users can't see focus Fix: Add visible focus style (border, box shadow, background change) 12. Missing keyboard handlers (WCAG 2.1.1) Find: Elements with onClick handlers Check: Missing onKeyDown for Enter/Space keys Impact: Not usable with keyboard alone Fix: Add keyboard event handlers 13. Touch target too small (WCAG 2.5.5) Find: Clickable elements (buttons, links) Check: Width or height < 44px Impact: Hard to tap on mobile devices Fix: Increase padding or min width/min height to 44px Moderate Issues (Consider Fixing) 14. Heading hierarchy problems (WCAG 1.3.1) Find: Heading elements (h1 h6) Check: Skipped levels (h1 → h3, skipping h2) Impact: Confusing document structure Fix: Use proper sequential heading levels 15. Positive tabIndex (WCAG 2.4.3) Find: Elements with tabIndex 0 Check: Disrupts natural tab order Impact: Confusing keyboard navigation Fix: Use tabIndex="0" or " 1" only, let natural DOM order work 16. Role without required attributes (WCAG 4.1.2) Find: Elements with ARIA roles Check: Missing required ARIA attributes (e.g., role="button" without tabIndex) Impact: Incomplete accessibility semantics Fix: Add required attributes for role Phase 4: Issue Categorization & Scoring 17. Categorize all findings : Critical: Must fix (blocks access) Serious: Should fix (significantly impacts usability) Moderate: Consider fixing (improves experience) 18. Calculate accessibility score (0 100): Start at 100 Critical issue: 10 points each Serious issue: 5 points each Moderate issue: 2 points each Minimum score: 0 19. Generate severity summary : Total issues found Breakdown by severity Most common issue types Pages/sections most affected Phase 5: Report Generation 20. Create detailed report with specific format: 21. Provide actionable insights : Prioritized fix list (critical first) Quick wins (easy fixes with big impact) Design pattern recommendations Resources for learning more Phase 6: Fix Suggestions & Approval (Optional) 22. Offer to fix issues automatically : Fixes don't require Designer, so offer auto fixes directly 23. Show preview of fixes : 24. Apply approved fixes : Use data element tool with action set attributes Process in batches Show progress for large fix sets Report success/failure for each 25. Generate post fix report : Issues fixed: X Issues remaining: Y New accessibility score: XX/100 (improved from YY/100) Phase 7: Export & Resources (Optional) 26. Offer export formats : Markdown (readable documentation) JSON (machine readable for tracking) CSV (spreadsheet for team review) 27. Provide resources : WCAG 2.1 quick reference links Webflow accessibility best practices Recommended testing tools (browser extensions, screen readers) Important Considerations What This Skill Checks ✅ Button accessibility (labels, roles) ✅ Form input labels and associations ✅ Link semantics and keyboard access ✅ Focus visibility and keyboard navigation ✅ Heading hierarchy and structure ✅ ARIA roles and attributes ✅ Touch target sizes ✅ Interactive element semantics What This Skill Does NOT Check ❌ Image alt text (use asset audit skill instead) ❌ Color contrast ratios (requires visual analysis) ❌ Animation/motion preferences ❌ Screen reader testing (needs manual verification) ❌ Content readability (language level, clarity) Limitations Cannot detect visual only issues (color contrast, small text) Cannot test actual screen reader behavior Cannot validate content quality or clarity Relies on element attributes and structure only Examples Example 1: Full Page Audit User prompt: Step 1: Site & Page Selection User response: 1 Step 2: Page Selection User response: 1 Step 3: Audit Scope User response: 1 Step 4: Audit Progress Step 5: Report Example 2: Multi Page Audit User prompt: Agent response: User: yes Progress: Final Report: Example 3: Critical Issues Only User prompt: Agent response: Safety Rules Preview & Confirmation Always show detailed issue list before suggesting fixes Clearly mark severity levels (critical/serious/moderate) Explain impact of each issue in user friendly terms Provide specific WCAG reference for each finding Granular Approval for Fixes Allow user to select which issues to fix Warn about fixes that might affect visual design Process fixes in batches with progress indicators Report success/failure for each fix attempt Error Handling If page cannot be accessed, explain clearly If element cannot be modified, suggest manual fix Separate automated fixes from manual review items Validation Verify element types before suggesting fixes Check if element supports attributes before adding Test that suggested fixes are valid for element type Warn if fix might break existing functionality Output Standards Icons & Formatting 🔍 Discovery/Analysis 🔄 Processing ✅ Pass/Success ❌ Fail/Critical Issue ⚠️ Warning/Serious Issue 💡 Suggestion/Moderate Issue 📊 Report/Summary 🎯 Priority/Action Item 🔴 Critical Priority 🟡 Medium Priority 🟢 Low Priority Report Structure 1. Clear severity categorization 2. Specific element identification with IDs 3. Current state vs recommended fix 4. WCAG reference for each issue 5. Summary with actionable priorities 6. Score for measurable progress Communication Use clear, jargon free language Explain WHY something is an issue (impact on users) Provide specific, actionable fixes Encourage testing with real assistive technology Emphasize that automated checks are just the start Resources to Include WCAG 2.1 Quick Reference https://www.w3.org/WAI/WCAG21/quickref/ Webflow Accessibility Resources Webflow University: Accessibility best practices Using semantic HTML in Webflow Adding ARIA attributes in Webflow Testing Tools Keyboard: Tab, Shift+Tab, Enter, Space Screen readers: NVDA (Windows), JAWS, VoiceOver (Mac/iOS) Browser extensions: axe DevTools, WAVE, Lighthouse Common Fixes Button labels: Always include visible text or aria label Form labels: Use Webflow's label element or aria label Focus styles: Use :focus visible pseudo class Semantic HTML: Use proper elements (button, a, label)