Dostępność

Accessible forms

Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".

fe-a11y-formskażdego projektu webowego4 regułyładowane zawsze: 92 tokeny; przy użyciu: 875 tokenów; w referencjach na żądanie: 1223 tokeny.

Instalacja

init instaluje ten skill, gdy projekt używa: każdego projektu webowego. Wybierz agenta, aby zobaczyć, gdzie trafią jego pliki.

Agent
npx github:dawidolko/frontend-skills init

Bez --agents polecenie init rozpoznaje agentów po tym, co projekt już ma, a gdy nie znajdzie żadnego, pyta:

Po czym init rozpoznaje każdego z agentów (17)
AgentRozpoznawany po
Claude CodeCLAUDE.md .claude CLAUDE.local.md
OpenAI Codex.codex AGENTS.override.md
Cursor.cursor .cursorrules
GitHub Copilot.github/copilot-instructions.md .github/instructions .github/skills .github/prompts
Gemini CLIGEMINI.md .gemini
Antigravity CLI.agents/rules .agent/rules
Devin / Windsurf.devin .windsurf .windsurfrules
OpenCodeopencode.json opencode.jsonc .opencode
Cline.clinerules .cline
Zed.rules .zed
JetBrains Junie.junie
Kiro.kiro
Augment.augment .augment-guidelines
Trae.trae
Continue.continue
Amazon Q Developer.amazonq
Aider.aider.conf.yml CONVENTIONS.md

Gdzie trafia fe-a11y-forms dla: Claude Code

  • .claude/skills/fe-a11y-forms/SKILL.mdskill
  • .claude/skills/fe-a11y-forms/references/forms.mdskill
  • .claude/rules/fe-a11y-forms.mdplik reguł
  • CLAUDE.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.claude/rules/fe-a11y-forms.md
---
paths:
  - "**/*.html"
  - "**/*.jsx"
  - "**/*.tsx"
  - "**/*.vue"
  - "**/*.svelte"
  - "**/*.astro"
  - "**/*.component.html"
---

# Accessible forms (frontend-skills)

Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.claude/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: OpenAI Codex

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

OpenAI Codex nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

AGENTS.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Cursor

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • .cursor/rules/fe-a11y-forms.mdcplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.cursor/rules/fe-a11y-forms.mdc
---
description: Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".
globs: **/*.html, **/*.jsx, **/*.tsx, **/*.vue, **/*.svelte, **/*.astro, **/*.component.html
alwaysApply: false
---

# Accessible forms (frontend-skills)

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.agents/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: GitHub Copilot

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • .github/instructions/fe-a11y-forms.instructions.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.github/instructions/fe-a11y-forms.instructions.md
---
applyTo: "**/*.html,**/*.jsx,**/*.tsx,**/*.vue,**/*.svelte,**/*.astro,**/*.component.html"
description: "Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked \"is this form accessible\"."
---

# Accessible forms (frontend-skills)

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.agents/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Gemini CLI

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • GEMINI.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Gemini CLI: Gemini CLI was replaced by Antigravity CLI for unpaid tiers on 2026-06-18; choose "antigravity" too if you use it.

Gemini CLI nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

GEMINI.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Antigravity CLI

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • .agents/rules/fe-a11y-forms.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.agents/rules/fe-a11y-forms.md
---
trigger: glob
globs: "**/*.html, **/*.jsx, **/*.tsx, **/*.vue, **/*.svelte, **/*.astro, **/*.component.html"
description: "Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked \"is this form accessible\"."
---

# Accessible forms (frontend-skills)

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.agents/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Devin / Windsurf

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • .devin/rules/fe-a11y-forms.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Devin / Windsurf: Devin CLI also reads .cursor/rules; with Cursor chosen too, the CLI sees both rule files of a skill.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.devin/rules/fe-a11y-forms.md
---
trigger: glob
globs: "**/*.html,**/*.jsx,**/*.tsx,**/*.vue,**/*.svelte,**/*.astro,**/*.component.html"
---

# Accessible forms (frontend-skills)

Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.agents/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: OpenCode

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

OpenCode nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

AGENTS.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Cline

  • .claude/skills/fe-a11y-forms/SKILL.mdskill
  • .claude/skills/fe-a11y-forms/references/forms.mdskill
  • .clinerules/fe-a11y-forms.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Cline: If .clinerules is a single file rather than a folder, Cline rule files are not written; skills still are.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.clinerules/fe-a11y-forms.md
---
paths:
  - "**/*.html"
  - "**/*.jsx"
  - "**/*.tsx"
  - "**/*.vue"
  - "**/*.svelte"
  - "**/*.astro"
  - "**/*.component.html"
---

# Accessible forms (frontend-skills)

Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.claude/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Zed

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • CLAUDE.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zed: Zed reads only the first instruction file of its list; the block is placed in that file.

Zed nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

CLAUDE.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: JetBrains Junie

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

JetBrains Junie: Junie reads .agents/skills only in a trusted project.

JetBrains Junie nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

AGENTS.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Kiro

  • .kiro/skills/fe-a11y-forms/SKILL.mdskill
  • .kiro/skills/fe-a11y-forms/references/forms.mdskill
  • .kiro/steering/fe-a11y-forms.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.kiro/steering/fe-a11y-forms.md
---
inclusion: fileMatch
fileMatchPattern: ["**/*.html", "**/*.jsx", "**/*.tsx", "**/*.vue", "**/*.svelte", "**/*.astro", "**/*.component.html"]
---

# Accessible forms (frontend-skills)

Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked "is this form accessible".

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.kiro/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Augment

  • .agents/skills/fe-a11y-forms/SKILL.mdskill
  • .agents/skills/fe-a11y-forms/references/forms.mdskill
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Augment nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

AGENTS.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Trae

  • .trae/skills/fe-a11y-forms/SKILL.mdskill
  • .trae/skills/fe-a11y-forms/references/forms.mdskill
  • .trae/rules/fe-a11y-forms.mdplik reguł
  • AGENTS.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Trae: Trae reads AGENTS.md only after it is enabled in its settings.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.trae/rules/fe-a11y-forms.md
---
description: "Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked \"is this form accessible\"."
globs: **/*.html,**/*.jsx,**/*.tsx,**/*.vue,**/*.svelte,**/*.astro,**/*.component.html
alwaysApply: false
---

# Accessible forms (frontend-skills)

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.trae/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Continue

  • .frontend-skills/skills/fe-a11y-forms/SKILL.mdskill
  • .frontend-skills/skills/fe-a11y-forms/references/forms.mdskill
  • .continue/rules/fe-a11y-forms.mdplik reguł

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.continue/rules/fe-a11y-forms.md
---
name: "Accessible forms"
description: "Builds and reviews accessible forms in any stack (HTML, React, Vue, Svelte, Angular, Astro) to WCAG 2.2 AA as a target - labels, autocomplete, required fields, grouping, error messages, focus after submit, sign-in without memory tests. Use when writing or changing a form, an input component, validation or a sign-in or checkout flow, or when asked \"is this form accessible\"."
globs: ["**/*.html", "**/*.jsx", "**/*.tsx", "**/*.vue", "**/*.svelte", "**/*.astro", "**/*.component.html"]
alwaysApply: false
---

# Accessible forms (frontend-skills)

- Every field has a programmatic label: `<label for>` + `id`, a wrapping `<label>`, or `aria-labelledby`; a placeholder is never the label (a11y/input-label).
- Personal-data fields carry a standard `autocomplete` token (`email`, `given-name`, `tel`, `postal-code`, `new-password`) (a11y/autocomplete-valid).
- Errors are text next to the field, linked with `aria-describedby`, marked with `aria-invalid="true"`, and say how to fix the input (a11y/form-errors).
- Required fields say so in the label text or with a visible marker explained once, plus the `required` attribute.
- Related choices (radio groups, an address block) sit in `<fieldset>` with a `<legend>`.
- The submit control is `<button type="submit">`; other buttons in a form are `type="button"` (html/button-type).
- Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
- Never rely on colour alone for an error or a required marker.

Before larger changes, read the full skill: `.frontend-skills/skills/fe-a11y-forms/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Amazon Q Developer

  • .frontend-skills/skills/fe-a11y-forms/SKILL.mdskill
  • .frontend-skills/skills/fe-a11y-forms/references/forms.mdskill
  • .amazonq/rules/frontend-skills.mdblok instrukcji

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Amazon Q Developer: Amazon Q Developer IDE plugins reach end of support on 2027-04-30; AWS points to Kiro.

Amazon Q Developer nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

.amazonq/rules/frontend-skills.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.

### Skills

- `fe-a11y-forms` (Accessible forms): when editing `**/*.html`, `**/*.jsx`, `**/*.tsx`, `**/*.vue`, `**/*.svelte`, `**/*.astro`, `**/*.component.html`, first read `.frontend-skills/skills/fe-a11y-forms/SKILL.md`.
Prawdziwy plik

Gdzie trafia fe-a11y-forms dla: Aider

  • .frontend-skills/skills/fe-a11y-forms/SKILL.mdskill
  • .frontend-skills/skills/fe-a11y-forms/references/forms.mdskill
  • CONVENTIONS.mdblok instrukcji
  • .aider.conf.ymlkonfiguracja

Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.

Aider nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.

Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.

CONVENTIONS.md
## Front-end work (frontend-skills)

- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.

### Skills

- `fe-a11y-forms` (Accessible forms): when editing `**/*.html`, `**/*.jsx`, `**/*.tsx`, `**/*.vue`, `**/*.svelte`, `**/*.astro`, `**/*.component.html`, first read `.frontend-skills/skills/fe-a11y-forms/SKILL.md`.
Prawdziwy plik

Jak go używać

Po instalacji agent sam ładuje skill, gdy zadanie pasuje do jego opisu. Możesz też poprosić o niego własnymi słowami, na przykład:

Frazy z opisu skilla, po których agent go wybiera (po angielsku, jak w skillu):

  • is this form accessible

A żeby sprawdzić i poprawić pracę:

  • Użyj skilla fe-a11y-forms na tym pliku.
  • Uruchom audyt front-endu na moich zmianach i popraw wszystko, co poważne.
  • Wyjaśnij a11y/input-label i popraw to tutaj.

Reguły, których uczy

  • a11y/input-label

    Every form field has a programmatic label (label element, aria-label or aria-labelledby); a placeholder is not a label.

    krytycznastatyczneWCAG 1.3.1, 3.3.2, 4.1.2

  • a11y/autocomplete-valid

    An autocomplete attribute holds only tokens the HTML standard defines (email, given-name, new-password…).

    poważnastatyczneWCAG 1.3.5

  • a11y/form-errors

    An input error is shown in text next to the field, tied to it with aria-describedby, and says how to fix it.

    poważnaręczneWCAG 3.3.1, 3.3.3, 4.1.3

  • html/button-type

    Every button states its type (button, submit or reset); the default is submit.

    drobnastatyczne

Skrót reguł

Ta część jest kopiowana do zawężonego pliku reguł każdego agenta, więc musi być zrozumiała sama w sobie:

  • Every field has a programmatic label: <label for> + id, a wrapping <label>, or aria-labelledby; a placeholder is never the label (a11y/input-label).
  • Personal-data fields carry a standard autocomplete token (email, given-name, tel, postal-code, new-password) (a11y/autocomplete-valid).
  • Errors are text next to the field, linked with aria-describedby, marked with aria-invalid="true", and say how to fix the input (a11y/form-errors).
  • Required fields say so in the label text or with a visible marker explained once, plus the required attribute.
  • Related choices (radio groups, an address block) sit in <fieldset> with a <legend>.
  • The submit control is <button type="submit">; other buttons in a form are type="button" (html/button-type).
  • Never block paste into password or code fields, never ask for the same data twice in one flow, never use a puzzle or memory test as the only way to sign in (WCAG 3.3.7, 3.3.8).
  • Never rely on colour alone for an error or a required marker.

Kroki, które wykonuje agent

  1. Find the project's form primitives (an Input, Field or FormField component, a form library) and fix them once; a lesson in lessons.md may name them.
  2. For each field: visible label, id, correct type and inputmode, autocomplete, required where needed, a hint linked with aria-describedby.
  3. Validate on submit (and on blur only after a first submit). On error: keep the values, set aria-invalid, render the messages, move focus to the first invalid field or to an error summary with links.
  4. Announce asynchronous results (saved, sent) in a polite live region that exists before the message is put in it.
  5. Keep targets at least 24 by 24 CSS pixels and the focus indicator visible on every control.

Jak agent sprawdza swoją pracę

  • npx github:dawidolko/frontend-skills audit --changed finds unlabeled fields, invalid autocomplete values and buttons without a type.
  • audit --url <page> adds axe-core results for the rendered form (labels from components included).
  • By hand: fill and submit the form with the keyboard only, then with a screen reader (VoiceOver, NVDA): every field announces its label, state and error.

Sprawdzane audytem

Testy statyczne tych reguł działają w audit; to prawdziwa sesja na przykładowym projekcie:

Nagranie terminala: audit wypisuje znaleziska według wagi z identyfikatorami reguł i miejscem plik:linia i kończy się błędem od progu serious.
audit: liczby według wagi, każda reguła z pierwszym miejscem, kod wyjścia.

Pliki referencyjne