Web accessibility and interface standards guide. Covers WCAG compliance, semantic HTML, keyboard navigation, screen readers, forms, touch targets, and internationalization. Use when building, reviewing, or auditing web interfaces for accessibility and UX quality.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Web accessibility and interface standards guide. Covers WCAG compliance, semantic HTML, keyboard navigation, screen readers, forms, touch targets, and internationalization. Use when building, reviewing, or auditing web interfaces for accessibility and UX quality.
Web Accessibility
Build interfaces that work for everyone. These are not optional enhancements — they are baseline quality.
Semantic HTML
Use the right element for the job. Never simulate interactive elements with <div>.
// BAD: div with click handler
<div onClick={handleClick} className="button">Submit</div>
// GOOD: semantic button<buttononClick={handleClick}>Submit</button>// BAD: div as link<divonClick={() => router.push('/about')}>About</div>// GOOD: anchor/Link for navigation<Linkhref="/about">About
</Link>
Element Selection Guide
Purpose
Element
Not
Action (submit, toggle, delete)
<button>
<div onClick>
Navigation to URL
<a> / <Link>
<button onClick={navigate}>
Form input
<input>, <select>, <textarea>
Custom div-based inputs
Section heading
<h1>–<h6> (sequential)
<div className="heading">
List of items
<ul> / <ol> + <li>
Repeated <div>
Navigation group
<nav>
<div className="nav">
Main content
<main>
<div id="content">
Keyboard Navigation
Every interactive element must be keyboard accessible.
Focus Management
/* NEVER remove focus indicators without replacement *//* BAD */
*:focus { outline: none; }
/* GOOD: Visible focus only on keyboard navigation */.interactive:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
/* Group focus for compound controls */.input-group:focus-within {
outline: 2px solid var(--color-accent);
}
Keyboard Event Handling
// Interactive custom elements need keyboard supportfunctionCustomButton({ onClick, children }: { onClick: () => void; children: React.ReactNode }) {
return (
<divrole="button"tabIndex={0}onClick={onClick}onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
onClick();
}
}}
>
{children}
</div>
);
}
// Better: just use <button> and avoid all of the above
Skip Links
Provide skip navigation for keyboard users.
<a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50">
Skip to main content
</a>
Headings used as scroll targets need offset for fixed headers:
[id] { scroll-margin-top: 5rem; }
ARIA Patterns
Icon Buttons
// Icon-only buttons MUST have aria-label
<button aria-label="Close dialog" onClick={onClose}>
<XIconaria-hidden="true" />
</button>
// Decorative icons are hidden from screen readers<spanaria-hidden="true">🔒</span>Secure connection
Live Regions
Announce dynamic content changes to screen readers.