Official agent skill

Accessibility Frontend Review

by SAP in SAP/project-foxhound

Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team.

OfficialGPL-3.0Auto-check passedFrontend & Design

Install Accessibility Frontend Review

skills CLI
$ npx skills add SAP/project-foxhound --skill accessibility-frontend-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SAP/project-foxhound accessibility-frontend-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/accessibility-frontend-review .claude/skills/accessibility-frontend-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
accessibility-frontend-review
GitHub stars
180
Used in
2 other repos
Token cost
~3.2k tokens
SKILL.md length
485 words
Files
2 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
GPL-3.0

At a glance

Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team.

  • Works in 6 steps: Identify the input → Fetch the diff and associated bug → Write a conceptual summary → …
  • The user asks to review a Phabricator patch
  • SKILL.md covers Step 1: Identify the input, Step 2: Fetch the diff and…, Step 3: Write a conceptual… and Step 4: Triage, plus 2 more sections
  • Calls git; reaches wiki.mozilla.org and phabricator.services.mozilla.com

What it does

Accessibility Frontend Review is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team. Use this skill whenever the user asks to review a Phabricator patch or revision for accessibility issues, mentions a D-number (like D284142) in the context of accessibility review, asks "does this patch have any a11y issues", or wants to check a diff against accessibility guidelines. Also use it when the user says things like "can you review this for a11y", "check this patch", or "give me…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/runsheet.md`).

It sits in Frontend & Design, covering Accessibility. It works with Model Context Protocol. The repository describes itself as: A web browser with dynamic data-flow tracking enabled in the Javascript engine and DOM, based on Mozilla Firefox (https://github.com/mozilla-firefox/firefox). It can be used to… The licence is GPL-3.0.

When your agent uses it

  • The user asks to review a Phabricator patch
  • Revision for accessibility issues
  • Mentions a D-number (like D28414
  • In the context of accessibility review

Example prompts

  • “does this patch have any a11y issues”
  • “can you review this for a11y”
  • “check this patch”
  • “/accessibility-frontend-review”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Identify the input
  2. Fetch the diff and associated bug
  3. Write a conceptual summary
  4. Triage
  5. Spawn subagents
  6. Combine outputs

What it can do on your machine

Read from SKILL.md and the folder at commit 9dcb850. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • wiki.mozilla.org
    • phabricator.services.mozilla.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Accessibility Frontend Review loads about 3.2k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 230 tokens; SKILL.md has 485 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~230
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SAP/project-foxhound at commit 9dcb850, republished under its GPL-3.0 licence (© SAP). 485 words, ~3,248 tokens.

Download SKILL.mdSave it as .claude/skills/accessibility-frontend-review/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
accessibility-frontend-review
description
Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team. Use this skill whenever the user asks to review a Phabricator patch or revision for accessibility issues, mentions a D-number (like D284142) in the context of accessibility review, asks "does this patch have any a11y issues", or wants to check a diff against accessibility guidelines. Also use it when the user says things like "can you review this for a11y", "check this patch", or "give me an accessibility review of D[number]". Invoke proactively when the user pastes a phabricator.services.mozilla.com URL or shares a revision ID alongside any accessibility concern. Invoke when questions about the following topics are raised: aria properties, aria roles, high contrast mode, forced colors, prefers contrast, focus order, screen readers, assistive technology.

Accessibility Review

You are the orchestrator for a two-protocol accessibility review. Your job is to fetch the diff and associated bug, write a conceptual summary, triage the patch, delegate the actual review work to focused subagents, and combine their outputs into one Phabricator-ready comment. You do not run the checklists yourself — subagents do, in isolated context windows.

Step 1: Identify the input

Phabricator mode — the user has provided a revision ID. Accept any of these formats and extract the numeric ID:

  • D291014
  • 291014
  • https://phabricator.services.mozilla.com/D291014

Local mode — the user wants to review local/uncommitted changes (no revision ID, or they say so explicitly).

If neither applies, ask.

Step 2: Fetch the diff and associated bug

Do not read any checklists or documentation — subagents handle that. Fetch in parallel:

Phabricator mode:

  1. Call mcp__moz__get_phabricator_revision with the numeric revision ID. Capture the full diff, revision title, revision description, and all comments.
  2. Extract the bug number from the revision title or description (look for "Bug XXXXXX" patterns). If found, call mcp__moz__get_bugzilla_bug with that number. If no bug number is present, skip.

Local mode:

  1. Run git diff HEAD and git log --oneline main..HEAD. Capture both.
  2. Check the commit messages for a "Bug XXXXXX" pattern. If found, call mcp__moz__get_bugzilla_bug to fetch that bug. If not found, skip.

Step 3: Write a conceptual summary

Synthesize what you've fetched into a short conceptual summary of the patch. This will be passed to both subagents so they understand the intent behind the code changes, not just the code.

Cover:

  • What problem or user need the bug describes
  • What the patch does to address it (in plain terms, not line-by-line)
  • Which UI components or surfaces are affected
  • Any constraints, design decisions, or caveats from the bug comments or revision description relevant to understanding why the patch is shaped the way it is

Keep it to 3–6 sentences. If no bug was available, base it on the revision title, description, and diff. You may also use information from conversation with the user.

Show full SKILL.md (152 more words)Show less

Step 4: Triage

Read the diff to determine two things:

  1. Is it C++/Rust/backend only? → No checks apply; say so and stop.
  2. Does the patch touch any CSS, HTML, or JS files? → HCM subagent also applies
  3. Did the user explicitly request HCM checks? -> HCM subagent also applies

This is the only analysis you perform directly.

Step 5: Spawn subagents

Spawn the applicable subagents in parallel. Pass the conceptual summary, the full diff text, and the Phabricator comments (if applicable) into each prompt. Subagents fetch their own resources — you do not pre-fetch anything for them.


A11y subagent (always spawn for frontend patches)

Use this prompt, inserting the actual content where indicated:

You are performing a frontend accessibility review of a Firefox patch.

## Context
[CONCEPTUAL SUMMARY FROM STEP 3 HERE]

## The patch
[FULL DIFF TEXT AND COMMENTS HERE]

## Your task

### Step 1: Fetch the following in parallel
1. Read `references/runsheet.md` — the full a11y checklist (9 categories)
2. Fetch `https://wiki.mozilla.org/Accessibility/Triage` — severity scale

### Step 2: Review the diff and identify components which have been modified.
For each component affected by this patch, characterize it before running any checks:

- Element type: What kind of UI element is this? (button, progress indicator, list item, input, dialog, etc.)
- Visual states: List every distinct visual state the component supports (default, hover, active, disabled, selected, partially-filled, complete, etc.)
- Tradeoff zones: Pre-flag any checks where these constraints make full compliance structurally impossible. These should be assessed for the best available tradeoff rather than failed outright. When a tradeoff is identified, instruct the patch author to follow up with the accessibility team in the #accessibility Slack channel before landing.

### Step 3: Run every check in the self-check guide
Read references/runsheet.md — it contains the full checklist organized into 9 categories. For each category that is relevant to the diff, work through the principles and note any violations.

Be specific. A useful review comment explains exactly what is wrong in the code:

1. Name the file, element type, CSS property, or ARIA attribute
2. Quote or paraphrase the offending line from the diff
3. Explain why it's a problem for users with disabilities
4. Suggest the fix

Avoid vague flags. Do not write things like "focus order might be wrong" or "keyboard support should be checked." Either you see an issue in the diff or you don't. If you're uncertain about a specific pattern, instruct the user to test with the assistive technology in question (ex. "I can't tell if the focus order is correct from this patch alone. Please build your patch and test with keyboard.", "I can't tell what role this component will get. Please build your patch and test with your local screen reader.")

Calibrate severity. Use the severity scale fetched from the fetched triage guidelines at https://wiki.mozilla.org/Accessibility/Triage. Issues that are S2 or above MUST be flagged as ship-blocking.

If no issues are found in any category, say so clearly and briefly. A clean review is a valid and useful outcome.
What NOT to flag
- Issues that are already fixed in the current diff (don't flag problems that only appeared in earlier diffs and have since been addressed)
- Platform/Gecko-layer issues — the checklist is frontend-only

## Output format

Produce your review as a structured comment ready to paste into Phabricator. Use this template:

**Accessibility review**

[One sentence summarizing the overall impression — e.g., "Several accessibility issues detected",
"Follow-up with the accessibility team is necessary", "Looks good overall,
one focus issue to address before landing." OR "No accessibility concerns found." Always flag the
number of S2 issues found - e.g. , "Several accessibility issues detected - 5 S2s",
"No accessibility issues found - 0 S2s"]

---

### Required Testing and Follow-up

**[Category name]** · [ "Testing Required" or "Follow-up Required" ]

[For test items: Specific description of the problem, what the automatic check could not verify, and the exact steps-to-reproduce the user should follow on their own. Include the assistive technology the user should use and what the expected behaviour is, if everything is implemented correctly]

[For follow-up items: Specific description of the problem, including the grey-area or high risk item the automatic check flagged. Include a specific question for the team to copy-paste to the accessibility team in slack or phabricator.]

[If no follow-up or manual testing required, omit this section]

---

### Issues

**[Category name]** · [Severity]

[Specific description of the problem, referencing exact file/element/property.
What is wrong, why it matters for users, what the fix should be.]

[Repeat for each issue found. If no issues, omit this section. Always present issues from most (S1) to least severe (S4)]

---

### Suggestions

[Optional: lower-priority observations that aren't blockers.]

---

*Review performed against the Firefox a11y team checklist.*

HCM subagent (spawn only if CSS, HTML, or JS files are present or if explicitly requested)

Use this prompt, inserting the actual content where indicated:

You are performing an HCM (High Contrast Mode) and Increase Contrast (IC) review of a Firefox patch.

## Context
[CONCEPTUAL SUMMARY FROM STEP 3 HERE]

## The patch
[FULL DIFF TEXT AND COMMENTS HERE]

## Your task

### Step 1: Fetch the following in parallel
1. Read `accessible/docs/HCMCSSChecklist.md` — the primary HCM checklist
2. Read `accessible/docs/HCMMediaQueries.md` — media query semantics
3. Read `accessible/docs/ColorsAndHighContrastMode.md` — color and HCM guidance
4. Read `toolkit/themes/shared/design-system/dist/tokens-shared.css` — token definitions

### Step 2: Review the diff and identify components which have been modified.
- Which CSS custom properties are introduced, removed, or modified?
- Any new/modified `@media` blocks (`forced-colors`, `prefers-contrast`, `prefers-color-scheme`)?
- Are design system tokens used for colors, or raw values (`rgba()`, hex, `light-dark()`, brand
  palette tokens like `--color-violet-*`)?
- Any existing reviewer comments on HCM issues?

### Step 3: Identify HCM properties and constraints
For each component affected by this patch, characterize it before running any checks:

- **Element type:** What kind of UI element is this? (button, progress indicator, list item, input, dialog, etc.)
- **Visual states:** List every distinct visual state the component supports (default, hover, active, disabled, selected, partially-filled, complete, etc.)
- **HCM-relevant property map:** For each state, identify all properties that may require HCM treatment — not just color. This includes: background, foreground color, border, outline, opacity, box-shadow, filter, backdrop-filter, gradients, SVG fill/stroke, and any visual effect that relies on color blending or transparency.
- **Structural constraints:** Note any case where a single property must coexist with multiple different surfaces across state transitions. A border that must work against both a `ButtonFace` track and a `SelectedItem` fill cannot be in a guaranteed-contrast pair with both simultaneously — this is a structural limit, not a design error.
- **Tradeoff zones:** Pre-flag any checks where these constraints make full compliance structurally impossible. These should be assessed for the best available tradeoff rather than failed outright. When a tradeoff is identified, instruct the patch author to follow up with the accessibility team in the **#accessibility** Slack channel before landing.

### Step 4: Run all checks from `HCMCSSChecklist.md` in order.
For each check:
- Pass: one sentence citing the specific pattern that satisfies it.
- Fail: name the exact variable/selector/line, state the rule violated, give the fix. If a
  reviewer already raised it, quote or paraphrase their comment.

Token chain tracing: when a token appears in a `forced-colors` block, trace it through
`tokens-shared.css` — verify it resolves to a CSS system color via `@layer tokens-forced-colors`.
Do not assume it adapts; check explicitly. Also check JS for `-moz-user-focus` and dynamic class
application, and HTML/Lit templates for structure that affects HCM behaviour.

Format each check as:
  ✅ Check N — [title]: [one sentence why it passes, with code reference]
  ❌ Check N — [title]: [specific issue + fix] *(Already raised by @reviewer: "...")* if applicable

Return your findings in exactly this format:

### HCM Review

**Files in scope:** [comma-separated]

#### Architecture
[Checks 1–3]

#### Token Selection
[Checks 4–10]

#### Elements and Features
[Checks 11–14]

### HCM summary
[N/14 checks passed. Issues in: Check X, Check Y. One sentence on HCM readiness.]

Step 6: Combine outputs

Wait for all subagents to complete, then compose the final comment:

**Accessibility review**

[One sentence covering both reviews: overall impression, total S2 count from a11y subagent,
HCM pass rate from HCM subagent. E.g. "No concerns found — 0 S2s, 14/14 HCM checks passed."
or "Several issues — 2 S2s, 3 HCM failures requiring attention before landing."]

---

[Paste Issues + Suggestions verbatim from the a11y subagent.]

---

[Paste HCM Review section verbatim from the HCM subagent, if it ran.
If it did not run, render the following text:
"High Contrast Mode checks were not run because the patch didn't appear to contain any
HCM-related changes. If this is incorrect, please re-request review for HCM checks specifically".]

---

*Review performed against the Firefox a11y team checklist.*

© SAP, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .agents/skills/accessibility-frontend-review of SAP/project-foxhound.

  • SKILL.md
  • references/runsheet.md

Open the folder on GitHubat commit 9dcb850

Used in 3 other repositories

We found 7 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in SAP/project-foxhound, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Accessibility Frontend Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Accessibility Frontend Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Accessibility Frontend Review this skillSAP/project-foxhound1802 repos~3.2kAutomated safety check: PassGPL-3.0
DocsPrefectHQ/fastmcp28k—~1kAutomated safety check: PassApache-2.0
Jarvis Setupethanplusai/jarvis843—~2.5kAutomated safety check: NotesCustom licence
Better Designmarvkr/better-design254—~1.2kAutomated safety check: PassMIT
UI UX Pro MaxOhh-889/skyroc79527 repos~3.6kAutomated safety check: NotesMIT
Limoni Agent Surfacethebanri/limoni152—~2.8kAutomated safety check: PassApache-2.0

Similar skills

  • Docs

    PrefectHQ/fastmcp

    Write or revise a page under docs/ for gofastmcp.com. An agent skill from PrefectHQ/fastmcp.

    28k GitHub stars~1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Jarvis Setup

    ethanplusai/jarvis

    A skill your agent uses when helping someone install, configure, or debug a fresh clone of JARVIS (this repo) — especially "the mic doesn't work", "JARVIS says his language systems are down", any…

    843 GitHub stars~2.5k tokensUpdated 29 days ago
    Frontend & DesignAuto-check: notes
  • Better Design

    marvkr/better-design

    Build, improve, and review production interfaces with the Better Design MCP.

    254 GitHub stars~1.2k tokensUpdated 17 days ago
    Frontend & DesignAuto-check passed
  • UI UX Pro Max

    Ohh-889/skyroc

    UI/UX design intelligence. An agent skill from Ohh-889/skyroc.

    795 GitHub starsUsed in 27 repos~3.6k tokens
    Frontend & DesignAuto-check: notes
  • Limoni Agent Surface

    thebanri/limoni

    How Limoni exposes applications to AI agents and tests — the semantic tree, the automation socket, cmd/limoni-mcp, and the uitest package.

    152 GitHub stars~2.8k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • AI Component Description

    murphytrueman/design-system-ops

    Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma component's description field so LLMs read it via MCP.

    206 GitHub stars~4.7k tokensUpdated 15 days ago
    Frontend & DesignAuto-check passed

More from SAP/project-foxhound

All 10 skills in this repo
  • JS Perf Investigation

    SAP/project-foxhound

    Official

    Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine).

    180 GitHub starsUsed in 2 repos~4.1k tokens
    Auto-check passed
  • Bug Filing

    SAP/project-foxhound

    Official

    File a Bugzilla bug for Firefox/Gecko work, or draft a bug summary and description.

    180 GitHub starsUsed in 2 repos~828 tokens
    Auto-check passed
  • Specmap

    SAP/project-foxhound

    Official

    Map relationships between a web spec section, its Firefox implementation code, and Web Platform Tests.

    180 GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check passed
  • Stmo

    SAP/project-foxhound

    Official

    Manage Redash queries and dashboards on Mozilla's STMO (sql.telemetry.mozilla.org) using stmo-cli.

    180 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Android New Module

    SAP/project-foxhound

    Official

    Guide for creating new Android gradle modules in the android-components project.

    180 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Profiler Analysis

    SAP/project-foxhound

    Official

    Analyze Firefox performance profiles using the profiler-cli CLI tool.

    180 GitHub starsUsed in 2 repos~1.1k tokens
    Auto-check passed

Questions about Accessibility Frontend Review

What does Accessibility Frontend Review do?

Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team. Accessibility Frontend Review is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team.

When should I use Accessibility Frontend Review?

Accessibility Frontend Review fits situations like: the user asks to review a Phabricator patch; revision for accessibility issues; mentions a D-number (like D28414; in the context of accessibility review.

How do I install Accessibility Frontend Review in Claude Code?

Run `npx skills add SAP/project-foxhound --skill accessibility-frontend-review -a claude-code`. Or copy the skill folder (.agents/skills/accessibility-frontend-review in SAP/project-foxhound) into .claude/skills/accessibility-frontend-review in your project. Claude Code loads it when a task matches its description.

How do I install Accessibility Frontend Review in Codex?

Run `npx skills add SAP/project-foxhound --skill accessibility-frontend-review -a codex`. Or copy the skill folder (.agents/skills/accessibility-frontend-review in SAP/project-foxhound) into .agents/skills/accessibility-frontend-review in your project. Codex loads it when a task matches its description.

Can I use Accessibility Frontend Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/project-foxhound --skill accessibility-frontend-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/accessibility-frontend-review, .gemini/skills/accessibility-frontend-review, .github/skills/accessibility-frontend-review and .opencode/skills/accessibility-frontend-review in your project.

What does Accessibility Frontend Review need to run?

Going by SKILL.md and its folder, Accessibility Frontend Review needs the command-line tools its instructions call (git).

Does Accessibility Frontend Review access the network?

SKILL.md names 2 domains. In commands or code: wiki.mozilla.org and phabricator.services.mozilla.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Accessibility Frontend Review safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Accessibility Frontend Review use?

Accessibility Frontend Review is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Accessibility Frontend Review use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.9k tokens, read only when the agent opens those files.

What are the alternatives to Accessibility Frontend Review?

Skills that share tags, products or a category with Accessibility Frontend Review: Docs (PrefectHQ/fastmcp, 28k stars), Jarvis Setup (ethanplusai/jarvis, 843 stars), Better Design (marvkr/better-design, 254 stars) and UI UX Pro Max (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Accessibility Frontend Review?

SAP (a GitHub organization, an official publisher) maintains it in SAP/project-foxhound, which has 180 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: SAP/project-foxhound on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.