# Framework-Specific Accessibility Patterns
## React / Next.js
### Common Issues and Fixes
**Image alt text:**
```jsx
// ❌ Bad
// ✅ Good
// ✅ Decorative image
```
**Form labels:**
```jsx
// ❌ Bad — placeholder as label
// ✅ Good — explicit label
// ✅ Good — aria-label for icon-only inputs
```
**Click handlers on divs:**
```jsx
// ❌ Bad — not keyboard accessible
Click me
// ✅ Good — use button
// ✅ If div is required — add keyboard support
{ if (e.key === 'Enter' || e.key === ' ') handleClick(); }}
>
Click me
```
### Angular-Specific Tools
- `@angular/cdk/a11y` — `FocusTrap`, `LiveAnnouncer`, `FocusMonitor`
- `codelyzer` — a11y lint rules for Angular templates
## Svelte / SvelteKit
### Common Issues and Fixes
```svelte
Action
{#if isOpen}
Panel content
{/if}
```
**Note:** Svelte has built-in a11y warnings in the compiler — it flags missing alt text, click-without-keyboard, and other common issues at build time.
## Plain HTML
### Checklist for Static Sites
```html
Descriptive Page TitleSkip to main content