/ Directory / Playground / luxembourg-accessibility-skillset
● Community geoffreycrofte ⚡ Instant

luxembourg-accessibility-skillset

by geoffreycrofte · geoffreycrofte/luxembourg-accessibility-skillset

Six skills covering Luxembourg's RAWeb (136 web criteria) and RAAM (108 mobile criteria) accessibility standards — both code generation and audit.

A skillset that makes Claude Code conform to Luxembourg's official accessibility frameworks: RAWeb 1.1 for web (HTML/CSS/JS across 17 themes) and RAAM 1.1 for mobile (iOS SwiftUI/UIKit, Android Compose/XML, React Native, Flutter). Each has a -code and -audit sub-skill. RAPDF is planned. All criteria target Level AA conformance and align with EN 301 549 and WCAG 2.1.

Why use it

Key features

Live Demo

What it looks like in practice

luxembourg-accessibility-skillset-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "luxembourg-accessibility-skillset-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
        "~/.claude/skills/luxembourg-accessibility-skillset"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "luxembourg-accessibility-skillset-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
        "~/.claude/skills/luxembourg-accessibility-skillset"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "luxembourg-accessibility-skillset-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
        "~/.claude/skills/luxembourg-accessibility-skillset"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "luxembourg-accessibility-skillset-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
        "~/.claude/skills/luxembourg-accessibility-skillset"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "luxembourg-accessibility-skillset-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
        "~/.claude/skills/luxembourg-accessibility-skillset"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "luxembourg-accessibility-skillset-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/geoffreycrofte/luxembourg-accessibility-skillset",
          "~/.claude/skills/luxembourg-accessibility-skillset"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add luxembourg-accessibility-skillset-skill -- git clone https://github.com/geoffreycrofte/luxembourg-accessibility-skillset ~/.claude/skills/luxembourg-accessibility-skillset

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use luxembourg-accessibility-skillset

Audit a public-sector website against RAWeb before a submission deadline

👤 Luxembourg agencies and vendors required to meet RAWeb ⏱ ~90 min intermediate

When to use: You have a deadline and need a structured audit before publication.

Prerequisites
  • Skillset cloned to ~/.claude/skills/ — git clone https://github.com/geoffreycrofte/luxembourg-accessibility-skillset ~/.claude/skills/luxembourg-accessibility-skillset
Flow
  1. Point at the code
    Use raweb-audit to evaluate src/pages/contact.tsx against all 17 themes. Level AA.✓ Copied
    → Per-criterion pass/fail with line references
  2. Fix the failures
    For each failed criterion, apply the raweb-code pattern to fix it.✓ Copied
    → Diffs that resolve specific criteria without new regressions

Outcome: An RAWeb-conformant page with a paper trail of what changed.

Pitfalls
  • Fixing a11y by hand can break existing semantics — Always re-run raweb-audit after edits — criteria interact
Combine with: github · filesystem

Generate accessible mobile screens (SwiftUI / Compose) from the start

👤 Mobile engineers building for Luxembourg public sector ⏱ ~45 min intermediate

When to use: New feature — don't want to bolt a11y on later.

Flow
  1. Describe the screen
    Use raam-code — SwiftUI login screen with form, errors, and biometric option. RAAM Level AA.✓ Copied
    → Code with proper accessibility labels, traits, dynamic type, VoiceOver hints
  2. Self-audit
    Now raam-audit this same file. Anything missed?✓ Copied
    → Clean report or small residual fixes

Outcome: Accessible-by-default mobile code that passes a later audit.

Combinations

Pair with other MCPs for X10 leverage

luxembourg-accessibility-skillset-skill + github

Open a PR that applies audit fixes with per-criterion commits for traceability

Run raweb-audit, fix the failures, and open a PR with one commit per criterion.✓ Copied
luxembourg-accessibility-skillset-skill + filesystem

Audit and fix a whole src/ tree in one pass

Audit every .tsx file under src/pages and fix everything that fails RAWeb AA.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
raweb-code component intent + pattern (form / table / nav / modal) Writing new web code 0
raweb-audit file path or code block Before submission or PR review 0
raam-code screen intent + framework (SwiftUI/Compose/RN/Flutter) Writing new mobile screens 0
raam-audit file path or code block + framework Pre-release mobile audit 0

Cost & Limits

What this costs to run

API quota
None
Tokens per call
Audits can be large on big files — budget accordingly
Monetary
Free — skills are local files
Tip
Audit file-by-file rather than whole repo if you hit context limits.

Security

Permissions, secrets, blast radius

Credential storage: No credentials — pure prompts
Data egress: None — code stays local

Troubleshooting

Common errors and fixes

Skill not invoked — Claude uses generic WCAG advice

Name the sub-skill explicitly ('raweb-audit', 'raam-code'). Plain WCAG prompts won't route to RAWeb.

Verify: ls ~/.claude/skills/luxembourg-accessibility-skillset/
SKILL.md frontmatter wrong in one sub-skill

Each sub-skill has its own SKILL.md; inspect the specific folder.

Verify: head ~/.claude/skills/luxembourg-accessibility-skillset/raweb-audit/SKILL.md
Wrong trigger keywords — audit runs for the wrong standard

Be explicit: 'raam-audit' (mobile) vs 'raweb-audit' (web).

Alternatives

luxembourg-accessibility-skillset vs others

AlternativeWhen to use it insteadTradeoff
axe-core / LighthouseYou want browser-runtime WCAG checksRuntime vs source-level; no Luxembourg-specific framing
Deque skillsYou want enterprise-grade a11y tooling with reporting dashboardsPaid; not an agent skill

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills