What problem does it solve? Developers often misuse ARIA attributes or add onClick handlers to divs, producing interfaces that lie to assistive technologies and break keyboard and screen reader support. This Skill provides concrete rules and code patterns for choosing between native semantic HTML and ARIA so components stay accessible. ## Core Features & Use Cases - Semantic HTML over div+ARIA: Enforces the rule that wrong ARIA is worse than no ARIA, with before/after examples for buttons, links, and heading hierarchy. - Labeling patterns: Covers aria-label vs aria-labelledby, aria-describedby for supplementary info, and labeling icon-only buttons. - Live regions and disclosure widgets: Shows correct usage of aria-live (polite vs assertive), aria-expanded, and aria-controls for accordions and status messages. - Anti-pattern detection: Flags common mistakes like aria-label on roleless elements, role="button" without keyboard support, aria-hidden on focusable elements, and positive tabIndex. - Use Case: Before adding an onClick handler to a div or any aria-* attribute to a React component, consult this Skill to verify whether a native element already expresses the intent. ## Quick Start Review this React component and tell me whether it should use semantic HTML or ARIA attributes, fixing any accessibility anti-patterns you find.