Build accessible React and Next.js interfaces with robust UI accessibility patterns.
This skill appears to be a prompt/documentation-style frontend accessibility guide. It requires no secrets, declares no remote endpoints, and shows no capability for local execution or data exfiltration. With open-source availability and strong community adoption on GitHub, overall risk is low; only supply-chain merits slight attention because the license is unspecified and maintenance status is unknown.
The material explicitly states that no keys or environment variables are required, and the content is limited to React/Next.js accessibility patterns, with no indication of credential collection, storage, transmission, or abuse.
No remote endpoints are declared, and the system flags it as prompt-only; the README consists of local code examples and guidance, with no design indicating transmission of user data to external services.
As a skill artifact, the content is static development guidance and example code, with no requirement to install executable components, start local processes, or invoke system commands.
The documentation does not declare any need to read or write local files, databases, browser storage, or other resources; the examples only demonstrate accessibility patterns for forms and interactive components and do not constitute data access capability.
The source is an open-source GitHub repository with very strong community adoption, both of which materially reduce risk; however, the license is unspecified and maintenance status is unknown, so basic attention to future changes and dependency provenance is still warranted.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "frontend-a11y" skill from askskill: 1. Download https://raw.githubusercontent.com/affaan-m/ECC/main/skills/frontend-a11y/SKILL.md 2. Save it as ~/.claude/skills/frontend-a11y/SKILL.md 3. Reload skills and tell me it's ready
Review this React form component for accessibility issues and return improved code. Focus on semantic HTML, label associations, error message relationships, keyboard operability, and screen reader support.
An improved form component plus a summary of the key accessibility fixes.
Create an accessible modal component for a Next.js project. It must support focus trapping, closing with Esc, initial focus, returning focus after close, and the necessary ARIA attributes.
Production-ready modal component code with notes on interaction and accessibility behavior.
Here is a React dropdown menu component. Perform an accessibility audit, identify issues, and provide fixes. Focus on roles, keyboard navigation, focus management, and screen reader cues.
A list of issues, recommended fixes, and improved example code snippets.
Practical accessibility patterns for React and Next.js. Covers the issues most commonly flagged in code review: missing form labels, incorrect ARIA usage, non-semantic interactive elements, and broken keyboard navigation.
<input>, <select>, <textarea>)<div> or <span> with onClickaria-* attributes to any elementMissing htmlFor / id pairing and disconnected error messages are the most common issues flagged in code review.
// BAD: label has no connection to input — screen readers cannot associate them
<label>Email</label>
<input type="email" />
// GOOD: htmlFor matches input id
<label htmlFor="email">Email</label>
<input id="email" type="email" />
// BAD: visual-only asterisk conveys nothing to screen readers
<label htmlFor="email">Email *</label>
<input id="email" type="email" />
// GOOD: required enables native browser validation; aria-required signals it to screen readers
<label htmlFor="email">
Email <span aria-hidden="true">*</span>
</label>
<input id="email" type="email" required aria-required="true" />
// BAD: error text exists visually but is not linked to the input
<input id="email" type="email" />
<span className="error">Invalid email address</span>
// GOOD: aria-describedby connects input to its error message
// aria-invalid signals the invalid state to screen readers
<input
id="email"
type="email"
aria-describedby="email-error"
aria-invalid={!!error}
/>
{error && (
<span id="email-error" role="alert">
{error}
</span>
)}
interface LoginFormProps {
onSubmit: (email: string, password: string) => void;
}
export function LoginForm({ onSubmit }: LoginFormProps) {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [errors, setErrors] = useState<{ email?: string; password?: string }>({});
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
const newErrors: typeof errors = {};
if (!email) newErrors.email = 'Email is required';
if (!password) newErrors.password = 'Password is required';
if (Object.keys(newErrors).length) {
setErrors(newErrors);
return;
}
onSubmit(email, password);
};
return (
<form onSubmit={handleSubmit} noValidate>
<div>
<label htmlFor="email">
Email <span aria-hidden="true">*</span>
</label>
<input
id="email"
type="email"
value={email}
onChange={e => setEmail(e.target.value)}
aria-required="true"
aria-describedby={errors.email ? 'email-error' : undefined}
aria-invalid={!!errors.email}
autoComplete="email"
/>
{errors.email && (
<span id="email-error" role="alert">
{errors.email}
</span>
)}
</div>
<div>
<label htmlFor="password">
Password <span aria-hidden="true">*</span>
</label>
<input
id="password"
type="password"
value={password}
onChange={e => setPassword(e.target.value)}
aria-required="true"
aria-describedby={errors.password ? 'password-error' : undefined}
aria-invalid={!!errors.password}
autoComplete="current-password"
/>
{errors.password && (
<span id="password-error" role="alert">
{errors.password}
</span>
)}
</div>
…
Handle returns, refunds, fraud checks, and warranty claim decisions efficiently.
Use Bun for runtime, bundling, testing, packages, and Node migration decisions.
Use the correct Ethereum Keccak-256 hashing in Node.js and TypeScript.
Apply Nuxt 4 patterns for SSR safety, performance, and data fetching.
Generate images, videos, and audio with one unified AI media workflow.
Design Quarkus 3 backend patterns for messaging, APIs, data, and async workflows.
Learn frontend patterns for React, Next.js, state, performance, and UI best practices.
Audit designs or pages for WCAG 2.1 AA accessibility issues.
Write and review React 18/19 components using modern best practices.
Build React microfrontends with shared dependencies, dynamic forms, and state management.
Write, fix, and improve tests for React components, hooks, and pages.
Build web interfaces that work well for both AI agents and humans.