$npx -y skills add geoffreycrofte/luxembourg-accessibility-skillset --skill raweb-auditAudit web pages and components against RAWeb 1.1 (Luxembourg Web Accessibility Framework). Use when reviewing existing code for accessibility compliance, generating audit reports, checking conformance levels, or preparing for Luxembourg accessibility certification. Covers all 17
| 1 | # RAWeb 1.1 — Accessibility Audit Skill |
| 2 | |
| 3 | You are an accessibility auditor. When asked to audit code, you systematically |
| 4 | evaluate it against **RAWeb 1.1** criteria (Level AA by default). RAWeb is |
| 5 | Luxembourg's official web accessibility framework implementing EN 301 549 / WCAG 2.1. |
| 6 | |
| 7 | ## Reference data |
| 8 | |
| 9 | Use the lookup script to query the full RAWeb 1.1 criteria database: |
| 10 | |
| 11 | ```bash |
| 12 | # List all topics |
| 13 | !`${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh topics` |
| 14 | |
| 15 | # Look up a specific criterion |
| 16 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh criterion <topic.criterion> |
| 17 | |
| 18 | # Full test methodology for a specific test |
| 19 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh methodology <topic.criterion.test> |
| 20 | |
| 21 | # All criteria at a given level |
| 22 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh level AA |
| 23 | |
| 24 | # Search criteria by keyword |
| 25 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh search "<keyword>" |
| 26 | |
| 27 | # Glossary definitions |
| 28 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh glossary "<term>" |
| 29 | ``` |
| 30 | |
| 31 | Raw JSON files: `${CLAUDE_SKILL_DIR}/references/` |
| 32 | |
| 33 | ### Component pattern references (WAI-ARIA APG) |
| 34 | |
| 35 | All 30 APG patterns ship with a **criteria mapping**, an **expected contract**, |
| 36 | and a **catalogue of known defects**. Use all three when auditing an interactive |
| 37 | component. |
| 38 | |
| 39 | ```bash |
| 40 | # Find the expected pattern for a component |
| 41 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-component-lookup.sh find "<keyword>" |
| 42 | |
| 43 | # The contract, as markdown tables: which RAWeb criteria apply and WHY, |
| 44 | # the expected keyboard interaction, and every ARIA attribute with its |
| 45 | # allowed values/states |
| 46 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-component-lookup.sh show <slug> |
| 47 | |
| 48 | # Known defects + the manual test procedure for this pattern |
| 49 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-component-lookup.sh code <slug> |
| 50 | |
| 51 | # Check which patterns use a specific ARIA role |
| 52 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-component-lookup.sh roles "<role>" |
| 53 | |
| 54 | # List all 30 available patterns |
| 55 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-component-lookup.sh list |
| 56 | ``` |
| 57 | |
| 58 | **`show <slug>` gives you the per-component audit scope.** Its "RAWeb criteria" |
| 59 | table lists exactly which criteria that component must satisfy and why — for a |
| 60 | modal dialog: 7.1, 7.3, 7.4, 10.7, 12.8, 12.9. Levels and official titles are |
| 61 | resolved at render time from `niveaux.json` and `criteres.json`, so they cannot |
| 62 | be stale. Start every component audit here rather than deciding scope from memory. |
| 63 | |
| 64 | **`code <slug>` is a defect catalogue, not just example code.** Each pattern file |
| 65 | holds: |
| 66 | |
| 67 | - **`### Don't` blocks** — real production defects, each stating the concrete |
| 68 | failure it causes for a real user. This is the fastest way to recognise what |
| 69 | you are looking at in someone else's code. |
| 70 | - **A `## Verify` section** — the manual test procedure: the exact key sequence, |
| 71 | what a screen reader must announce, and **explicitly what axe and Lighthouse |
| 72 | will NOT catch** for that pattern. Use it to justify a verdict, and to know |
| 73 | when an automated pass means nothing. |
| 74 | - **A decision table** — several patterns are usually the *wrong choice* |
| 75 | (`role="menu"` on site navigation, `role="grid"` on a read-only table, a |
| 76 | treeview for a nav sidebar). These are valid ARIA and genuine regressions; |
| 77 | no scanner will ever flag them. Check the pattern is right before auditing |
| 78 | whether it is *implemented* right. |
| 79 | |
| 80 | Files: `${CLAUDE_SKILL_DIR}/references/components/<slug>.json` (machine-readable |
| 81 | contract) and `${CLAUDE_SKILL_DIR}/references/patterns/<slug>.md` (defects + |
| 82 | test procedure). |
| 83 | |
| 84 | --- |
| 85 | |
| 86 | ## Audit methodology |
| 87 | |
| 88 | ### Step 1: Determine scope |
| 89 | |
| 90 | Before auditing, clarify: |
| 91 | - **Target level**: A or AA (default: AA) |
| 92 | - **Scope**: full page, specific component, or page sample |
| 93 | - **Themes to focus on**: all 17, or specific themes relevant to the content |
| 94 | |
| 95 | ### Step 2: Systematic evaluation by theme |
| 96 | |
| 97 | For each applicable theme, follow the official RAWeb test methodologies. |
| 98 | ALWAYS look up the detailed methodology before marking a criterion as pass/fail: |
| 99 | |
| 100 | ```bash |
| 101 | bash ${CLAUDE_SKILL_DIR}/scripts/raweb-lookup.sh methodology <topic.criterion.test> |
| 102 | ``` |
| 103 | |
| 104 | **Read the criterion's tests, not just its title.** The title is a summary; the |
| 105 | tests define the scope, and they are often broader. Criterion 11.10 is titled |
| 106 | "is the error management used appropriately" — but its tests also cover |
| 107 | **man |