원클릭으로
frontend-a11y
mokata · Frontend UI + accessibility — WCAG-AA checked in review, design-system conventions remembered.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
mokata · Frontend UI + accessibility — WCAG-AA checked in review, design-system conventions remembered.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
mokata · Socratic pre-spec exploration — explore approaches WITH the user, one question at a time, and HARD-GATE the spec behind explicit approval. Runs standalone or as the front of mokata's pipeline.
mokata · Author a new mokata skill test-first (RED-GREEN-for-docs); the write is human-gated.
mokata · Implement the minimum to turn a failing test green.
mokata · Turn the problem into testable acceptance criteria; map each to a test.
mokata · API & interface design — contract-first, blast-radius on every change.
mokata · Browser testing (DevTools) — live runtime captured via the existing MCP surface, fed to the test gate.
| name | frontend-a11y |
| description | mokata · Frontend UI + accessibility — WCAG-AA checked in review, design-system conventions remembered. |
| when_to_use | Engage when an approach touches a UI component, a view, a template, or a stylesheet, when the spec's `domains` constraint names `frontend-a11y`, or when a change adds/alters user-facing markup, an interactive control, an image, a form field, or a colour/contrast choice. Do NOT engage for a pure backend/data change with no user-facing surface, or for internal tooling output that no assistive technology consumes. |
mokata Agent Skill. This is mokata's
frontend-a11ydomain knowledge, attached to the pipeline so Claude engages it automatically when an approach touches a UI surface. It is NOT a parallel advisory: it enriches develop/review, feeds the instrument that already runs there (the a11y checklist in review), and records the project's design-system conventions to memory. mokata's non-negotiables still hold — durable writes are human-gated, and the accessibility check is part of review, not an optional afterthought.
⛭ mokata frontend-a11y active — gate: the accessibility checklist is run in review; design-system conventions are recorded to memory
Accessibility is not a coat of paint applied at the end — it is whether the interface works for people using a keyboard, a screen reader, magnification, or a non-default colour scheme. The standard for "works" is WCAG, and the practical bar most projects target is level AA. This skill makes mokata treat UI work as accessibility work: build to the WCAG principles as you develop, run the a11y checklist in review at the AA bar, and record the project's design-system conventions so the next component is consistent with the last.
The Web Content Accessibility Guidelines organize accessibility under four principles — content must be Perceivable, Operable, Understandable, and Robust (POUR) — each with testable success criteria at conformance levels A, AA, and AAA (https://www.w3.org/WAI/standards-guidelines/wcag/ · https://www.w3.org/TR/WCAG22/). mokata targets AA as the review bar: A is a floor, AAA is aspirational and not always achievable for all content. The exact success-criterion numbering and the AA membership of a given criterion are UNVERIFIED here — confirm against the WCAG version in use at the cited URL before quoting a criterion number or level.
Run these in review; each maps to a WCAG success criterion (read the cited source for the exact current wording and threshold):
alt on images; empty alt for decorative). (WCAG 1.1.1 · MDN:
https://developer.mozilla.org/en-US/docs/Web/Accessibility)<label> is associated with its field.Prefer a native HTML element (<button>, <a href>, <input>, <nav>) over a <div> re-created
with ARIA: native elements come with keyboard behaviour, focus, and the accessible name/role/state
already correct. The WAI-ARIA guidance is explicit that native semantics are preferred and that
poorly-applied ARIA is worse than none — no ARIA is better than bad ARIA
(https://www.w3.org/WAI/ARIA/apg/ · https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA).
Reach for ARIA only when no native element expresses the pattern, and then follow the authoring
practice for that pattern. Treat any specific ARIA pattern's exact required attributes as
UNVERIFIED until read against the cited APG page.
A design system is a set of adopted conventions — the component patterns, the accessible-name approach, the focus style, the contrast tokens the project has standardized on. Record them, so the next component follows the same accessible pattern instead of re-litigating it (and re-introducing the same a11y bug). mokata's edge over a static style guide is that these conventions are stored as typed memory the develop/review phases surface for the symbols in play — a remembered convention, not a wiki page nobody re-reads.
frontend-a11y in the spec's domains, so accessibility
is a first-class, human-approved constraint on the UI work, not a later bolt-on.best-practice entry through the human gate + the ledger,
so it is reused (P7). Record it with mokata's domain-decision path — never as loose prose.This skill feeds the a11y checklist (an SK.S1/S2 review instrument, not a hard gate): the accessibility checks are run in review at the AA bar before a UI change lands. It is advisory — it informs the change and records conventions, it does not block it — but the durable write recording a design-system convention is human-gated (write-gate), and any change to an approved spec's UI scope routes through the deviation gate.
Decide from the standard and the rendered markup, not from assumption. Before asserting a control is keyboard-operable, an image is decorative, a contrast ratio passes, or a role is exposed, VERIFY it: read the markup, check the accessible name/role/state, and for a WCAG claim read the cited success criterion for the version in use and CITE the URL. Prefer the primary source (WCAG / MDN / the ARIA authoring practices) over memory or a blog. Flag anything you could not verify as UNVERIFIED rather than stating it as fact.
| Excuse | Reality |
|---|---|
| "It looks fine on my screen." | Looks-fine is not tested; run the AA checks — keyboard, focus, contrast, name/role — before you call it accessible. |
"I'll add a <div onclick> — it's quicker than a <button>." | A div is not keyboard-operable or announced; use the native element so name/role/keyboard come for free (semantic HTML first). |
| "I'll sprinkle some ARIA roles to make it accessible." | Bad ARIA is worse than none; prefer native semantics and only add ARIA to fill a real gap, per the APG. |
| "Colour alone marks the error state." | Colour must not be the only signal (WCAG 1.4.1) and needs sufficient contrast (1.4.3) — add a non-colour cue. |
| "Accessibility is a separate pass later." | The a11y checklist is part of review at the AA bar; deferring it ships an inaccessible control and a convention nobody recorded. |
Evidence, not "seems right" — check every box or say which is unmet and why:
references/wcag-aa.md — the WCAG POUR principles, the AA success criteria this skill checks, and the semantic-HTML-first / ARIA guidance in full, each with its primary-source URLCAN
best-practice decisions to memory + the ledger (human-gated)MUST NOT
DEPENDS ON
frontend-a11y domain (classified at brainstorm; amend-in if reached late) (advisory)Grounding:
(gate: …)boundaries are enforced by that gate in code;(advisory)ones are protocol discipline this skill follows, not a hard block.