Frontend Accessibility

Identify and fix accessibility issues in frontend interfaces using semantic HTML, ARIA, and keyboard navigation.

Updated Aug 11, 2023
One-click install
npx skills add https://github.com/EIS-ITS/vss-cli --skill frontend-accessibility-eis-its
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Frontend Accessibility
Source: https://github.com/EIS-ITS/vss-cli/tree/main/.claude/skills/frontend-accessibility
Command: npx skills add https://github.com/EIS-ITS/vss-cli --skill frontend-accessibility-eis-its

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you avoid excluding users with disabilities and potential legal issues by guiding you to build accessible user interfaces. It ensures your UI is usable by everyone, meeting WCAG standards and enhancing the overall user experience for all.

Core Features & Use Cases

  • Semantic HTML: Use appropriate tags for meaning and structure, improving screen reader interpretation.
  • ARIA Attributes: Enhance screen reader compatibility for dynamic content and complex widgets.
  • Keyboard Navigation: Ensure full functionality and intuitive navigation without a mouse.
  • Use Case: When building a new registration form, use this skill to ensure all input fields have proper labels, error messages are announced to screen readers, and the form can be fully navigated and submitted using only the keyboard, making it accessible to all users.

Quick Start

Review the attached HTML form and suggest improvements for accessibility, focusing on semantic elements, ARIA attributes, and keyboard navigation.

Frequently Asked Questions about Frontend Accessibility

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make my website accessible to screen readers and keyboard users?

Screen reader accessibility requires semantic HTML tags that convey structure, ARIA attributes for dynamic content, keyboard navigation support, and proper focus management. Implement these by using heading hierarchies, form labels, alt text, and ensuring all interactive elements are keyboard-operable without mouse dependency.

What's the best way to fix color contrast and readability issues in my UI?

Color contrast compliance ensures readability for users with low vision. Check text-to-background ratios against WCAG standards, avoid relying on color alone to convey meaning, and test your design with contrast checkers to meet minimum brightness ratios for normal and large text.

How do I ensure form fields and error messages are accessible?

Accessible forms require explicit labels paired with inputs, semantic HTML input types, ARIA live regions or role attributes for dynamic error announcements, and keyboard navigation through all fields. Screen readers must announce required fields, validation errors, and available keyboard shortcuts.

Can I make interactive components like modals and dropdowns keyboard-navigable?

Yes. Interactive components need focus traps, keyboard event handlers for arrow keys and Enter/Escape, ARIA roles describing widget type, and focus management that returns focus appropriately after closing. Test with keyboard-only and screen-reader workflows to verify full navigation.

Why should I use semantic HTML instead of generic divs for accessibility?

Semantic HTML—buttons, nav, main, article, form—conveys structure and purpose directly to assistive technologies without extra ARIA. Screen readers announce element type and role automatically, reducing manual labeling and improving navigation efficiency for users with disabilities.

What are common accessibility gaps I should check for in React or Vue components?

Check JSX/TSX components for missing alt attributes on images, unlabeled form inputs, keyboard traps, insufficient focus management, hard-coded colors without contrast checking, and ARIA attributes that conflict with semantic structure. Use automated testing and manual screen-reader validation to catch issues early.