AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Principle Accessibility

skill-lugassawan-swe-workbench-principle-accessibility · by lugassawan

Accessibility (a11y) principles — WCAG 2.2 AA conformance, semantic HTML, ARIA roles/properties/states, keyboard navigation, focus management, focus traps, color contrast, alt text, screen reader compatibility, accessible names, landmark regions, reduced motion. Auto-load when reviewing frontend or UI code, evaluating ARIA usage, designing keyboard interaction, auditing color contrast, writing al…

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add skill-lugassawan-swe-workbench-principle-accessibility

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-lugassawan-swe-workbench-principle-accessibility)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Principle Accessibility? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Accessibility Principles

Accessibility bugs are correctness bugs. They are cheapest to fix before the first line of markup is written.

Semantic HTML First

Native elements carry built-in roles, keyboard behavior, and accessible names — no ARIA required.

  • Prefer ` over ; prefer over `. Native elements are accessible by default.
  • Use landmark elements (`, , , , `) to define regions screen readers can navigate directly.
  • Maintain a logical heading hierarchy (h1h2h3); never skip levels to achieve visual styling.
  • Mark up lists with `/ + ` — screen readers announce item count and position.
  • Use ` with and ` for tabular data; never for layout.

ARIA: Use Sparingly

The first rule of ARIA: do not use ARIA if a native HTML element already provides the semantics.

  • Never add redundant roles (``) — they add noise without benefit.
  • Every ARIA widget role has required owned elements and states; a listbox without option children is broken.
  • Live regions (aria-live, aria-atomic) announce dynamic changes — use assertive only for time-critical alerts; default to polite.
  • aria-label / aria-labelledby / aria-describedby are the canonical tools for providing accessible names when native labeling is insufficient.
  • aria-hidden="true" on a focusable element is a contradiction — the element is both hidden from the tree and reachable by keyboard.

Keyboard Navigation & Focus

Every user who cannot use a pointer must be able to reach and operate every interactive element via keyboard alone.

  • All interactive elements must be reachable by Tab and operable by Enter/Space; use arrow keys for composite widgets (menus, tabs, grids).
  • Preserve DOM source order as the logical tab order; avoid tabindex values > 0 (they override natural order globally).
  • Visible focus indicators are required (WCAG 2.2 SC 2.4.11 AA): the indicator must have ≥3:1 contrast against adjacent colors and sufficient area (at minimum, a solid 2px outline around the component perimeter). A thin 1px outline at 3:1 passes contrast but fails on area.
  • Modals must trap focus while open — Tab cycles through focusable children; Escape closes and restores focus to the trigger element.
  • Skip links (``) let keyboard users bypass repeated navigation; place as the first focusable element on the page.

Color, Contrast & Motion

Visual information conveyed by color alone is inaccessible to color-blind users.

  • WCAG 2.2 AA contrast ratios: 4.5:1 for normal text, 3:1 for large text (≥18pt or ≥14pt bold), 3:1 for UI components and graphical objects.
  • Never use color as the only means to convey meaning — pair with text, icon, or pattern (e.g., error = red + icon + label).
  • Respect prefers-reduced-motion: declare animations normally, then disable or reduce them inside @media (prefers-reduced-motion: reduce). The opt-in pattern (no-preference) is fragile in environments that do not evaluate media queries.
  • WCAG 2.2 SC 2.5.8: touch/pointer targets must be ≥24×24 CSS px, or the offset from every adjacent target must be sufficient that a 24 px circle centred on each target does not intersect another.

Screen Reader & Assistive Tech

Automated tools (axe, Lighthouse) catch ~40% of issues; manual testing with a real screen reader catches the rest.

  • Every ` needs an alt attribute — empty (alt=""`) for decorative images, descriptive text for informative ones.
  • Every form input needs an associated ` via for/id or aria-labelledbyplaceholder` is not a label substitute.
  • Status messages (save confirmation, cart update) must be announced without stealing focus: use a live region or role="status".
  • Test with VoiceOver (macOS/iOS), NVDA or JAWS (Windows) — screen reader support for ARIA diverges. axe passing is necessary but not sufficient.

When Accessibility Engineering is Overkill

  • Purely internal CLI tools with no graphical interface.
  • Throwaway prototypes that will never be seen by end users.
  • Admin tools with a documented legal exemption covering the specific user population.
  • Public web and native UI: never overkill regardless of timeline or scope pressure.

Red Flags

| Flag | Problem | |------|---------| | ` or without role + tabindex | Not keyboard-reachable; not announced to screen readers | | Missing alt attribute on | Image content invisible to screen readers | | tabindex="-1" on an element with no roving-tabindex parent and no programmatic focus() call | Silently unreachable: excluded from sequential tab order and nothing focuses it programmatically | | Modal without a focus trap | Tab escapes the dialog; background content becomes operable | | Color-only error signaling | Color-blind users miss the error state entirely | | placeholder used as the visible label | Disappears on input; fails contrast at default browser styles | | autofocus on page load without user consent | Disorienting for screen reader users who have not yet reached that element | | aria-hidden="true"` on a focused element | Element is simultaneously hidden from the accessibility tree and keyboard-reachable | | Missing or low-contrast focus indicator | Keyboard users lose their position in the page |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.