Modern Web Accessibility for Interactive UI

Modern Web Accessibility for Interactive UI is a skill for Claude Code from s977043/river-review. It costs 51 tokens per session (2,269 once invoked), scanned A, original, MIT.

An accessibility review for interactive interface elements such as dialogs, menus, popovers, tabs, forms, and live updates.

In plain words
What is it for?
It suggests checks for keyboard handlers, focus movement and visibility, appropriate roles and states, and keyboard navigation for menus and tabs.
Why use it?
It helps ensure people using only a keyboard or assistive technology can operate controls, follow focus, and understand changing content.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the river-review plugin — 138 skills, 18 commands, 5 agents, 3 hooks shipped together

Good fit It suggests checks for keyboard handlers, focus movement and visibility, appropriate roles and states, and keyboard navigation for menus and tabs.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/s977043/river-review/modern-web-a11y-interactive
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add s977043/river-review --skill modern-web-a11y-interactive
Clone the repo
git clone --depth 1 https://github.com/s977043/river-review

Made for: Claude Code.

Or install river-review, the plugin that ships this one along with the rest of its 138 skills, 18 commands, 5 agents, 3 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for Modern Web Accessibility for Interactive UI

README.md
[![agentmods](https://agentmods.dev/badge/skills/s977043/river-review/modern-web-a11y-interactive/github.svg)](https://agentmods.dev/skills/s977043/river-review/modern-web-a11y-interactive)
Your own site
<a href="https://agentmods.dev/skills/s977043/river-review/modern-web-a11y-interactive"><img src="https://agentmods.dev/badge/skills/s977043/river-review/modern-web-a11y-interactive/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for Modern Web Accessibility for Interactive UI

Your own site · 80×15
<a href="https://agentmods.dev/skills/s977043/river-review/modern-web-a11y-interactive"><img src="https://agentmods.dev/badge/skills/s977043/river-review/modern-web-a11y-interactive.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 51 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,269 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00051 $0.02269
Opus 5 $0.00026 $0.01135
Sonnet 5 $0.00010 $0.00454
Haiku 4.5 $0.00005 $0.00227

Measured 8d ago against content hash 4144175f3285, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

Modern Web Accessibility for Interactive UI scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/midstream/modern-web-a11y-interactive/SKILL.md · 122 lines

How it starts

The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Goal / 目的

  • インタラクティブ UI 差分(modal / popover / menu / tabs / live updates / form interactions)に対し、キーボード操作と支援技術ユーザーの操作可能性を確保する suggestion を返す。
  • accessible name(既存 a11y-accessible-name)が扱わない「動的振る舞い」「focus state」「role / state semantics」を担当する。
  • 出力は suggestion 扱い。「強制」ではなく「検討すべき代替案 / 確認ポイント」として返す。

Non-goals / 扱わないこと

  • accessible name(alt / aria-label)の網羅的チェック → a11y-accessible-name の担当。
  • コントラスト比 / 視覚的アクセシビリティ → 別 skill / 別 audit ツールの領域。
  • 完全な WCAG 等級判定。
  • screen reader を直接 emulate しての挙動検証。

False-positive guards / 抑制条件

  • 既に library / design system のコンポーネント (<Dialog>, <Popover>, <MenuButton> 等) を使い、a11y 振る舞いが library 内で保証されている場合は指摘しない。
  • tabIndex / aria-* 属性が既に明示的に設定されている差分(意図的な制御)は指摘しない。
  • 差分が CSS のみのスタイル微調整(色変更・余白調整など)で、interaction が変わらない場合は指摘しない。
  • focus visibility 関連で :focus-visible / outline が既に明示制御されている場合は新たに指摘しない。

Rule / ルール

キーボード操作

  • click 専用ハンドラ (onClick のみ、onKeyDown なし) を持つ generic 要素は、<button> への切り替え or onKeyDown + role="button" + tabIndex="0" セットの検討を提案する。
  • ナビゲーション要素 (menu, tabs, breadcrumb) には WAI-ARIA Authoring Practices の roving tabindex / arrow key navigation 検討を促す。
  • onMouseOver / onMouseOut だけで状態切替する hover-only UI は、keyboard focus でも同等の状態が出るかを確認する。
  • shortcut key を追加する差分では、<kbd> 表示 / disable 手段 / 既存ショートカット重複の確認を促す。

Focus 管理

  • modal / dialog / drawer を開いた時に focus が initial element に移るか、閉じた時に開いた element に戻るかを確認する。
  • <dialog> の native showModal() は focus / inert を自動でやる → そちらに寄せる方が安全な suggestion を出す。
  • focus trap を自前で実装している差分(querySelector で focusable elements を集める等)は <dialog> または inert 属性ベースへの寄せ替え検討を提案する。
  • tabIndex="-1" で focus を奪う / tabIndex="0" 以上の正の値を追加する差分は副作用が大きいので根拠を確認する(positive tabIndex は基本的にアンチパターン)。

動的コンテンツ / live regions

  • aria-live / role="status" / role="alert" の選択が用途に合っているかを確認する(polite vs assertive vs off)。
  • toast / snackbar / inline validation message 追加では live region 経由のアナウンスが必要か検討を促す。
  • DOM を一括書き換えで「画面の意味が大きく変わる」変更では、focus 移動 or live region 更新の必要性に触れる。

Read the full file on GitHub · 122 lines

Files

What ships with it

8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 122 lines · 51 tokens per session scan A 4144175f3285

Subscribe to this mod's changes

Modern Web Accessibility for Interactive UI is a skill published in the GitHub repository s977043/river-review (3 stars, last pushed yesterday), licensed MIT. It adds 51 tokens to every session and 2,269 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

web-design-guidelines

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", or "vs best practices".

martineserios/thebrana · 37 tokens

wes-bos-sick-picks

Research-first workflow for building frontend UI components (any framework), in the spirit of Wes Bos. Use when designing or implementing a UI component, layout, interaction, or CSS/HTML feature and you want a modern, accessible, best-practice solution rather than a first guess. Researches pitfalls and platform…

boserup/wes-bos-sick-picks · 140 tokens

scroll-craft

Build premium scroll-driven landing pages for service, product, food, and drink brands. Plan the visitor journey, page grammar, emotional peak, and bespoke signature move. Create dimensional heroes with independent visual planes, restrained motion, and separate mobile composition. Use supplied photos and footage or…

nateherkai/scroll-craft · 177 tokens

accessibility

Use when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast, tap-target size. NOT palette or visual intent (that is design), NOT test-runner setup (that is testing-web), NOT LCP/page-speed (that is…

ericrisco/rsc-harness · 86 tokens

absolute-ui

Build polished, intentional UIs with concrete CSS/Tailwind values — typography, color, layout, spacing, dark mode, accessibility, animations, components. Encodes specific, opinionated rules with exact values, not vague advice. Covers buttons, cards, forms, tables, navigation, dashboards, landing pages, onboarding, and…

maddhruv/absolute · 121 tokens

design-with-claude

Use when design work needs a product designer's eye: auditing a codebase for design-system gaps, fixing WCAG contrast and unlabeled inputs, choosing type scales or spacing steps, reviewing UI that looks generic or AI-generated, or designing forms, tables, dashboards, navigation, checkout, onboarding, dark mode, and…

imsaif/design-with-claude · 0 tokens